Tạo tệp dự án MS trong C ++

MS Project là một phần mềm quản lý dự án được sử dụng rộng rãi giúp các nhà quản lý quản lý dự án của họ một cách hiệu quả. Nó cho phép tạo các nhiệm vụ, thêm tài nguyên, phân bổ nhiệm vụ cho các tài nguyên, theo dõi tiến độ và quản lý các hoạt động liên quan đến ngân sách. Trong bài viết này, bạn sẽ học cách nhúng các hoạt động quản lý dự án vào các ứng dụng C++ của mình mà không cần MS Project. Với sự trợ giúp của các mẫu mã, bạn sẽ tìm hiểu cách tạo tệp MS Project (.mpp/.xml), thêm tác vụ, tài nguyên và lịch theo cách lập trình bằng C++. Hơn nữa, việc phân công nhiệm vụ cho các nguồn lực trong một dự án cũng sẽ được thể hiện.

API thao tác tệp dự án C ++ MS

Aspose.Tasks for C++ là một API quản lý dự án C++ cho phép bạn tạo, thao tác, xuất và chuyển đổi các tệp MS Project theo cách lập trình. API cung cấp cho bạn một bộ đầy đủ các tính năng để tạo dự án, nhiệm vụ, tài nguyên, lịch và thực hiện các hoạt động quản lý dự án khác mà không cần MS Project. Bạn có thể tải xuống gói API hoàn chỉnh từ tại đây hoặc cài đặt gói này bằng NuGet.

Tạo tệp dự án MS (.mpp) bằng C++

Trước tiên hãy bắt đầu bằng cách tạo một dự án trống. Sau đây là các bước để tạo tệp MS Project (.mpp) từ đầu bằng cách sử dụng Aspose.Tasks for C++.

Mẫu mã sau đây cho biết cách tạo tệp .mpp của MS Project bằng C++.

// Tạo dự án
System::SharedPtr<Project> project = System::MakeObject<Project>();

// Đặt thông tin dự án
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");

// Lưu dự án dưới dạng tệp .mpp
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Thêm nhiệm vụ vào dự án bằng C++

Khi bạn đã tạo một dự án, bạn có thể tiến hành thêm các tác vụ vào dự án đó. Bạn có thể tạo một dự án mới hoặc tải tệp MS Project hiện có để thêm các tác vụ. Sau đây là các bước để tạo và thêm nhiệm vụ hoặc nhiệm vụ con vào một dự án.

Mẫu mã sau đây cho biết cách tạo và thêm tác vụ vào dự án bằng C++.

// Tạo phiên bản dự án
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");

// Thêm nhiệm vụ, nhiệm vụ phụ và lưu dự án
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");

// Lưu dự án
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Đọc thêm về các tính năng mở rộng liên quan đến nhiệm vụ.

Thêm tài nguyên vào dự án bằng C++

Tài nguyên là các thực thể được cho là hoàn thành dự án. Thông thường, mọi người được gọi là nguồn lực của một dự án. Sau đây là các bước để tạo và thêm tài nguyên vào một dự án.

Mẫu mã sau đây cho biết cách thêm tài nguyên vào dự án bằng C++.

// Tạo phiên bản dự án
System::SharedPtr<Project> project = System::MakeObject<Project>();  

// Thêm tài nguyên
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");    

// Đặt thuộc tính tài nguyên, Thuộc tính tài nguyên được biểu diễn bằng lớp tĩnh Rsc
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));  

// Lưu dự án dưới dạng XML
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);

Đọc thêm về các tính năng mở rộng liên quan đến tài nguyên.

Gán nhiệm vụ của Dự án cho Tài nguyên bằng C++

Khi bạn đã tạo các nhiệm vụ và tài nguyên, bước tiếp theo là gán từng nhiệm vụ cho một tài nguyên chịu trách nhiệm hoàn thành. Sau đây là các bước để gán một nhiệm vụ cho một tài nguyên.

Mẫu mã sau đây cho thấy cách gán tác vụ cho tài nguyên trong dự án bằng C++.

// Tạo dự án trống
System::SharedPtr<Project> project1 = System::MakeObject<Project>();    

// Thêm nhiệm vụ và tài nguyên mới
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");  

// Chỉ định tài nguyên tác vụ mong muốn
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);

Thêm Lịch trong Dự án bằng C++

Lịch được sử dụng để tạo lịch biểu cho dự án trong MS Project. Aspose.Tasks for C++ giúp việc tạo lịch cho một dự án trở nên rất đơn giản. Sau đây là các bước để tạo lịch, thêm ngày trong tuần và chỉ định thời gian làm việc.

Bạn cũng có thể đặt thời gian làm việc cho một ngày trong tuần trong lịch. Đối với điều này, bạn có thể làm theo các bước dưới đây sau khi thêm ngày làm việc.

Mẫu mã sau đây cho biết cách tạo lịch trong một dự án bằng C++.

// Tạo một thể hiện dự án
System::SharedPtr<Project> project = System::MakeObject<Project>();    

// Xác định lịch
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");    

// Thêm ngày làm việc từ thứ Hai đến thứ Năm với thời gian mặc định
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));  

// Đặt thứ sáu là ngày làm việc ngắn
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);  

// Đặt thời gian làm việc. Chỉ phần thời gian của DateTime là quan trọng
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);   

// Lưu dự án
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);

Đọc thêm về các tính năng mở rộng liên quan đến lịch.

Sự kết luận

Trong bài viết này, bạn đã học cách tạo các tệp MS Project và lưu chúng dưới dạng .mpp hoặc .xml bằng C++. Hơn nữa, bạn đã học cách thêm nhiệm vụ, tài nguyên, phân công tài nguyên và lịch trong một dự án theo chương trình. Bạn cũng có thể khám phá tài liệu để biết các tính năng mở rộng của Aspose.Tasks for C++ nhằm nâng cao hơn nữa khả năng quản lý dự án trong các ứng dụng của bạn.

Xem thêm