
MS Project es un software de administración de proyectos ampliamente utilizado que ayuda a los gerentes a administrar sus proyectos de manera eficiente. Permite crear tareas, agregar recursos, asignar tareas a recursos, monitorear el progreso y administrar operaciones relacionadas con el presupuesto. En este artículo, aprenderá a integrar las actividades de gestión de proyectos en sus aplicaciones C++ sin MS Project. Con la ayuda de ejemplos de código, aprenderá cómo crear archivos de MS Project (.mpp/.xml), agregar tareas, recursos y calendarios mediante programación usando C++. Además, también se demostrará la asignación de tareas a recursos en un proyecto.
- API de manipulación de archivos de C++ MS Project
- Cree archivos de MS Project desde cero usando C++
- Agregar tareas al proyecto usando C++
- Agregar recursos al proyecto usando C++
- Asigne la tarea del proyecto al recurso usando C++
- Agregar calendarios en Project usando C++
API de manipulación de archivos de C++ MS Project
Aspose.Tasks for C++ es una API de administración de proyectos de C++ que le permite crear, manipular, exportar y convertir archivos de MS Project mediante programación. La API le proporciona un conjunto completo de funciones para crear proyectos, tareas, recursos, calendarios y realizar otras actividades de gestión de proyectos sin MS Project. Puede descargar el paquete completo de la API desde aquí o instalarlo usando NuGet.
Cree archivos de MS Project (.mpp) usando C++
Comencemos primero creando un proyecto vacío. Los siguientes son los pasos para crear un archivo de MS Project (.mpp) desde cero usando Aspose.Tasks for C++.
- Cree un objeto de la clase Project.
- Establecer las propiedades del proyecto.
- Guarde el proyecto como archivo .mpp usando el método Proyecto->Guardar(u"proyecto.mpp", Aspose::Tareas::Guardar::GuardarFormato::MPP).
El siguiente ejemplo de código muestra cómo crear un archivo .mpp de MS Project usando C++.
// Crear proyecto
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Establecer la información del proyecto
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");
// Guardar proyecto como archivo .mpp
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Agregar tareas al proyecto usando C++
Una vez que haya creado un proyecto, puede proceder a agregarle tareas. Puede crear un nuevo proyecto o cargar un archivo de MS Project existente para agregar las tareas. Los siguientes son los pasos para crear y agregar tareas o subtareas a un proyecto.
- Cree un nuevo proyecto o cárguelo desde un archivo .mpp usando la clase Project.
- Agregue la tarea al proyecto usando el método Proyecto->getRootTask()->getChildren()->Add(u"Summary1") y almacene la tarea recién creada en un objeto Tarea.
- (Opcional) Agregue una subtarea a la tarea recién creada usando el método Task->getChildren()->Add(u"Subtask1").
- Guarde el proyecto como archivo .mpp usando el método Proyecto->Guardar(u"proyecto.mpp", Aspose::Tareas::Guardar::SaveFileFormat::MPP).
El siguiente ejemplo de código muestra cómo crear y agregar tareas a un proyecto usando C++.
// Crear instancia de proyecto
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");
// Agregar tarea, subtarea y guardar proyecto
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");
// Guardar proyecto
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Leer más sobre funciones ampliadas relacionadas con las tareas.
Agregar recursos al proyecto usando C++
Los recursos son las entidades que se supone que deben completar el proyecto. Por lo general, se hace referencia a las personas como los recursos de un proyecto. Los siguientes son los pasos para crear y agregar recursos a un proyecto.
- Cree un nuevo proyecto o cárguelo desde un archivo .mpp usando la clase Project.
- Agregue un nuevo recurso usando el método Proyecto->getResources()->Add(u"Rsc").
- Guarde el proyecto usando el método Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
El siguiente ejemplo de código muestra cómo agregar un recurso en un proyecto usando C++.
// Crear instancia de proyecto
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Agregar recursos
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");
// Establecer propiedades de recursos, las propiedades de los recursos están representadas por la clase 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));
// Guardar proyecto como XML
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
Leer más sobre funciones ampliadas relacionadas con los recursos.
Asigne la tarea del proyecto al recurso usando C++
Una vez que haya creado las tareas y los recursos, el siguiente paso es asignar cada tarea a un recurso que se encargue de su finalización. Los siguientes son los pasos para asignar una tarea a un recurso.
- Cree un nuevo proyecto o cárguelo desde un archivo .mpp usando la clase Project.
- Agregue nuevas tareas y recursos si el proyecto está vacío.
- Acceda a la tarea y el recurso deseados en el objeto Tarea y Recurso respectivamente.
- Asigne una tarea a un recurso utilizando el método Proyecto->getResourceAssignments()->Add(Task, Resource).
- Guarde el proyecto usando el método Project.Save().
El siguiente ejemplo de código muestra cómo asignar una tarea a un recurso en un proyecto usando C++.
// Crear proyecto vacío
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
// Agregar nueva tarea y recurso
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");
// Asigne al recurso la tarea deseada
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);
Agregar calendarios en Project usando C++
Los calendarios se utilizan para crear una programación para el proyecto dentro de MS Project. Aspose.Tasks for C++ ha simplificado mucho la creación de un calendario para un proyecto. Los siguientes son los pasos para crear un calendario, agregar días de la semana y especificar el horario de trabajo.
- Cree un nuevo proyecto o cárguelo desde un archivo .mpp usando la clase Project.
- Agregue un calendario al proyecto usando Proyecto->getCalendars()->Add(u"Calendar1") y almacene el valor devuelto en el objeto Calendar.
- Agregue días hábiles al calendario usando el método Calendar->getWeekDays()->Add().
- Guarde el proyecto.
También puede establecer el tiempo de trabajo para un día de la semana en el calendario. Para esto, puede seguir los pasos a continuación después de agregar los días hábiles.
- Cree un objeto de la clase WeekDay.
- Cree un objeto de la clase WorkingTime.
- Configure el tiempo usando los métodos WorkingTime->setFromTime() y WorkingTime->setToTime().
- Agregue tiempo de trabajo al día de la semana usando el método WeekDay->getWorkingTimes()->Add(WorkingTime).
- Agregue el día de la semana al calendario usando el método Calendar->getWeekDays()->Add(WeekDay).
- Guarde el proyecto.
El siguiente ejemplo de código muestra cómo crear un calendario en un proyecto usando C++.
// Crear una instancia de proyecto
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Definir calendario
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");
// Agregue días hábiles de lunes a jueves con horarios predeterminados
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));
// Establecer el viernes como día laborable corto
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);
// Establece el tiempo de trabajo. Solo la parte de tiempo de DateTime es 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);
// Guardar el proyecto
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);
Leer más sobre las funciones ampliadas relacionadas con los calendarios.
Conclusión
En este artículo, ha aprendido cómo crear archivos de MS Project y guardarlos como .mpp o .xml usando C++. Además, aprendió a agregar tareas, recursos, asignaciones de recursos y calendarios dentro de un proyecto mediante programación. También puede explorar la documentación para conocer las funciones ampliadas de Aspose.Tasks for C++ para mejorar aún más las capacidades de gestión de proyectos dentro de sus aplicaciones.