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:
- Python API pro programový výpočet projektu
- Manuální výpočet projektu
- Automatický výpočet projektu
- Žá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ů:
- Vytvořte instanci třídy Project.
- Nastavte režim výpočtu na MANUAL.
- Zadejte datum zahájení projektu.
- Přidejte nové úkoly, např. úkol 1 a úkol 2.
- Přečtěte si vlastnosti úlohy.
- Poté inicializujte objekt třídy TaskLinks a propojte úkoly.
- 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ů:
- Vytvořte instanci třídy Project.
- Nastavte režim výpočtu na Žádný.
- Zadejte datum zahájení projektu.
- Přidejte nový úkol, např. Úkol 1.
- Přečtěte si vlastnosti úlohy.
- Poté nastavte trvání úkolu ve dnech.
- 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.