업데이트 된 작업 데이터를 MPP에 작성합니다
Contents
[
Hide
Show
]Aspose.Tasks를 사용하여 C ++를 위해 작업을 업데이트 한 다음 업데이트 된 데이터를 Microsoft Project MPP 파일에 다시 작성할 수 있습니다.
작업 데이터 업데이트
다음 코드 스 니펫은 프로젝트의 작업 데이터를 업데이트하여 MPP 파일에 다시 작성하는 방법을 보여줍니다. 이 활동과 관련된 단계는 다음과 같습니다.
- 프로젝트 클래스의 인스턴스를 만듭니다.
- 소스 MPP 파일을로드하십시오.
- 작업을 만들고 루트 작업에 추가하십시오.
- 마감일, Notestext 등과 같은 작업 매개 변수를 업데이트하십시오.
- 루트 작업에 추가 작업을 추가하십시오.
- 프로젝트를 저장하십시오.
다음 코드는 프로젝트에서 작업의 원본 및 외부 ID를 찾습니다.
1// Create project instance
2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
3System::String newProject = u"UpdateTaskData.mpp";
4System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + newProject);
5
6// Set project start date
7project->Set(Prj::StartDate(), System::DateTime(2012, 7, 29, 8, 0, 0));
8
9// Add summary task and set its properties
10System::SharedPtr<Task> summary = project->get_RootTask()->get_Children()->Add(u"Summary task");
11System::SharedPtr<Task> task1 = summary->get_Children()->Add(u"First task");
12task1->Set<Duration>(Tsk::Duration(), project->GetDuration(3));
13task1->Set(Tsk::Deadline(), task1->Get<System::DateTime>(Tsk::Start()).AddDays(10));
14task1->Set<System::String>(Tsk::NotesText(), u"The first task.");
15task1->Set<TimeUnitType>(Tsk::DurationFormat(), Aspose::Tasks::TimeUnitType::MinuteEstimated);
16task1->Set<ConstraintType>(Tsk::ConstraintType(), Aspose::Tasks::ConstraintType::FinishNoLaterThan);
17task1->Set(Tsk::ConstraintDate(), task1->Get<System::DateTime>(Tsk::Deadline()).AddDays(-1));
18
19
20// Create 10 new sub tasks for summary task
21for (int32_t i = 0; i < 10; i++)
22{
23 System::SharedPtr<Task> subTask = summary->get_Children()->Add(System::String::Format(u"Task{0}",i + 2));
24 subTask->Set<Duration>(Tsk::Duration(), task1->Get<Duration>(Tsk::Duration()).Add(project->GetDuration(i + 1)));
25 subTask->Set<TimeUnitType>(Tsk::DurationFormat(), Aspose::Tasks::TimeUnitType::Day);
26 subTask->Set(Tsk::Deadline(), task1->Get<System::DateTime>(Tsk::Deadline()).AddDays(i + 1));
27}
28
29// Save the Project
30project->Save(dataDir + u"project_UpdateTaskData_updated_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);