MS 프로젝트는 관리자가 프로젝트를 효율적으로 관리하는 데 도움이 되는 널리 사용되는 프로젝트 관리 소프트웨어입니다. 작업을 생성하고, 리소스를 추가하고, 리소스에 작업을 할당하고, 진행 상황을 모니터링하고, 예산 관련 작업을 관리할 수 있습니다. 이 기사에서는 MS Project 없이 C++ 애플리케이션에 프로젝트 관리 활동을 포함하는 방법을 배웁니다. 코드 샘플을 사용하여 C++를 사용하여 프로그래밍 방식으로 MS 프로젝트 파일(.mpp/.xml)을 만들고 작업, 리소스 및 일정을 추가하는 방법을 배우게 됩니다. 또한 프로젝트의 리소스에 대한 작업 할당도 시연됩니다.
- C++ MS 프로젝트 파일 조작 API
- C++를 사용하여 처음부터 MS 프로젝트 파일 만들기
- C++를 사용하여 프로젝트에 작업 추가
- C++를 사용하여 프로젝트에 리소스 추가
- C++를 사용하여 리소스에 프로젝트 작업 할당
- C++를 사용하여 프로젝트에 캘린더 추가
C++ MS 프로젝트 파일 조작 API
Aspose.Tasks for C++는 프로그래밍 방식으로 MS 프로젝트 파일을 생성, 조작, 내보내기 및 변환할 수 있는 C++ 프로젝트 관리 API입니다. API는 MS Project 없이 프로젝트, 작업, 리소스, 일정을 만들고 기타 프로젝트 관리 활동을 수행할 수 있는 완전한 기능 세트를 제공합니다. API의 전체 패키지는 여기에서 다운로드하거나 NuGet을 사용하여 설치할 수 있습니다.
C++를 사용하여 MS 프로젝트 파일(.mpp) 생성
먼저 빈 프로젝트를 생성하여 시작하겠습니다. 다음은 Aspose.Tasks for C++를 사용하여 처음부터 MS 프로젝트(.mpp) 파일을 만드는 단계입니다.
- Project 클래스의 객체를 생성합니다.
- 프로젝트의 속성을 설정합니다.
- Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP) 메서드를 사용하여 프로젝트를 .mpp 파일로 저장합니다.
다음 코드 샘플은 C++를 사용하여 MS 프로젝트의 .mpp 파일을 만드는 방법을 보여줍니다.
// 프로젝트 생성
System::SharedPtr<Project> project = System::MakeObject<Project>();
// 프로젝트 정보 설정
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");
// 프로젝트를 .mpp 파일로 저장
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
C++를 사용하여 프로젝트에 작업 추가
프로젝트를 생성한 후에는 프로젝트에 작업을 추가할 수 있습니다. 새 프로젝트를 만들거나 기존 MS 프로젝트 파일을 로드하여 작업을 추가할 수 있습니다. 다음은 작업 또는 하위 작업을 만들고 프로젝트에 추가하는 단계입니다.
- Project 클래스를 사용하여 새 프로젝트를 생성하거나 .mpp 파일에서 로드합니다.
- Project->getRootTask()->getChildren()->Add(u"Summary1") 메서드를 사용하여 프로젝트에 작업을 추가하고 새로 생성된 작업을 Task 개체에 저장합니다.
- (선택 사항) Task->getChildren()->Add(u"Subtask1") 메서드를 사용하여 새로 생성된 작업에 하위 작업을 추가합니다.
- Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP) 메서드를 사용하여 프로젝트를 .mpp 파일로 저장합니다.
다음 코드 샘플은 C++를 사용하여 프로젝트에 작업을 만들고 추가하는 방법을 보여줍니다.
// 프로젝트 인스턴스 생성
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");
// 작업, 하위 작업 추가 및 프로젝트 저장
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");
// 프로젝트를 저장하다
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
작업과 관련된 확장 기능에 대해 자세히 읽기.
C++를 사용하여 프로젝트에 리소스 추가
자원은 프로젝트를 완료해야 하는 엔티티입니다. 일반적으로 사람을 프로젝트의 리소스라고 합니다. 다음은 프로젝트에 리소스를 생성하고 추가하는 단계입니다.
- Project 클래스를 사용하여 새 프로젝트를 생성하거나 .mpp 파일에서 로드합니다.
- Project->getResources()->Add(u"Rsc") 메서드를 사용하여 새 리소스를 추가합니다.
- Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP) 메서드를 사용하여 프로젝트를 저장합니다.
다음 코드 샘플은 C++를 사용하여 프로젝트에 리소스를 추가하는 방법을 보여줍니다.
// 프로젝트 인스턴스 생성
System::SharedPtr<Project> project = System::MakeObject<Project>();
// 리소스 추가
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");
// 리소스 속성 설정, 리소스 속성은 정적 클래스 Rsc로 표시됩니다.
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));
// 프로젝트를 XML로 저장
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
리소스와 관련된 확장 기능에 대해 자세히 읽어보기
C++를 사용하여 리소스에 프로젝트 작업 할당
작업과 리소스를 생성했으면 다음 단계는 각 작업을 완료를 담당하는 리소스에 할당하는 것입니다. 다음은 리소스에 작업을 할당하는 단계입니다.
- Project 클래스를 사용하여 새 프로젝트를 생성하거나 .mpp 파일에서 로드합니다.
- 프로젝트가 비어 있는 경우 새 작업과 리소스를 추가합니다.
- Task 및 Resource 개체에 원하는 작업과 리소스에 각각 액세스합니다.
- Project->getResourceAssignments()->Add(Task, Resource) 메서드를 사용하여 리소스에 작업을 할당합니다.
- Project.Save() 메서드를 사용하여 프로젝트를 저장합니다.
다음 코드 샘플은 C++를 사용하여 프로젝트의 리소스에 작업을 할당하는 방법을 보여줍니다.
// 빈 프로젝트 만들기
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
// 새 작업 및 리소스 추가
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");
// 리소스에 원하는 작업 할당
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);
C++를 사용하여 프로젝트에 캘린더 추가
캘린더는 MS 프로젝트 내에서 프로젝트의 일정을 만드는 데 사용됩니다. Aspose.Tasks for C++를 사용하면 프로젝트 일정을 매우 간단하게 만들 수 있습니다. 다음은 달력 생성, 요일 추가, 작업 시간 지정 단계입니다.
- Project 클래스를 사용하여 새 프로젝트를 생성하거나 .mpp 파일에서 로드합니다.
- Project->getCalendars()->Add(u"Calendar1")를 사용하여 프로젝트에 달력을 추가하고 반환된 값을 Calendar 객체에 저장합니다.
- Calendar->getWeekDays()->Add() 메서드를 사용하여 달력에 근무일을 추가합니다.
- 프로젝트를 저장합니다.
달력에서 요일의 근무 시간을 설정할 수도 있습니다. 이를 위해 근무일을 추가한 후 아래 단계를 수행할 수 있습니다.
- WeekDay 클래스의 객체를 생성합니다.
- WorkingTime 클래스의 객체를 생성합니다.
- WorkingTime->setFromTime() 및 WorkingTime->setToTime() 메서드를 사용하여 타이밍을 설정합니다.
- WeekDay->getWorkingTimes()->Add(WorkingTime) 메소드를 사용하여 평일에 근무시간을 추가합니다.
- Calendar->getWeekDays()->Add(WeekDay) 메소드를 사용하여 달력에 요일을 추가합니다.
- 프로젝트를 저장합니다.
다음 코드 샘플은 C++를 사용하여 프로젝트에서 달력을 만드는 방법을 보여줍니다.
// 프로젝트 인스턴스 만들기
System::SharedPtr<Project> project = System::MakeObject<Project>();
// 달력 정의
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");
// 기본 타이밍으로 월요일부터 목요일까지 근무일 추가
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));
// 금요일을 짧은 근무일로 설정
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);
// 작업 시간을 설정합니다. DateTime의 시간 부분만 중요합니다.
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);
// 프로젝트 저장
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);
캘린더와 관련된 확장 기능에 대해 자세히 알아보기
결론
이 기사에서는 MS 프로젝트 파일을 만들고 C++를 사용하여 .mpp 또는 .xml로 저장하는 방법을 배웠습니다. 또한 프로그래밍 방식으로 프로젝트 내에서 작업, 리소스, 리소스 할당 및 일정을 추가하는 방법을 배웠습니다. 또한 C++용 Aspose.Tasks의 확장 기능에 대한 문서를 탐색하여 애플리케이션 내에서 프로젝트 관리 기능을 더욱 향상시킬 수 있습니다.