تنفيذ أوضاع حساب مشروع MS في بايثون

يقدم Microsoft Project ثلاثة أوضاع حسابية: تلقائية ويدوية ولا شيء. يقدم كل وضع مستوى مختلفًا من التحكم في كيفية تحديث المشروع وإعادة حسابه. في هذه المقالة، سوف نتعلم كيفية تنفيذ أوضاع حساب MS Project برمجيًا في بايثون. سواء كنت تقوم بالترحيل من الجدولة اليدوية إلى الجدولة الآلية أو كنت بحاجة إلى المرونة في إدارة المواعيد النهائية لمشروعك، ستزودك هذه المقالة بالمعلومات والموارد اللازمة لمثل هذا التحول. هيا بنا نبدأ!

تتناول هذه المقالة المواضيع التالية:

  1. واجهة برمجة تطبيقات Python لحساب المشروع برمجيًا
  2. الحساب اليدوي للمشروع
  3. الحساب التلقائي للمشروع
  4. لا يوجد وضع حساب المشروع

Python API لحساب المشروع برمجياً

سوف نستخدم Aspose.Tasks for Python API لتنفيذ مشروع MS أوضاع الحساب. يوفر أوضاع الحساب التالية لحساب قيم الخصائص التابعة:

  • لا شيء – يقوم هذا الوضع بتعيين الخصائص الضرورية فقط ولا يقوم بإعادة حساب تواريخ المشروع وتكاليفه.
  • يدوي - يقوم هذا الوضع بتعيين خصائص الكائن التابعة فقط دون إعادة حساب تواريخ المشروع وتكاليفه.
  • تلقائي – يقوم هذا الوضع بإعادة حساب تواريخ المشروع وخصائص التكلفة تلقائيًا.

يرجى تنزيل الحزمة أو تثبيت واجهة برمجة التطبيقات من PyPI باستخدام أمر النقطة التالي في وحدة التحكم:

pip install aspose-tasks

حساب مشروع MS يدويا في بايثون

يمكننا ضبط وضع الحساب على الوضع اليدوي والتحقق منه باتباع الخطوات التالية:

  1. إنشاء مثيل لفئة المشروع.
  2. اضبط وضع الحساب على MANUAL.
  3. تحديد تاريخ بدء المشروع.
  4. أضف مهام جديدة، على سبيل المثال، المهمة 1 والمهمة 2.
  5. قراءة خصائص المهمة.
  6. بعد ذلك، قم بتهيئة كائن من فئة TaskLinks وربط المهام.
  7. وأخيرا، تحقق من تاريخ البدء والانتهاء للمهمة 2.

يوضح نموذج التعليمات البرمجية التالي كيفية حساب مشروع يدويًا في بايثون.

# يوضح هذا المثال الرمزي كيفية حساب مشروع 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

الحساب التلقائي للمشروع في بايثون

وبالمثل، يمكننا حساب مشروع 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

لا يوجد وضع حساب المشروع في بايثون

يمكننا ضبط وضع الحساب على NONE والتحقق منه باتباع الخطوات الواردة أدناه:

  1. إنشاء مثيل لفئة المشروع.
  2. اضبط وضع الحساب على لا شيء.
  3. تحديد تاريخ بدء المشروع.
  4. أضف مهمة جديدة، على سبيل المثال، المهمة 1.
  5. قراءة خصائص المهمة.
  6. بعد ذلك، قم بتعيين مدة المهمة بالأيام.
  7. وأخيرا، التحقق من تاريخ البدء والانتهاء للمهمة.

يوضح نموذج التعليمات البرمجية التالي كيفية تعيين وضع حساب مشروع MS على لا شيء باستخدام Python.

# يوضح مثال التعليمات البرمجية هذا كيفية تعيين وضع حساب مشروع 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

احصل على ترخيص مجاني

يمكنك الحصول على ترخيص مؤقت مجاني لتجربة المكتبة دون قيود التقييم.

حساب المشروع في بايثون – مصادر التعلم

إلى جانب تنفيذ أوضاع الحساب وإعادة حساب الجدول الزمني لمشروع MS ومدته، يمكنك استكشاف العديد من الميزات الأخرى للمكتبة باستخدام الموارد أدناه:

خاتمة

تعلمنا في هذه المقالة كيفية ضبط أوضاع حساب المشروع برمجيًا في بايثون. لقد رأينا أيضًا كيف يتم حساب قيم الخصائص التابعة في كل وضع حسابي. من خلال الاستفادة من Aspose.Tasks for Python عبر .NET، يمكنك بسهولة تضمين هذه الوظيفة في تطبيقات Python الخاصة بك. في حالة وجود أي غموض، فلا تتردد في الاتصال بنا منتدى الدعم المجاني.

أنظر أيضا