Criar arquivos do MS Project em C++

MS Project é um software de gerenciamento de projetos amplamente utilizado que ajuda os gerentes a gerenciar seus projetos com eficiência. Ele permite criar as tarefas, adicionar recursos, alocar tarefas aos recursos, monitorar o progresso e gerenciar as operações relacionadas ao orçamento. Neste artigo, você aprenderá a incorporar as atividades de gerenciamento de projetos em seus aplicativos C++ sem o MS Project. Com a ajuda de exemplos de código, você aprenderá a criar arquivos do MS Project (.mpp/.xml), adicionar tarefas, recursos e calendários programaticamente usando C++. Além disso, a atribuição de tarefas aos recursos em um projeto também será demonstrada.

API de manipulação de arquivos C++ MS Project

Aspose.Tasks for C++ é uma API de gerenciamento de projeto C++ que permite criar, manipular, exportar e converter arquivos do MS Project programaticamente. A API fornece um conjunto completo de recursos para criar projetos, tarefas, recursos, calendários e realizar outras atividades de gerenciamento de projetos sem o MS Project. Você pode baixar o pacote completo da API aqui ou instalá-lo usando NuGet.

Criar arquivos do MS Project (.mpp) usando C++

Vamos começar criando um projeto vazio. A seguir estão as etapas para criar um arquivo do MS Project (.mpp) do zero usando Aspose.Tasks para C++.

O exemplo de código a seguir mostra como criar um arquivo .mpp do MS Project usando C++.

// Criar projeto
System::SharedPtr<Project> project = System::MakeObject<Project>();

// Definir informações do projeto
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");

// Salvar projeto como arquivo .mpp
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Adicionar tarefas ao projeto usando C++

Depois de criar um projeto, você pode adicionar tarefas a ele. Você pode criar um novo projeto ou carregar um arquivo MS Project existente para adicionar as tarefas. A seguir estão as etapas para criar e adicionar tarefas ou subtarefas a um projeto.

O exemplo de código a seguir mostra como criar e adicionar tarefas a um projeto usando C++.

// Criar instância do projeto
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");

// Adicionar tarefa, subtarefa e salvar projeto
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");

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

Leia mais sobre recursos estendidos relacionados a tarefas.

Adicionar recursos ao projeto usando C++

Os recursos são as entidades que devem concluir o projeto. Normalmente, as pessoas são chamadas de recursos de um projeto. A seguir estão as etapas para criar e adicionar recursos a um projeto.

O exemplo de código a seguir mostra como adicionar um recurso em um projeto usando C++.

// Criar instância do projeto
System::SharedPtr<Project> project = System::MakeObject<Project>();  

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

// Defina as propriedades do recurso, as propriedades do recurso são representadas pela classe estática Rsc
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));  

// Salvar projeto como XML
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);

Leia mais sobre recursos estendidos relacionados a recursos.

Atribuir a tarefa do projeto ao recurso usando C++

Depois de criar as tarefas e os recursos, a próxima etapa é atribuir cada tarefa a um recurso responsável por sua conclusão. A seguir estão as etapas para atribuir uma tarefa a um recurso.

O exemplo de código a seguir mostra como atribuir uma tarefa a um recurso em um projeto usando C++.

// Criar projeto vazio
System::SharedPtr<Project> project1 = System::MakeObject<Project>();    

// Adicionar nova tarefa e recurso
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");  

// Atribuir a tarefa desejada do recurso
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);

Adicionar calendários no projeto usando C++

Os calendários são usados para criar um cronograma para o projeto no MS Project. Aspose.Tasks para C++ tornou muito simples criar um calendário para um projeto. A seguir estão as etapas para criar um calendário, adicionar dias da semana e especificar o horário de trabalho.

Você também pode definir o horário de trabalho para um dia da semana no calendário. Para isso, você pode seguir as etapas abaixo após adicionar os dias úteis.

O exemplo de código a seguir mostra como criar um calendário em um projeto usando C++.

// Criar uma instância de projeto
System::SharedPtr<Project> project = System::MakeObject<Project>();    

// Definir calendário
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");    

// Adicione dias úteis de segunda a quinta-feira com horários padrão
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));  

// Definir sexta-feira como dia útil curto
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);  

// Define o tempo de trabalho. Apenas a parte do tempo de 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);   

// Salve o Projeto
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);

Leia mais sobre recursos estendidos relacionados a calendários.

Conclusão

Neste artigo, você aprendeu como criar arquivos do MS Project e salvá-los como .mpp ou .xml usando C++. Além disso, você aprendeu como adicionar tarefas, recursos, atribuições de recursos e calendários em um projeto programaticamente. Você também pode explorar a documentação para os recursos estendidos do Aspose.Tasks for C++ para aprimorar ainda mais os recursos de gerenciamento de projetos em seus aplicativos.

Veja também