C++에서 MS 프로젝트 파일 생성

MS 프로젝트는 관리자가 프로젝트를 효율적으로 관리하는 데 도움이 되는 널리 사용되는 프로젝트 관리 소프트웨어입니다. 작업을 생성하고, 리소스를 추가하고, 리소스에 작업을 할당하고, 진행 상황을 모니터링하고, 예산 관련 작업을 관리할 수 있습니다. 이 기사에서는 MS Project 없이 C++ 애플리케이션에 프로젝트 관리 활동을 포함하는 방법을 배웁니다. 코드 샘플을 사용하여 C++를 사용하여 프로그래밍 방식으로 MS 프로젝트 파일(.mpp/.xml)을 만들고 작업, 리소스 및 일정을 추가하는 방법을 배우게 됩니다. 또한 프로젝트의 리소스에 대한 작업 할당도 시연됩니다.

C++ MS 프로젝트 파일 조작 API

Aspose.Tasks for C++는 프로그래밍 방식으로 MS 프로젝트 파일을 생성, 조작, 내보내기 및 변환할 수 있는 C++ 프로젝트 관리 API입니다. API는 MS Project 없이 프로젝트, 작업, 리소스, 일정을 만들고 기타 프로젝트 관리 활동을 수행할 수 있는 완전한 기능 세트를 제공합니다. API의 전체 패키지는 여기에서 다운로드하거나 NuGet을 사용하여 설치할 수 있습니다.

C++를 사용하여 MS 프로젝트 파일(.mpp) 생성

먼저 빈 프로젝트를 생성하여 시작하겠습니다. 다음은 Aspose.Tasks for C++를 사용하여 처음부터 MS 프로젝트(.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 프로젝트 파일을 로드하여 작업을 추가할 수 있습니다. 다음은 작업 또는 하위 작업을 만들고 프로젝트에 추가하는 단계입니다.

다음 코드 샘플은 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++를 사용하여 프로젝트에 리소스 추가

자원은 프로젝트를 완료해야 하는 엔티티입니다. 일반적으로 사람을 프로젝트의 리소스라고 합니다. 다음은 프로젝트에 리소스를 생성하고 추가하는 단계입니다.

다음 코드 샘플은 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 파일에서 로드합니다.
  • 프로젝트가 비어 있는 경우 새 작업과 리소스를 추가합니다.
  • TaskResource 개체에 원하는 작업과 리소스에 각각 액세스합니다.
  • 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++를 사용하면 프로젝트 일정을 매우 간단하게 만들 수 있습니다. 다음은 달력 생성, 요일 추가, 작업 시간 지정 단계입니다.

달력에서 요일의 근무 시간을 설정할 수도 있습니다. 이를 위해 근무일을 추가한 후 아래 단계를 수행할 수 있습니다.

다음 코드 샘플은 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의 확장 기능에 대한 문서를 탐색하여 애플리케이션 내에서 프로젝트 관리 기능을 더욱 향상시킬 수 있습니다.

또한보십시오