リソースを作成し、タスクにリンクします
MPPファイルを使用している間、リソースを作成し、プロジェクトのタスクにリンクする必要がある場合があります。この記事では、 VSTOおよび Aspose.Tasks for .NETを使用して、プロジェクトからのタスクへのリソースを作成し、リソースを作成し、リソースを作成する方法についてのアイデアを示します。
リソースを作成し、VSTOを使用してタスクにリンクします
このタスクを達成するには、次の手順が必要です。
Visual Studioで新しいプロジェクトを作成します。
ソリューションエクスプローラーで、右クリックして[参照を追加]を選択し、 comコンポーネント**タブを選択します。
Microsoft Project 12.0オブジェクトライブラリを選択し、[OK]をクリックします。
This imports the Microsoft.Office.Interop.MSProject namespace at the start of the code.
次の例からコードを使用して、タスクとリソースを読み取ります。
次のコードスニペットであるSampleProject.mppで使用されるサンプルプロジェクトファイルは、このページの添付ファイルからダウンロードできます。リソースが作成され、タスクにリンクされる前に、Project1.mppファイルは以下のように見えます。
入力ファイル:ガントチャートビュー
入力ファイル:リソースシートビュー
処理後、ファイルは更新されます。
出力ファイル:ガントチャートビュー
出力ファイル:リソースシートビュー
1Microsoft.Office.Interop.MSProject.Application projectApplication = new Application();
2
3object missingValue = System.Reflection.Missing.Value;
4
5projectApplication.FileOpenEx(@"SampleProject.mpp",
6
7 missingValue, missingValue, missingValue, missingValue,
8
9 missingValue, missingValue, missingValue, missingValue,
10
11 missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
12
13 missingValue, missingValue, missingValue, missingValue,
14
15 missingValue);
16
17Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
18
19int iResourceId = 1;
20
21foreach (Task tsk in project.Tasks)
22
23{
24
25 string developer = "Developer0" + iResourceId;
26
27 project.Resources.Add(developer, iResourceId);
28
29 tsk.Assignments.Add(tsk.ID, iResourceId, missingValue);
30
31 iResourceId++;
32
33}
34
35projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);
Create Resources and Link to Tasks using Aspose.Tasks for .NET
The following steps are required to accomplish this task:
Create a new project in Visual Studio.
In the Solution Explorer, right-click and select Add Reference, then select the .NET tab.
Select Aspose.Tasks and then click OK.
This imports the Aspose.Tasks namespace at the start of the code.
Use the code from the following example to create resources and link them to tasks.
1Project project = new Project("New Project.mpp");
2
3// Declare ChildTasksCollector class object
4ChildTasksCollector collector = new ChildTasksCollector();
5
6// Use TaskUtils to get all children tasks in RootTask
7TaskUtils.Apply(project.RootTask, collector, 0);
8
9// Define Resources
10for (int i = 0; i <= 4; i++)
11{
12 // Add resource to project
13 Resource newResource = project.Resources.Add("Developer0" + i);
14 newResource.Set(Rsc.Type, ResourceType.Work);
15
16 // Define assignment
17 ResourceAssignment newResourceAssignment = project.ResourceAssignments.Add((Task)collector.Tasks[i], newResource);
18}
19
20project.Save("CreateResourcesAndLinkToTasks_out.mpp", SaveFileFormat.MPP);