작업 다루기
Contents
[
Hide
Show
]때때로 작업을 예정대로 완료할 수 없어서 두 개 이상의 부분으로 분할해야 할 때가 있습니다. Microsoft Project는 작업 분할을 지원하며 Aspose.Tasks for .NET은 동일한 기능을 프로그래밍 방식으로 제공합니다.
작업 분할
해당 SplitParts 속성은 Task 클래스에서 작업의 분할 부분을 결정하는 데 사용되는 반면, SplitTask 메서드는 ResourceAssignment 클래스는 단일 작업을 여러 부분으로 분할하는 데 사용됩니다. SplitParts는 분할 부분의 컬렉션을 반환하는 반면 SplitTask 메서드는 작업을 분할하기 위해 시작 날짜, 완료 날짜 및 캘린더 인수를 받습니다.
Microsoft Project에서의 작업 분할 및 보기
Microsoft Project에서 작업을 다음과 같이 분할할 수 있습니다:
- 나누고자 하는 긴 작업을 선택합니다.
- Task 탭의 Schedule 그룹에서 Split Task.
- 분할이 발생하기를 원하는 작업 표시줄의 지점을 클릭합니다.
분할된 작업은 Gantt Chart 보기에서 표시되며 점선으로 연결됩니다.
예제: 작업 생성 및 분할
다음 예제에서는 프로젝트를 생성하고 작업을 추가하고 리소스를 할당한 다음 프로그램적으로 작업을 분할하는 방법을 보여줍니다:
1// Create new project
2Project splitTaskProject = new Project();
3
4// Get a standard calendar
5Calendar calendar = splitTaskProject.Get(Prj.Calendar);
6
7// Set project's calendar settings
8splitTaskProject.Set(Prj.StartDate, new DateTime(2000, 3, 15, 8, 0, 0));
9splitTaskProject.Set(Prj.FinishDate, new DateTime(2000, 4, 21, 17, 0, 0));
10
11// Add a new task to root task
12Task rootTask = splitTaskProject.RootTask;
13rootTask.Set(Tsk.Name, "Root");
14Task taskToSplit = rootTask.Children.Add("Task1");
15taskToSplit.Set(Tsk.Duration, splitTaskProject.GetDuration(3));
16
17// Create a new resource assignment and generate timephased data
18ResourceAssignment splitResourceAssignment = splitTaskProject.ResourceAssignments.Add(taskToSplit, null);
19splitResourceAssignment.TimephasedDataFromTaskDuration(calendar);
20
21// Split the task into 3 parts.
22// Provide start date and finish date arguments to SplitTask method which will be used for split
23splitResourceAssignment.SplitTask(new DateTime(2000, 3, 16, 8, 0, 0), new DateTime(2000, 3, 16, 17, 0, 0), calendar);
24splitResourceAssignment.SplitTask(new DateTime(2000, 3, 18, 8, 0, 0), new DateTime(2000, 3, 18, 17, 0, 0), calendar);
25splitResourceAssignment.Set(Asn.WorkContour, WorkContourType.Contoured);
26
27splitTaskProject.Save("CreateSplitTasks_out.xml", SaveFileFormat.XML);
예제: 분할된 작업 보기
다음 예제는 프로젝트에서 분할된 작업을 식별하고 그 세부 정보를 콘솔에 출력하는 방법을 보여줍니다:
1Project project = new Project("New Project.mpp");
2
3// Access task
4Task splitTask = project.RootTask.Children.GetById(4);
5
6// Display split parts of task
7SplitPartCollection collection = splitTask.SplitParts;
8foreach (SplitPart splitPart in collection)
9{
10 Console.WriteLine("Index: " + splitPart.Index + " Start: " + splitPart.Start + " Finish: " + splitPart.Finish);
11}
주요 참고 사항
- 작업 분할은 프로젝트 일정에서 실제 중단을 모델링하는 데 도움이 됩니다.
- 해당
SplitTask
메서드는 작업을 삭제하지 않으며 대신 기존 작업을 별도의 구간으로 재분배합니다. - 해당
SplitParts
속성은 개발자가 각 세그먼트를 개별적으로 분석하고 처리할 수 있게 합니다. - 다음과 같이 MPP 및 XML 프로젝트 형식 모두에서 일관되게 작동합니다.
자주 묻는 질문
질문: 작업이 두 번 이상 분할될 수 있나요?
- 예. 작업은 여러 구간으로 나눌 수 있습니다.
질문: 분할이 작업 기간에 영향을 주나요?
- 분할 구간의 배치에 따라 전체 기간은 변경될 수 있지만 전체 작업량은 변하지 않습니다.
질문: 분할된 작업을 다시 병합할 수 있나요?
- Microsoft Project에서는 막대를 수동으로 조정하여 분할을 제거할 수 있습니다. Aspose.Tasks에서는 작업 할당을 재설정하거나 작업을 다시 생성하여 이를 관리할 수 있습니다.
질문: 이 기능이 반복 작업에 대해 지원되나요?
- 아니요. 분할은 반복 작업 정의가 아닌 일반 작업을 위해 설계되었습니다.