个人中心

联系我们

搜索
搜索 登录 免费注册
界面美化
业务优化
开发工具
图像管理
文档管理
Parasoft

新闻资讯

关注工具软件产品最新动态,了解软件开发行业新趋势。

Aspose 使用教程:用 Python 实现 MS 项目计算模式

原创
软件开发
来源:Aspose
Aspose
python
数据统计
API
Microsoft
项目管理
2024-04-29
Aspose
python
数据统计
API
Microsoft
项目管理


Microsoft Project 提供三种计算模式:自动、手动和无。每种模式对项目的更新和重新计算提供了不同程度的控制。在本文中,我们将学习如何用 Python 编程实现 MS Project 计算模式。无论你是要从手动排程迁移到自动排程,还是需要灵活地管理项目截止日期,本文都将为你提供过渡所需的信息和资源。让我们开始吧


本文涵盖以下主题:


  • 以编程方式计算项目的 Python API

  • 手动项目计算

  • 自动项目计算

  • 无项目计算模式


以编程方式计算项目的 Python API

我们将使用 Aspose.Tasks for Python API 来实现 MS 项目计算模式。它提供了以下计算模式来计算从属属性的值:


  • 无--该模式只设置必要的属性,不重新计算项目日期和成本。

  • 手动 - 该模式只设置从属对象属性,不重新计算项目日期和成本。

  • 自动 - 该模式自动重新计算项目日期和成本属性。

请在控制台中使用以下 pip 命令从 PyPI 下载软件包或安装 API:

pip install aspose-tasks


用 Python 手动计算 MS Project

我们可以将计算模式设置为手动,并按照以下步骤进行验证:


  1. 创建 Project 类的实例。

  2. 将计算模式设置为手动。

  3. 指定项目开始日期。

  4. 添加新任务,如任务 1 和任务 2。

  5. 读取任务属性。

  6. 然后,初始化 TaskLinks 类对象并链接任务。

  7. 最后,验证任务 2 的开始和结束日期。

下面的代码示例展示了如何在 Python 中手动计算一个项目。

# This code example demonstrates how to calculate the MS project using manual calculation mode in Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta
# Create an instance of the Project
project = tasks.Project()
# Set calculation mode to Manual
project.calculation_mode = tasks.CalculationMode.MANUAL
# Set project start date
project.start_date = datetime(2015, 4, 15)
# Add new tasks
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")
# The necessary properties are set in manual mode
print("Task1.Id Equals 1 : ", task1.id == 1)
print("Task1 OutlineLevel Equals 1 : ", task1.outline_level == 1)
print("Task1 Start Equals 15/04/2015 08:00 AM : ", task1.start) == datetime(2015, 4, 15, 8, 0, 0)
print("Task1 Finish Equals 15/04/2015 05:00 PM : ", task1.finish) == datetime(2015, 4, 15, 17, 0, 0)
print("Task1 Duration Equals 1 day : ", str(task1.duration) == "1 day")
print("Task2 Start Equals 15/04/2015 08:00 AM : ", task2.start == datetime(2015, 4, 15, 8, 0, 0))
print("Task2 Finish Equals 15/04/2015 05:00 PM : ", task2.finish == datetime(2015, 4, 15, 17, 0, 0))
print("Task2 Duration Equals 1 day : ", str(task2.duration) == "1 day")
# Link two tasks together their dates shall not be recalculated in manual mode
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)
# No change in Task 2 dates
print("Task1 Start Equals Task2 Start : ", task1.start == task2.start)
print("Task1 Finish Equals Task2 Finish : ", task1.finish == task2.finish)


Task1.Id Equals 1 :  True
Task1 OutlineLevel Equals 1 :  True
Task1 Start Equals 15/04/2015 08:00 AM :  2015-04-15 08:00:00
Task1 Finish Equals 15/04/2015 05:00 PM :  2015-04-15 17:00:00
Task1 Duration Equals 1 day :  True
Task2 Start Equals 15/04/2015 08:00 AM :  True
Task2 Finish Equals 15/04/2015 05:00 PM :  True
Task2 Duration Equals 1 day :  True
Task1 Start Equals Task2 Start :  True
Task1 Finish Equals Task2 Finish :  True


用 Python 自动计算项目

同样,我们也可以按照前面提到的步骤,使用自动计算模式计算 MS 项目。不过,我们只需在步骤 2 中将计算模式设置为自动。


下面的代码示例展示了如何在 Python 中使用自动计算模式计算 MS 项目。

# This code example demonstrates how to calculate the MS project using automatic calculation mode in Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta
# Create an instance of the Project
project = tasks.Project()
# Set calculation mode to Automatic
project.calculation_mode = tasks.CalculationMode.AUTOMATIC
# Set project start date
project.start_date = datetime(2015, 4, 15)
# Add new tasks
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")
# Link tasks
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)
# Verify the recalculated dates
print("Task1 Start + 1 Equals Task2 Start : ", (task1.start + timedelta(days=1)) == task2.start)
print("Task1 Finish + 1 Equals Task2 Finish : ", (task1.finish + timedelta(days=1)) == task2.finish)
print("RootTask Finish Equals Task2 Finish : ", task2.finish == project.root_task.finish)
print("Project Finish Date Equals Task2 Finish : ", task2.finish == project.finish_date)


Task1 Start + 1 Equals Task2 Start :  True
Task1 Finish + 1 Equals Task2 Finish :  True
RootTask Finish Equals Task2 Finish :  True
Project Finish Date Equals Task2 Finish :  False


Python 中的无项目计算模式

我们可以将计算模式设置为 "无",并按照以下步骤进行验证:


  1. 创建 Project 类的实例。

  2. 将计算模式设置为 "无"。

  3. 指定项目开始日期。

  4. 添加一个新任务,如任务 1。

  5. 读取任务属性。

  6. 然后,以天为单位设置任务持续时间。

  7. 最后,验证任务的开始和结束日期。

下面的代码示例展示了如何使用 Python 将 MS project 计算模式设置为无。

# This code example demonstrates how to set the MS project calculation mode as NONE in Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta
# Create an instance of the Project
project = tasks.Project()
# Set calculation mode to None
project.calculation_mode = tasks.CalculationMode.NONE
# Add a new task
task = project.root_task.children.add("Task")
# Note that even ids were not calculated
print("Task.Id Equals 0 : ", task.id == 0)
print("Task.OutlineLevel Equals 0 : ", task.outline_level == 0)
print("Task Start Equals DateTime.MinValue : ", task.start == datetime.min)
print("Task Finish Equals DateTime.MinValue : ", task.finish == datetime.min)
print("Task Duration Equals 0 mins : ", str(task.duration) == "0 mins")
# Set duration property
task.duration = project.get_duration(2.0, tasks.TimeUnitType.DAY)
print("Task Duration Equals 2 days : ", str(task.duration) == "2 days")
print("Task Start Equals DateTime.MinValue  : ", task.start == datetime.min)
print("Task Finish Equals DateTime.MinValue  : ", task.finish == datetime.min)


Task.Id Equals 0 :  True
Task.OutlineLevel Equals 0 :  False
Task Start Equals DateTime.MinValue :  True
Task Finish Equals DateTime.MinValue :  True
Task Duration Equals 0 mins :  True
Task Duration Equals 2 days :  True
Task Start Equals DateTime.MinValue  :  True
Task Finish Equals DateTime.MinValue  :  True


获取免费许可证

您可以获得免费的临时许可证,在没有评估限制的情况下试用程序库。


结论

在本文中,我们学习了如何用 Python 编程设置项目计算模式。我们还了解了在每种计算模式下如何计算从属属性的值。通过 .NET 利用 Aspose.Tasks for Python,您可以轻松地将此类功能嵌入到您的 Python 应用程序中。如果有任何不清楚的地方,请随时联系我们


联系我们

周一至周日 8:00-23:00

免费热线

023-62585653

张经理:13082556879

罗经理:17558866126

许经理:13057566525

开发外包

ERP-一体化

小程序

企业微信客服

版权所有:重庆庚乾信息科技有限公司 ©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508

版权所有:重庆庚乾信息科技有限公司

©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508