
MS Project یک نرم افزار مدیریت پروژه پرکاربرد است که به مدیران در مدیریت کارآمد پروژه های خود کمک می کند. امکان ایجاد وظایف، افزودن منابع، تخصیص وظایف به منابع، نظارت بر پیشرفت و مدیریت عملیات مربوط به بودجه را فراهم می کند. در این مقاله یاد خواهید گرفت که چگونه فعالیت های مدیریت پروژه را در برنامه های ++C خود بدون MS Project جاسازی کنید. با کمک نمونههای کد، یاد خواهید گرفت که چگونه فایلهای MS Project (mpp/.xml) ایجاد کنید، وظایف، منابع و تقویمها را به صورت برنامهنویسی با استفاده از C++ اضافه کنید. علاوه بر این، تخصیص وظایف به منابع در یک پروژه نیز نشان داده خواهد شد.
- C++ MS Project File Manipulation API
- فایل های پروژه MS را از ابتدا با استفاده از C++ ایجاد کنید
- با استفاده از C++ Tasks را به پروژه اضافه کنید
- اضافه کردن منابع به پروژه با استفاده از ++C
- با استفاده از C++، وظیفه پروژه را به منبع اختصاص دهید
- اضافه کردن تقویم در پروژه با استفاده از ++C
C++ MS Project File Manipulation API
Aspose.Tasks for C++ یک API مدیریت پروژه C++ است که به شما امکان میدهد فایلهای MS Project را به صورت برنامهنویسی ایجاد، دستکاری، صادرات و تبدیل کنید. API مجموعه کاملی از ویژگی ها را برای ایجاد پروژه ها، وظایف، منابع، تقویم ها و انجام سایر فعالیت های مدیریت پروژه بدون MS Project در اختیار شما قرار می دهد. میتوانید بسته کامل API را از اینجا دانلود کنید یا با استفاده از NuGet آن را نصب کنید.
فایل های پروژه MS (mpp.) را با استفاده از C++ ایجاد کنید
اجازه دهید ابتدا با ایجاد یک پروژه خالی شروع کنیم. در زیر مراحل ایجاد یک فایل MS Project (mpp.) از ابتدا با استفاده از Aspose.Tasks برای C++ آمده است.
- یک شی از کلاس Project ایجاد کنید.
- ویژگی های پروژه را تنظیم کنید.
- با استفاده از روش Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP) پروژه را به عنوان فایل mpp ذخیره کنید.
نمونه کد زیر نحوه ایجاد فایل .mpp پروژه MS را با استفاده از 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++ Tasks را به پروژه اضافه کنید
پس از ایجاد یک پروژه، می توانید به اضافه کردن وظایف به آن ادامه دهید. می توانید یک پروژه جدید ایجاد کنید یا یک فایل MS Project موجود را برای اضافه کردن وظایف بارگذاری کنید. مراحل زیر برای ایجاد و افزودن وظایف یا وظایف فرعی به یک پروژه است.
- یک پروژه جدید ایجاد کنید یا آن را با استفاده از کلاس Project از فایل .mpp بارگذاری کنید.
- با استفاده از روش Project->getRootTask()->getChildren()->Add(u"Summary1") کار را به پروژه اضافه کنید و وظیفه جدید ایجاد شده را در یک شی Task ذخیره کنید.
- (اختیاری) با استفاده از روش Task->getChildren()->Add(u"Subtask1") یک کار فرعی به کار تازه ایجاد شده اضافه کنید.
- با استفاده از روش Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP) پروژه را به عنوان فایل mpp ذخیره کنید.
نمونه کد زیر نحوه ایجاد و افزودن وظایف به یک پروژه با استفاده از 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
منابع، نهادهایی هستند که قرار است پروژه را تکمیل کنند. معمولاً از افراد به عنوان منابع یک پروژه یاد می شود. در زیر مراحل ایجاد و افزودن منابع به پروژه آورده شده است.
- با استفاده از کلاس Project یک پروژه جدید ایجاد کنید یا آن را از یک فایل mpp.
- با استفاده از روش Project->getResources()->Add(u"Rsc") یک منبع جدید اضافه کنید.
- پروژه را با استفاده از روش Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP) ذخیره کنید.
نمونه کد زیر نحوه اضافه کردن یک منبع در پروژه با استفاده از 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++، وظیفه پروژه را به منبع اختصاص دهید
هنگامی که وظایف و منابع را ایجاد کردید، گام بعدی این است که هر کار را به منبعی اختصاص دهید که مسئول تکمیل آن است. مراحل زیر برای اختصاص یک کار به یک منبع آورده شده است.
- با استفاده از کلاس Project یک پروژه جدید ایجاد کنید یا آن را از یک فایل mpp.
- در صورت خالی بودن پروژه، وظایف و منابع جدید اضافه کنید.
- به کار و منبع مورد نظر به ترتیب در شیء 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);
اضافه کردن تقویم در پروژه با استفاده از ++C
از تقویم ها برای ایجاد یک برنامه زمانی برای پروژه در پروژه MS استفاده می شود. Aspose.Tasks برای C++ ایجاد یک تقویم برای یک پروژه را بسیار ساده کرده است. مراحل زیر برای ایجاد یک تقویم، اضافه کردن روزهای هفته و تعیین زمان کار آمده است.
- با استفاده از کلاس Project یک پروژه جدید ایجاد کنید یا آن را از یک فایل mpp.
- با استفاده از Project->getCalendars()->Add(u"Calendar1") یک تقویم به پروژه اضافه کنید و مقدار بازگشتی را در شیء Calendar ذخیره کنید.
- با استفاده از روش Calendar->getWeekDays()->Add() روزهای کاری را به تقویم اضافه کنید.
- پروژه را ذخیره کنید.
همچنین می توانید زمان کاری یک روز هفته را در تقویم تنظیم کنید. برای این کار می توانید پس از افزودن روزهای کاری مراحل زیر را دنبال کنید.
- یک شی از کلاس WeekDay ایجاد کنید.
- یک شی از کلاس WorkingTime ایجاد کنید.
- زمان بندی را با استفاده از روش های WorkingTime->setFromTime() و WorkingTime->setToTime() تنظیم کنید.
- با استفاده از روش WeekDay->getWorkingTimes()->Add(WorkingTime) زمان کاری را به روزهای هفته اضافه کنید.
- روز هفته را با استفاده از روش Calendar->getWeekDays()->Add(WeekDay) به تقویم اضافه کنید.
- پروژه را ذخیره کنید.
نمونه کد زیر نحوه ایجاد تقویم در یک پروژه با استفاده از 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++ بررسی کنید تا قابلیتهای مدیریت پروژه را در برنامههای خود افزایش دهید.