Crea file di progetto MS in C++

MS Project è un software di gestione dei progetti ampiamente utilizzato che aiuta i manager a gestire i loro progetti in modo efficiente. Consente di creare attività, aggiungere risorse, allocare attività a risorse, monitorare lo stato di avanzamento e gestire le operazioni relative al budget. In questo articolo imparerai come incorporare le attività di gestione dei progetti all’interno delle tue applicazioni C++ senza MS Project. Con l’aiuto di esempi di codice, imparerai come creare file MS Project (.mpp/.xml), aggiungere attività, risorse e calendari a livello di codice usando C++. Inoltre, verrà anche dimostrata l’assegnazione di compiti alle risorse in un progetto.

API di manipolazione dei file di progetto C++ MS

Aspose.Tasks for C++ è un’API di gestione dei progetti C++ che consente di creare, manipolare, esportare e convertire file MS Project a livello di codice. L’API fornisce un set completo di funzionalità per creare progetti, attività, risorse, calendari ed eseguire altre attività di gestione dei progetti senza MS Project. Puoi scaricare il pacchetto completo dell’API da qui o installarlo utilizzando NuGet.

Crea file di progetto MS (.mpp) usando C++

Iniziamo creando un progetto vuoto. Di seguito sono riportati i passaggi per creare un file MS Project (.mpp) da zero utilizzando Aspose.Tasks per C++.

Nell’esempio di codice seguente viene illustrato come creare un file .mpp di MS Project utilizzando C++.

// Crea progetto
System::SharedPtr<Project> project = System::MakeObject<Project>();

// Imposta le informazioni sul progetto
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");

// Salva il progetto come file .mpp
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Aggiungi attività al progetto usando C++

Dopo aver creato un progetto, puoi procedere con l’aggiunta di attività ad esso. Puoi creare un nuovo progetto o caricare un file MS Project esistente per aggiungere le attività. Di seguito sono riportati i passaggi per creare e aggiungere attività o attività secondarie a un progetto.

L’esempio di codice seguente mostra come creare e aggiungere attività a un progetto usando C++.

// Crea istanza del progetto
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");

// Aggiungi attività, attività secondaria e salva progetto
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");

// Salva il progetto
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Leggi di più sulle funzionalità estese relative alle attività.

Aggiungi risorse al progetto usando C++

Le risorse sono le entità che dovrebbero completare il progetto. Di solito, le persone sono indicate come le risorse di un progetto. Di seguito sono riportati i passaggi per creare e aggiungere risorse a un progetto.

L’esempio di codice seguente mostra come aggiungere una risorsa in un progetto usando C++.

// Crea istanza del progetto
System::SharedPtr<Project> project = System::MakeObject<Project>();  

// Aggiungi risorse
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");    

// Imposta le proprietà della risorsa, le proprietà della risorsa sono rappresentate dalla classe statica Rsc
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));  

// Salva progetto come XML
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);

Leggi di più sulle funzionalità estese relative alle risorse.

Assegna l’attività del progetto alla risorsa usando C++

Dopo aver creato le attività e le risorse, il passaggio successivo consiste nell’assegnare ciascuna attività a una risorsa responsabile del suo completamento. Di seguito sono riportati i passaggi per assegnare un’attività a una risorsa.

Nell’esempio di codice seguente viene illustrato come assegnare un’attività a una risorsa in un progetto usando C++.

// Crea progetto vuoto
System::SharedPtr<Project> project1 = System::MakeObject<Project>();    

// Aggiungi nuova attività e risorsa
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");  

// Assegna l'attività desiderata per la risorsa
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);

Aggiungi calendari in Project usando C++

I calendari vengono utilizzati per creare una pianificazione per il progetto all’interno di MS Project. Aspose.Tasks per C++ ha semplificato la creazione di un calendario per un progetto. Di seguito sono riportati i passaggi per creare un calendario, aggiungere i giorni della settimana e specificare l’orario di lavoro.

È inoltre possibile impostare l’orario di lavoro per un giorno della settimana nel calendario. Per questo, puoi seguire i passaggi seguenti dopo aver aggiunto i giorni lavorativi.

L’esempio di codice seguente mostra come creare un calendario in un progetto usando C++.

// Crea un'istanza del progetto
System::SharedPtr<Project> project = System::MakeObject<Project>();    

// Definisci Calendario
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");    

// Aggiungi giorni lavorativi dal lunedì al giovedì con orari predefiniti
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));  

// Imposta venerdì come giorno lavorativo breve
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);  

// Imposta l'orario di lavoro. Solo la parte temporale di DateTime è importante
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);   

// Salva il progetto
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);

Leggi di più sulle funzionalità estese relative ai calendari.

Conclusione

In questo articolo, hai imparato come creare file MS Project e salvarli come .mpp o .xml usando C++. Inoltre, hai imparato come aggiungere attività, risorse, assegnazioni di risorse e calendari all’interno di un progetto in modo programmatico. Puoi anche esplorare la documentazione per le funzionalità estese di Aspose.Tasks per C++ per migliorare ulteriormente le capacità di gestione dei progetti all’interno delle tue applicazioni.

Guarda anche