Implementujte režimy výpočtu MS Project v Pythonu

Microsoft Project nabízí tři režimy výpočtu: automatický, ruční a žádný. Každý režim nabízí jinou úroveň kontroly nad tím, jak je projekt aktualizován a přepočítáván. V tomto článku se naučíme, jak programově implementovat režimy výpočtu MS Project v Pythonu. Ať už přecházíte z ručního plánování na automatické plánování nebo potřebujete flexibilitu při správě termínů projektu, tento článek vám poskytne informace a zdroje potřebné pro takový přechod. Začněme!

Tento článek se zabývá následujícími tématy:

  1. Python API pro programový výpočet projektu
  2. Manuální výpočet projektu
  3. Automatický výpočet projektu
  4. Žádný režim výpočtu projektu

Python API pro programový výpočet projektu

K implementaci MS projektu použijeme Aspose.Tasks for Python API výpočtové režimy. Poskytuje následující režimy výpočtu pro výpočet hodnot závislých vlastností:

  • Žádný – Tento režim nastavuje pouze nezbytné vlastnosti a nepřepočítává data a náklady projektu.
  • Ruční – Tento režim nastavuje pouze závislé vlastnosti objektu bez přepočítávání dat projektu a nákladů.
  • Automaticky – Tento režim automaticky přepočítá data projektu a vlastnosti nákladů.

Prosím stáhněte si balíček nebo nainstalujte API z PyPI pomocí následujícího příkazu pip v konzole:

pip install aspose-tasks

Vypočítat MS Project ručně v Pythonu

Můžeme nastavit režim výpočtu na ruční a ověřit jej podle následujících kroků:

  1. Vytvořte instanci třídy Project.
  2. Nastavte režim výpočtu na MANUAL.
  3. Zadejte datum zahájení projektu.
  4. Přidejte nové úkoly, např. úkol 1 a úkol 2.
  5. Přečtěte si vlastnosti úlohy.
  6. Poté inicializujte objekt třídy TaskLinks a propojte úkoly.
  7. Nakonec ověřte datum zahájení a ukončení úkolu 2.

Následující ukázka kódu ukazuje, jak ručně vypočítat projekt v Pythonu.

# Tento příklad kódu ukazuje, jak vypočítat projekt MS pomocí režimu ručního výpočtu v Pythonu.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Vytvořte instanci projektu
project = tasks.Project()

# Nastavte režim výpočtu na Manuální
project.calculation_mode = tasks.CalculationMode.MANUAL

# Nastavte datum zahájení projektu
project.start_date = datetime(2015, 4, 15)

# Přidejte nové úkoly
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Potřebné vlastnosti se nastavují v ručním režimu
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")

# Spojte dva úkoly dohromady, jejich data se v ručním režimu nepřepočítávají
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Žádná změna v datech úkolu 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

Automatický výpočet projektu v Pythonu

Podobně můžeme vypočítat projekt MS pomocí režimu automatického výpočtu podle výše uvedených kroků. Stačí však v kroku 2 nastavit režim výpočtu na automatický.

Následující ukázka kódu ukazuje, jak vypočítat projekt MS pomocí režimu automatického výpočtu v Pythonu.

# Tento příklad kódu ukazuje, jak vypočítat projekt MS pomocí režimu automatického výpočtu v Pythonu.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Vytvořte instanci projektu
project = tasks.Project()

# Nastavte režim výpočtu na Automatický
project.calculation_mode = tasks.CalculationMode.AUTOMATIC

# Nastavte datum zahájení projektu
project.start_date = datetime(2015, 4, 15)

# Přidejte nové úkoly
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Propojit úkoly
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Ověřte přepočítaná data
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

Žádný režim výpočtu projektu v Pythonu

Můžeme nastavit režim výpočtu na NONE a ověřit jej podle následujících kroků:

  1. Vytvořte instanci třídy Project.
  2. Nastavte režim výpočtu na Žádný.
  3. Zadejte datum zahájení projektu.
  4. Přidejte nový úkol, např. Úkol 1.
  5. Přečtěte si vlastnosti úlohy.
  6. Poté nastavte trvání úkolu ve dnech.
  7. Nakonec ověřte datum zahájení a ukončení úkolu.

Následující ukázka kódu ukazuje, jak nastavit režim výpočtu MS projektu na žádný pomocí Pythonu.

# Tento příklad kódu ukazuje, jak nastavit režim výpočtu MS projektu jako NONE v Pythonu.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Vytvořte instanci projektu
project = tasks.Project()

# Nastavte režim výpočtu na Žádný
project.calculation_mode = tasks.CalculationMode.NONE

# Přidat nový úkol
task = project.root_task.children.add("Task")

# Všimněte si, že sudá id nebyla vypočtena
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")

# Nastavit vlastnost trvání
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

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet knihovnu bez omezení hodnocení.

Vypočítat projekt v Pythonu – výukové zdroje

Kromě implementace režimů výpočtu a přepočítávání harmonogramu a trvání projektu MS můžete prozkoumat různé další funkce knihovny pomocí zdrojů níže:

Závěr

V tomto článku jsme se naučili, jak programově nastavit režimy výpočtu projektu v Pythonu. Viděli jsme také, jak se v každém režimu výpočtu počítají hodnoty závislých vlastností. Využitím Aspose.Tasks for Python přes .NET můžete snadno vložit takové funkce do svých aplikací Python. V případě jakýchkoli nejasností nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také