VSTO 및 Aspose.Tasks에서 리소스와 링크를 작성하십시오
코드 예제
vsto
이 작업을 수행하려면 다음 단계가 필요합니다.
Visual Studio에서 새로운 프로젝트를 만듭니다.
솔루션 탐색기에서 마우스 오른쪽 버튼을 클릭하고 참조 추가를 선택한 다음 COM 구성 요소 탭을 선택하십시오.
Microsoft Project 12.0 객체 라이브러리를 선택하고 확인을 클릭하십시오. 코드 시작시 Microsoft.office.interop.msproject 네임 스페이스를 가져옵니다. 다음 예제에서 코드를 사용하여 작업 및 리소스를 읽습니다.
1// 응용 프로그램 객체를 만듭니다
2
3Microsoft.office.interop.msproject.application projectApplication = new MSProject.Application ();
4
5오브젝트 MissingValue = System.Reflection.Missing.Value;
6
7// MPP 파일을 엽니 다
8
9projectApplication.fileopenex ( "project1.mpp",
10
11 missingValue, missingValue, missingValue, missingValue,
12
13 missingValue, missingValue, missingValue, missingValue,
14
15 missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
16
17 missingValue, missingValue, missingValue, missingValue,
18
19 missingValue);
20
21Microsoft.office.interop.msproject.project project = projectApplication.ActiveProject;
22
23int iresourceid = 1;
24
25foreach (task tsk in project.tasks)
26
27{
28
29 string developer = "Developer0" + iResourceId;
30
31 project.Resources.Add(developer, iResourceId);
32
33 tsk.Assignments.Add(tsk.ID, iResourceId, missingValue);
34
35 iResourceId++;
36
37}
38
39projectApplication.fileCloseall (Microsoft.Office.interop.msproject.pjsavetype.pjsave);
이 C# 코드는 Microsoft Project Interop API를 사용하여 기존 Microsoft Project 파일 (Project1.MPP)을 열고 프로그래밍 방식으로 리소스를 추가하며 해당 리소스를 작업에 할당합니다. 또한이 예제는 Interop을 사용하여 .MPP 파일의 작업에 리소스를 동적으로 생성하고 할당하는 방법을 보여 주며 각 작업은 전용 개발자를 수신하는 시나리오를 시뮬레이션합니다. 이 접근법은 Microsoft 프로젝트를 시스템에 설치해야합니다.
Aspose.Tasks
이 작업을 수행하려면 다음 단계가 필요합니다.
Visual Studio에서 새로운 프로젝트를 만듭니다.
솔루션 탐색기에서 마우스 오른쪽 버튼을 클릭하고 참조 추가를 선택한 다음 .NET 탭을 선택하십시오.
Aspose.Tasks를 선택한 다음 확인을 클릭하십시오. 코드가 시작될 때 Aspose.Tasks 네임 스페이스를 가져옵니다. 다음 예제에서 코드를 사용하여 리소스를 생성하고 작업에 연결합니다.
1Project PRJ = 새로운 프로젝트 ( "Project.MPP");
2
3// childtaskscollector class 객체를 선언합니다
4
5ChildTaskScollector Collector = New ChildTaskScollector ();
6
7// TaskUtils를 사용하여 Roottask에서 모든 어린이 작업을받습니다.
8
9taskUtils.Apply (prj.RootTask, Collector, 0);
10
11// 리소스 정의
12
13ArrayList Resources = New ArrayList ();
14
15for (int i = 1; i <= 5; i ++)
16
17{
18
19 string developer = "Developer0" + i;
20
21 // Create resource
22
23 Resource rec = new Resource(developer);
24
25 rec.Type = ResourceType.Work;
26
27 // Add resource to project
28
29 prj.Resources.Add(rec);
30
31 // define assignment
32
33 ResourceAssignment assignment = new ResourceAssignment((Aspose.Tasks.Task)collector.Tasks[i], rec);
34
35 prj.ResourceAssignments.Add(assignment);
36
37}
38
39prj.calcresourceuids ();
40
41prj.calcresourceids ();
42
43prj.calcresourcefields ();
44
45prj.calcresourceassignmentuids ();
46
47prj.calcresourceassignmentids ();
48
49prj.save ( "project1_csharp_aspose.mpp", Aspose.Tasks.saving.savefileformat.mpp);
이 C# 코드는 .NET 을위한 Aspose.Tasks를 사용하는 방법을 보여주기 위해 Microsoft 프로젝트 (.mpp
) 파일의 작업에 프로그램에 할당하는 방법을 보여줍니다. 기존 프로젝트를로드하고taskUtils.apply
를 사용하여 루트 작업에서 ‘childtaskscollector’객체로 모든 자식 작업을 수집합니다. 그런 다음 “Developer01"이라는 5 가지 작업 리소스 목록을 작성하여 “Developer05"를 통해 각각을 프로젝트에 추가합니다. 각 리소스에 대해 수집 된 목록에서 특정 작업에 연결하여 해당 ‘ResourceAssignment’를 생성합니다. 모든 과제가 추가 된 후 프로젝트 구조 내에서 리소스 ID 및 UID의 내부 일관성을 보장하기 위해 몇 가지 계산 방법이 호출됩니다. 마지막으로 업데이트 된 프로젝트는 새로운.mpp
파일로 저장됩니다.