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
- Crie arquivos do MS Project do zero usando C++
- Adicionar tarefas ao projeto usando C++
- Adicionar recursos ao projeto usando C++
- Atribuir a tarefa do projeto ao recurso usando C++
- Adicionar calendários no projeto usando C++
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++.
- Crie um objeto da classe Project.
- Defina as propriedades do projeto.
- Salve o projeto como arquivo .mpp usando o método Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
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.
- Crie um novo projeto ou carregue-o do arquivo .mpp usando a classe Project.
- Adicione a tarefa ao projeto usando o método Project->getRootTask()->getChildren()->Add(u"Summary1") e armazene a tarefa recém-criada em um objeto Task.
- (Opcional) Adicione uma subtarefa à tarefa recém-criada usando o método Task->getChildren()->Add(u"Subtask1").
- Salve o projeto como arquivo .mpp usando o método Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
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.
- Crie um novo projeto ou carregue-o de um arquivo .mpp usando a classe Project.
- Adicione um novo recurso usando o método Project->getResources()->Add(u"Rsc").
- Salve o projeto usando o método Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
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.
- Crie um novo projeto ou carregue-o de um arquivo .mpp usando a classe Project.
- Adicione novas tarefas e recursos se o projeto estiver vazio.
- Acesse a tarefa e o recurso desejados nos objetos Task e Resource, respectivamente.
- Atribua tarefa ao recurso usando o método Project->getResourceAssignments()->Add(Task, Resource).
- Salve o projeto usando o método Project.Save().
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.
- Crie um novo projeto ou carregue-o de um arquivo .mpp usando a classe Project.
- Adicione um calendário ao projeto usando Project->getCalendars()->Add(u"Calendar1") e armazene o valor retornado no objeto Calendar.
- Adicione dias úteis ao calendário usando o método Calendar->getWeekDays()->Add().
- Salve o projeto.
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.
- Crie um objeto da classe WeekDay.
- Crie um objeto da classe WorkingTime.
- Defina o tempo usando os métodos WorkingTime->setFromTime() e WorkingTime->setToTime().
- Adicione o horário de trabalho ao dia da semana usando o método WeekDay->getWorkingTimes()->Add(WorkingTime).
- Adicione o dia da semana ao calendário usando o método Calendar->getWeekDays()->Add(WeekDay).
- Salve o projeto.
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.