更新されたタスクデータをMPPに書き込みます

Contents
[ Hide Show ]

C ++のAspose.Tasksを使用すると、タスクを更新してから、更新されたデータをMicrosoft Project MPPファイルに書き戻すことができます。

タスクデータの更新

次のコードスニペットは、プロジェクトのタスクデータを更新し、MPPファイルに書き戻す方法を示しています。このアクティビティに関与するステップは次のとおりです。

  1. プロジェクトクラスのインスタンスを作成します。
  2. ソースMPPファイルをロードします。
  3. タスクを作成し、ルートタスクに追加します。
  4. 締め切り、notestextなどのタスクパラメーターを更新します。
  5. ルートタスクに追加のタスクを追加します。
  6. プロジェクトを保存します。

次のコードでは、プロジェクトにタスクの元のIDと外部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);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.