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
- Crea file di progetto MS da zero usando C++
- Aggiungi attività al progetto usando C++
- Aggiungi risorse al progetto usando C++
- Assegna l’attività del progetto alla risorsa usando C++
- Aggiungi calendari in Project usando C++
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++.
- Crea un oggetto della classe Project.
- Imposta le proprietà del progetto.
- Salva il progetto come file .mpp usando il metodo Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
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.
- Crea un nuovo progetto o caricalo dal file .mpp usando la classe Progetto.
- Aggiungi attività al progetto utilizzando il metodo Project->getRootTask()->getChildren()->Add(u"Summary1") e archivia l’attività appena creata in un oggetto Task.
- (Facoltativo) Aggiungi una sottoattività all’attività appena creata utilizzando il metodo Attività->getChildren()->Add(u"Subtask1").
- Salva il progetto come file .mpp utilizzando il metodo Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
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.
- Crea un nuovo progetto o caricalo da un file .mpp usando la classe Project.
- Aggiungi una nuova risorsa usando il metodo Project->getResources()->Add(u"Rsc").
- Salva il progetto usando il metodo Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
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.
- Crea un nuovo progetto o caricalo da un file .mpp usando la classe Project.
- Aggiungi nuove attività e risorse se il progetto è vuoto.
- Accedi all’attività e alla risorsa desiderate rispettivamente nell’oggetto Attività e Risorsa.
- Assegna attività a risorsa utilizzando il metodo Progetto->getResourceAssignments()->Add(Attività, Risorsa).
- Salva il progetto usando il metodo Project.Save().
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.
- Crea un nuovo progetto o caricalo da un file .mpp usando la classe Project.
- Aggiungi un calendario al progetto usando Project->getCalendars()->Add(u"Calendar1") e memorizza il valore restituito nell’oggetto Calendar.
- Aggiungi giorni lavorativi al calendario usando il metodo Calendar->getWeekDays()->Add().
- Salva il progetto.
È 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.
- Crea un oggetto della classe WeekDay.
- Crea un oggetto della classe WorkingTime.
- Impostare i tempi utilizzando i metodi WorkingTime->setFromTime() e WorkingTime->setToTime().
- Aggiungi l’orario di lavoro al giorno della settimana usando il metodo WeekDay->getWorkingTimes()->Add(WorkingTime).
- Aggiungi il giorno della settimana al calendario usando il metodo Calendar->getWeekDays()->Add(WeekDay).
- Salva il progetto.
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.