작업 캘린더로 작업합니다

Microsoft Project에서 일정을 특정 작업과 연결할 수 있습니다. ASPOSE.TASK는이 기능을 지원합니다.

달력이있는 작업

TSK 클래스는 작업과 관련된 캘린더를 설정하거나 얻는 데 사용되는 캘린더 필드를 노출시킵니다. 이 속성은 Aspose.Tasks .calendar 객체를 수락하거나 반환합니다.

Microsoft Project에서 작업을위한 캘린더를 작성하려면 :

  1. Microsoft Project에서 프로젝트를 시작하십시오.
  2. 프로젝트 메뉴에서 작업 시간 변경을 선택한 다음 새 캘린더를 만듭니다.
  3. 캘린더를 작업에 할당하려면 작업 입력 양식에서 작업을 두 번 클릭하십시오.
  4. 고급 탭을 선택하십시오.

작업 캘린더 설정

표준 캘린더를 만들고 작업을 만듭니다. 캘린더를 작업에 할당하십시오.

1// Create project instance
2System::SharedPtr<Project> project = System::MakeObject<Project>();
3    
4// Add task
5System::SharedPtr<Task> tsk1 = project->get_RootTask()->get_Children()->Add(u"Task1");
6    
7// Create calendar and assign to task
8System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"TaskCal1");
9tsk1->Set<System::SharedPtr<Calendar>>(Tsk::Calendar(), cal);

Getting Task Calendar

Get task calendar by traversing the tasks in a project.

 1// The path to the documents directory.
 2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
 3    
 4// Create project instance
 5System::SharedPtr<Project> prj = System::MakeObject<Project>(dataDir + u"ReadTaskCalendar.mpp");
 6    
 7// Declare ChildTasksCollector class object
 8System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
 9    
10// Use TaskUtils to get all children tasks in RootTask
11TaskUtils::Apply(prj->get_RootTask(), collector, 0);
12    
13// Parse all the recursive children
14    
15{
16    auto tsk_enumerator = (collector->get_Tasks())->GetEnumerator();
17    decltype(tsk_enumerator->get_Current()) tsk;
18    while (tsk_enumerator->MoveNext() && (tsk = tsk_enumerator->get_Current(), true))
19    {
20        System::SharedPtr<Calendar> tskCal = tsk->Get<System::SharedPtr<Calendar>>(Tsk::Calendar());
21        System::Console::WriteLine(u"Task calendar name: {0}", System::ObjectExt::Box<System::String>(tskCal == nullptr ? u"None" : tskCal->get_Name()));
22    }
23}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.