הטמע מצבי חישוב MS Project ב- Python

Microsoft Project מציע שלושה מצבי חישוב: אוטומטי, ידני ואף אחד. כל מצב מציע רמה שונה של שליטה על האופן שבו הפרויקט מתעדכן ומחושב מחדש. במאמר זה, נלמד כיצד ליישם את מצבי החישוב של MS Project באופן תכנותי ב-Python. בין אם אתה עובר מתזמון ידני לתזמון אוטומטי או שאתה זקוק לגמישות בניהול מועדי הפרויקט שלך, מאמר זה יספק לך את המידע והמשאבים הדרושים למעבר כזה. בואו נתחיל!

מאמר זה עוסק בנושאים הבאים:

  1. Python API לחישוב פרויקט באופן פרוגרמטי
  2. חישוב פרויקט ידני
  3. חישוב פרויקט אוטומטי
  4. ללא מצב חישוב פרויקט

Python API לחישוב פרויקט באופן פרוגרמטי

נשתמש ב-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. הגדר את מצב החישוב ל-None.
  3. ציין את תאריך תחילת הפרויקט.
  4. הוסף משימה חדשה, למשל, משימה 1.
  5. קרא את מאפייני המשימה.
  6. לאחר מכן, הגדר את משך המשימה בימים.
  7. לבסוף, ודא את תאריך ההתחלה והסיום של המשימה.

דוגמת הקוד הבאה מראה כיצד להגדיר מצב חישוב פרויקט MS ללא שימוש ב- Python.

# דוגמה זו מדגימה כיצד להגדיר את מצב חישוב פרויקט MS כ-NONE ב-Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# צור מופע של הפרויקט
project = tasks.Project()

# הגדר את מצב החישוב ל-None
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 עבור Python באמצעות .NET, תוכל להטמיע בקלות פונקציונליות כזו ביישומי Python שלך. בכל מקרה של אי בהירות, אנא אל תהסס לפנות אלינו פורום התמיכה החינמית שלנו.

ראה גם