Schreiben aktualisierter Aufgabendaten an MPP

Contents
[ Hide Show ]

Mit Aspose.Tasks für C ++ ist es möglich, Aufgaben zu aktualisieren und dann die aktualisierten Daten zurück in eine Microsoft -Projekt -MPP -Datei zu schreiben.

Aktualisieren von Aufgabendaten

Das folgende Code -Snippet zeigt, wie die Aufgabendaten eines Projekts aktualisiert und in die MPP -Datei zurückgeschrieben werden. Der Schritt, der an dieser Aktivität beteiligt ist, ist:

  1. Erstellen Sie eine Instanz der Projektklasse.
  2. Laden Sie die Quell -MPP -Datei.
  3. Erstellen Sie eine Aufgabe und fügen Sie sie der Stammaufgabe hinzu.
  4. Aktualisieren Sie die Aufgabenparameter wie Termin, Notestext usw.
  5. Fügen Sie der Stammaufgabe zusätzliche Aufgaben hinzu.
  6. Speichern Sie das Projekt.

Der folgende Code findet die ursprüngliche und externe ID einer Aufgabe im Projekt.

 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.