Microsoft Project oferuje trzy tryby obliczeń: automatyczny, ręczny i żaden. Każdy tryb oferuje inny poziom kontroli nad sposobem aktualizacji i przeliczania projektu. W tym artykule dowiemy się, jak programowo zaimplementować tryby obliczeń MS Project w Python. Niezależnie od tego, czy przeprowadzasz migrację z planowania ręcznego do planowania automatycznego, czy też potrzebujesz elastyczności w zarządzaniu terminami projektu, w tym artykule znajdziesz informacje i zasoby potrzebne do takiego przejścia. Zacznijmy!
W tym artykule poruszono następujące tematy:
- API Python do programowego obliczania projektu
- Ręczne obliczanie projektu
- Automatyczne obliczanie projektu
- Brak trybu obliczania projektu
API Python do programowego obliczania projektu
Do realizacji projektu MS tryby obliczeniowe wykorzystamy API Aspose.Tasks for Python. Udostępnia następujące tryby obliczeń do obliczania wartości właściwości zależnych:
- Brak – ten tryb ustawia tylko niezbędne właściwości i nie przelicza terminów i kosztów projektu.
- Ręczny – w tym trybie ustawiane są tylko właściwości obiektu zależnego, bez przeliczania terminów i kosztów projektu.
- Automatyczny – ten tryb automatycznie przelicza daty projektu i właściwości kosztów.
Proszę pobierz pakiet lub zainstaluj API z PyPI, używając następującego polecenia pip w konsoli:
pip install aspose-tasks
Oblicz ręcznie MS Project w Python
Możemy ustawić tryb obliczeń na ręczny i zweryfikować go, wykonując poniższe czynności:
- Utwórz instancję klasy Project.
- Ustaw tryb obliczeń na RĘCZNY.
- Określ datę rozpoczęcia projektu.
- Dodaj nowe zadania, np. Zadanie 1 i Zadanie 2.
- Przeczytaj właściwości zadania.
- Następnie zainicjuj obiekt klasy TaskLinks i połącz zadania.
- Na koniec sprawdź datę rozpoczęcia i zakończenia Zadania 2.
Poniższy przykładowy kod pokazuje, jak ręcznie obliczyć projekt w języku Python.
# Ten przykład kodu demonstruje, jak obliczyć projekt MS przy użyciu trybu obliczeń ręcznych w języku Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta
# Utwórz instancję projektu
project = tasks.Project()
# Ustaw tryb obliczeń na Ręczny
project.calculation_mode = tasks.CalculationMode.MANUAL
# Ustaw datę rozpoczęcia projektu
project.start_date = datetime(2015, 4, 15)
# Dodaj nowe zadania
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")
# Niezbędne właściwości ustawia się w trybie ręcznym
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")
# Połącz ze sobą dwa zadania, których daty nie będą przeliczane w trybie ręcznym
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)
# Brak zmian w terminach Zadania 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
Automatyczne obliczanie projektu w Python
Podobnie możemy obliczyć projekt MS w trybie automatycznym, wykonując kroki wspomniane wcześniej. Musimy jednak po prostu ustawić tryb obliczeń na automatyczny w kroku 2.
Poniższy przykładowy kod pokazuje, jak obliczyć projekt MS przy użyciu trybu automatycznego obliczania w języku Python.
# Ten przykład kodu demonstruje, jak obliczyć projekt MS przy użyciu trybu automatycznego obliczania w Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta
# Utwórz instancję projektu
project = tasks.Project()
# Ustaw tryb obliczeń na Automatyczny
project.calculation_mode = tasks.CalculationMode.AUTOMATIC
# Ustaw datę rozpoczęcia projektu
project.start_date = datetime(2015, 4, 15)
# Dodaj nowe zadania
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")
# Połącz zadania
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)
# Sprawdź ponownie obliczone daty
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
Brak trybu obliczania projektu w Python
Możemy ustawić tryb obliczeń na NONE i zweryfikować go, wykonując poniższe kroki:
- Utwórz instancję klasy Project.
- Ustaw tryb obliczeń na Brak.
- Określ datę rozpoczęcia projektu.
- Dodaj nowe zadanie, np. Zadanie 1.
- Przeczytaj właściwości zadania.
- Następnie ustaw czas trwania zadania w dniach.
- Na koniec sprawdź datę rozpoczęcia i zakończenia Zadania.
Poniższy przykładowy kod pokazuje, jak ustawić tryb obliczeń projektu MS na none przy użyciu języka Python.
# Ten przykład kodu demonstruje, jak ustawić tryb obliczeń projektu MS na NONE w Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta
# Utwórz instancję projektu
project = tasks.Project()
# Ustaw tryb obliczeń na Brak
project.calculation_mode = tasks.CalculationMode.NONE
# Dodaj nowe zadanie
task = project.root_task.children.add("Task")
# Należy pamiętać, że nawet identyfikatory nie zostały obliczone
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")
# Ustaw właściwość czasu trwania
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
Zdobądź bezpłatną licencję
Możesz uzyskać bezpłatną licencję tymczasową, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.
Oblicz projekt w Python – zasoby edukacyjne
Oprócz implementowania trybów obliczeń i ponownego obliczania harmonogramu i czasu trwania projektu MS, możesz eksplorować różne inne funkcje biblioteki, korzystając z poniższych zasobów:
- Przewodnik programisty
- Darmowe aplikacje internetowe
- Odniesienie do API
- Poradniki i artykuły z instrukcjami
Wniosek
W tym artykule dowiedzieliśmy się, jak programowo ustawić tryby obliczania projektu w Python. Widzieliśmy także, jak obliczane są wartości właściwości zależnych w każdym trybie obliczeniowym. Wykorzystując Aspose.Tasks for Python poprzez .NET, możesz łatwo osadzić taką funkcjonalność w swoich aplikacjach Python. W przypadku jakichkolwiek niejasności prosimy o kontakt z nami na naszym bezpłatnym forum pomocy technicznej.