צור קבצי MS Project ב-C++

MS Project היא תוכנת ניהול פרויקטים בשימוש נרחב המסייעת למנהלים בניהול הפרויקטים שלהם ביעילות. הוא מאפשר ליצור את המשימות, להוסיף משאבים, להקצות משימות למשאבים, לעקוב אחר ההתקדמות ולנהל פעולות הקשורות לתקציב. במאמר זה, תלמד כיצד להטמיע את פעילויות ניהול הפרויקטים בתוך יישומי C++ שלך ללא MS Project. בעזרת דוגמאות קוד, תלמד כיצד ליצור קבצי MS Project (.mpp/.xml), להוסיף משימות, משאבים ולוחות שנה באופן תכנותי באמצעות C++. יתר על כן, תודגם גם הקצאת משימות למשאבים בפרויקט.

C++ MS Project File Manipulation API

Aspose.Tasks for C++ הוא ממשק API לניהול פרויקטים של C++ המאפשר לך ליצור, לתפעל, לייצא ולהמיר קבצי MS Project באופן תכנותי. ה-API מספק לך סט שלם של תכונות ליצירת פרויקטים, משימות, משאבים, לוחות שנה וביצוע פעילויות אחרות של ניהול פרויקטים ללא MS Project. אתה יכול להוריד את החבילה המלאה של ה-API מכאן או להתקין אותו באמצעות NuGet.

צור קבצי MS Project (.mpp) באמצעות C++

נתחיל קודם כל ביצירת פרויקט ריק. להלן השלבים ליצירת קובץ MS Project (.mpp) מאפס באמצעות Aspose.Tasks עבור C++.

דגימת הקוד הבאה מראה כיצד ליצור קובץ .mpp של MS Project באמצעות C++.

// צור פרויקט
System::SharedPtr<Project> project = System::MakeObject<Project>();

// הגדר מידע על הפרויקט
project->Set<System::String>(Prj::Author(), u"Author");
project->Set<System::String>(Prj::LastAuthor(), u"Last Author");
project->Set<int32_t>(Prj::Revision(), 15);
project->Set<System::String>(Prj::Keywords(), u"MSP Aspose");
project->Set<System::String>(Prj::Comments(), u"Comments");

// שמור את הפרויקט כקובץ mpp
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

הוסף משימות לפרויקט באמצעות C++

לאחר שיצרת פרויקט, תוכל להמשיך ולהוסיף לו משימות. אתה יכול ליצור פרויקט חדש או לטעון קובץ MS Project קיים כדי להוסיף את המשימות. להלן השלבים ליצירה והוספה של משימות או משימות משנה לפרויקט.

דוגמת הקוד הבאה מראה כיצד ליצור ולהוסיף משימות לפרויקט באמצעות C++.

// צור מופע של פרויקט
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");

// הוסף משימה, משימה משנה ושמור פרויקט
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Summary1");
task->Set(Tsk::Start(), project->get_RootTask()->Get<System::DateTime>(Tsk::Start()).AddDays(1));
task->Set<System::String>(Tsk::Name(), u"new name");
System::SharedPtr<Task> subtask = task->get_Children()->Add(u"Subtask1");

// שמור פרוייקט
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

קרא עוד על תכונות מורחבות הקשורות למשימות.

הוסף משאבים לפרויקט באמצעות C++

משאבים הם הגופים שאמורים להשלים את הפרויקט. בדרך כלל, אנשים מכונים משאבים של פרויקט. להלן השלבים ליצירה והוספת משאבים לפרויקט.

דוגמת הקוד הבאה מראה כיצד להוסיף משאב בפרויקט באמצעות C++.

// צור מופע של פרויקט
System::SharedPtr<Project> project = System::MakeObject<Project>();  

// הוסף משאבים
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");    

// הגדר מאפייני משאב, מאפייני משאב מיוצגים על ידי מחלקה סטטית Rsc
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));  

// שמור פרויקט כ-XML
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);

קרא עוד על תכונות מורחבות הקשורות למשאבים.

הקצה את המשימה של הפרויקט למשאב באמצעות C++

לאחר שיצרת את המשימות והמשאבים, השלב הבא הוא להקצות כל משימה למשאב שאחראי להשלמתה. להלן השלבים להקצאת משימה למשאב.

  • צור פרוייקט חדש או טען אותו מקובץ ‎.mpp באמצעות המחלקה Project.
  • הוסף משימות ומשאבים חדשים אם הפרויקט ריק.
  • גש למשימה ולמשאב הרצויים לאובייקט Task ו-Resource בהתאמה.
  • הקצה משימה למשאב באמצעות השיטה Project->getResourceAssignments()->Add(Task, Resource).
  • שמור את הפרויקט באמצעות שיטת Project.Save().

דוגמת הקוד הבאה מראה כיצד להקצות משימה למשאב בפרויקט באמצעות C++.

// צור פרויקט ריק
System::SharedPtr<Project> project1 = System::MakeObject<Project>();    

// הוסף משימה ומשאב חדשים
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");  

// הקצה את המשאב הרצוי
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);

הוסף יומנים ב-Project באמצעות C++

לוחות שנה משמשים ליצירת לוח זמנים עבור הפרויקט במסגרת MS Project. Aspose.Tasks עבור C++ הפך את זה לפשוט מאוד ליצור לוח שנה לפרויקט. להלן השלבים ליצירת לוח שנה, הוספת ימי חול וציון זמן העבודה.

ניתן גם להגדיר את זמן העבודה ליום חול בלוח השנה. לשם כך, תוכל לבצע את השלבים הבאים לאחר הוספת ימי העבודה.

דוגמת הקוד הבאה מראה כיצד ליצור לוח שנה בפרויקט באמצעות C++.

// צור מופע של פרויקט
System::SharedPtr<Project> project = System::MakeObject<Project>();    

// הגדר לוח שנה
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");    

// הוסף ימי עבודה בימים שני עד חמישי עם תזמוני ברירת מחדל
cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Monday));
cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Tuesday));
cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Wednesday));
cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Thursday));
cal->get_WeekDays()->Add(System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Saturday));
cal->get_WeekDays()->Add(System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Sunday));  

// הגדר את יום שישי כיום עבודה קצר
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);  

// קובע זמן עבודה. רק חלק הזמן של DateTime חשוב
System::SharedPtr<WorkingTime> wt1 = System::MakeObject<WorkingTime>();
wt1->set_FromTime(System::DateTime(1, 1, 1, 9, 0, 0, 0));
wt1->set_ToTime(System::DateTime(1, 1, 1, 12, 0, 0, 0));
System::SharedPtr<WorkingTime> wt2 = System::MakeObject<WorkingTime>();
wt2->set_FromTime(System::DateTime(1, 1, 1, 13, 0, 0, 0));
wt2->set_ToTime(System::DateTime(1, 1, 1, 16, 0, 0, 0));
myWeekDay->get_WorkingTimes()->Add(wt1);
myWeekDay->get_WorkingTimes()->Add(wt2);
myWeekDay->set_DayWorking(true);
cal->get_WeekDays()->Add(myWeekDay);   

// שמור את הפרויקט
System::String dataDir = Examples::CPP::RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
project->Save(u"Project_DefineCalendarWeekdays_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

קרא עוד על תכונות מורחבות הקשורות ליומנים.

סיכום

במאמר זה, למדת כיצד ליצור קבצי MS Project ולשמור אותם כ-.mpp או .xml באמצעות C++. יתר על כן, למדת כיצד להוסיף משימות, משאבים, הקצאות משאבים ולוחות שנה בתוך פרויקט באופן פרוגרמטי. אתה יכול גם לחקור את תיעוד עבור התכונות המורחבות של Aspose.Tasks עבור C++ כדי לשפר עוד יותר את יכולות ניהול הפרויקטים בתוך היישומים שלך.

ראה גם