Реалізація режимів обчислення MS Project на Python

Microsoft Project пропонує три режими обчислення: автоматичний, ручний і жодний. Кожен режим пропонує інший рівень контролю над тим, як проект оновлюється та перераховується. У цій статті ми навчимося програмно реалізувати режими обчислення MS Project на Python. Незалежно від того, чи переходите ви від планування вручну до автоматичного, чи вам потрібна гнучкість у управлінні кінцевими термінами проекту, ця стаття надасть вам інформацію та ресурси, необхідні для такого переходу. Давайте розпочнемо!

Ця стаття охоплює такі теми:

  1. API Python для програмного обчислення проекту
  2. Розрахунок проекту вручну
  3. Автоматичний розрахунок проекту
  4. Немає режиму розрахунку проекту

API Python для програмного обчислення проекту

Ми будемо використовувати Aspose.Tasks for Python API для реалізації проекту MS режими розрахунку. Він забезпечує наступні режими розрахунку для обчислення значень залежних властивостей:

  • Немає – у цьому режимі встановлюються лише необхідні властивості, а дати та витрати проекту не перераховуються.
  • Вручну – у цьому режимі встановлюються лише властивості залежних об’єктів без перерахунку дат і вартості проекту.
  • Автоматично – цей режим автоматично перераховує дати проекту та параметри вартості.

Будь ласка, завантажте пакет або інсталюйте API з PyPI за допомогою такої команди pip у консолі:

pip install aspose-tasks

Розрахунок MS Project вручну на Python

Ми можемо встановити ручний режим розрахунку та перевірити його, виконавши наведені нижче дії.

  1. Створіть екземпляр класу Project.
  2. Встановіть режим розрахунку MANUAL.
  3. Вкажіть дату початку проекту.
  4. Додайте нові завдання, наприклад, Завдання 1 і Завдання 2.
  5. Прочитайте властивості завдання.
  6. Після цього ініціалізуйте об’єкт класу TaskLinks і зв’яжіть завдання.
  7. Нарешті перевірте дату початку та завершення Завдання 2.

У наведеному нижче прикладі коду показано, як вручну обчислити проект у Python.

# Цей приклад коду демонструє, як розрахувати проект MS за допомогою ручного режиму обчислення в Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Створіть екземпляр проекту
project = tasks.Project()

# Встановіть режим розрахунку вручну
project.calculation_mode = tasks.CalculationMode.MANUAL

# Встановіть дату початку проекту
project.start_date = datetime(2015, 4, 15)

# Додайте нові завдання
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Необхідні властивості задаються в ручному режимі
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 = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Без змін у датах Завдання 2
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.

У наведеному нижче прикладі коду показано, як розрахувати проект MS за допомогою режиму автоматичного обчислення в Python.

# Цей приклад коду демонструє, як розрахувати проект MS за допомогою режиму автоматичного обчислення в Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Створіть екземпляр проекту
project = tasks.Project()

# Встановіть режим розрахунку на Автоматичний
project.calculation_mode = tasks.CalculationMode.AUTOMATIC

# Встановіть дату початку проекту
project.start_date = datetime(2015, 4, 15)

# Додайте нові завдання
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Посилання завдань
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Перевірте перераховані дати
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

Ми можемо встановити режим обчислення на NONE і перевірити його, виконавши наведені нижче кроки:

  1. Створіть екземпляр класу Project.
  2. Встановіть для режиму обчислення значення «Немає».
  3. Вкажіть дату початку проекту.
  4. Додайте нове завдання, наприклад, Завдання 1.
  5. Прочитайте властивості завдання.
  6. Після цього встановіть тривалість завдання в днях.
  7. Нарешті перевірте дату початку та завершення Завдання.

У наведеному нижче прикладі коду показано, як за допомогою Python встановити режим обчислення проекту MS у значення None.

# У цьому прикладі коду показано, як встановити для режиму розрахунку проекту MS значення NONE у Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Створіть екземпляр проекту
project = tasks.Project()

# Установіть для режиму обчислення значення «Немає».
project.calculation_mode = tasks.CalculationMode.NONE

# Додайте нове завдання
task = project.root_task.children.add("Task")

# Зверніть увагу, що парні ідентифікатори не обчислювалися
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")

# Встановити властивість тривалості
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 – навчальні ресурси

Окрім впровадження режимів обчислення та перерахунку розкладу та тривалості проекту MS, ви можете досліджувати інші функції бібліотеки, використовуючи наведені нижче ресурси:

Висновок

У цій статті ми навчилися програмно встановлювати режими розрахунку проекту в Python. Ми також бачили, як обчислюються значення залежних властивостей у кожному режимі розрахунку. Використовуючи Aspose.Tasks for Python через .NET, ви можете легко вбудувати такі функції у свої програми Python. У разі будь-якої неясності зв’яжіться з нами безкоштовний форум підтримки.

Дивись також