リソースを作成し、タスクにリンクします

MPPファイルを使用している間、リソースを作成し、プロジェクトのタスクにリンクする必要がある場合があります。この記事では、.NETアプリケーションにMPPファイルをロードし、 VSTOASOPSE.TASKS for .NETの両方を使用してタスクにリソースを割り当てる方法を示します。

導入

プロジェクトのスケジューリングでは、リソースをタスクに関連付けることで、ワークロードの計画、コストの見積もり、および進捗追跡が可能になります。リソースは通常、人、機器、または材料を表し、それらの適切な割り当ては意味のあるプロジェクト分析の鍵です。

この記事は、プログラム的にする方法を示しています:

この機能は、.NET APIのLegacy VSTO Interopと最新のAspose.tasksの両方を使用して実証されています。

リソースを作成し、VSTOを使用してタスクにリンクします

リソースを作成し、Microsoft Office Interopを使用してタスクにリンクするには:

  1. ビジュアルスタジオプロジェクトを作成します。
  2. comタブからMicrosoft Project 12.0オブジェクトライブラリへの参照を追加します。
  3. microsoft.office.interop.msprojectをインポートします。
  4. 以下のコードサンプルを使用してください。

スクリーンショットの前後に、ガントのプロジェクト構造とリソースビューが表示されます。

📎入力ファイル:ガントチャートビュー

入力ガントチャートビューを表示します

📎入力ファイル:リソースシートビュー

入力リソースシートビューを表示します

VSTOコードの例

 1    Microsoft.Office.Interop.MSProject.Application projectApplication = new Application();
 2    object missingValue = System.Reflection.Missing.Value;
 3
 4    projectApplication.FileOpenEx(@"SampleProject.mpp",
 5        missingValue, missingValue, missingValue, missingValue,
 6        missingValue, missingValue, missingValue, missingValue,
 7        missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
 8        missingValue, missingValue, missingValue, missingValue,
 9        missingValue);
10
11    Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
12
13    int iResourceId = 1;
14
15    foreach (Task tsk in project.Tasks)
16    {
17        string developer = "Developer0" + iResourceId;
18        project.Resources.Add(developer, iResourceId);
19        tsk.Assignments.Add(tsk.ID, iResourceId, missingValue);
20        iResourceId++;
21    }
22
23    projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);

Output file: Gantt chart view

show output Gantt chart view

Output file: Resource sheet view

show output resource sheet chart view

注記

Aspose.Tasks for .NET を使用してリソースを作成し、タスクにリンクする

Aspose.Tasks を使用して同じことを行うには、次の手順を実行します。

  1. Visual Studio プロジェクトを作成します。
  2. .NET タブで Aspose.Tasks への参照を追加します。
  3. Aspose.Tasks 名前空間をインポートします。
  4. 以下のサンプルコードを使用します。
 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);

ハイライト

比較表

機能VSTO / 相互運用性Aspose.Tasks for .NET
Microsoft Project が必要✅ はい❌ いいえ
プラットフォームサポート🖥 Windows のみ✅ クロスプラットフォーム
導入しやすい❌ Office ランタイムが必要✅ .NET で完結
API の冗長性⚠ 高✅ 最小限で直感的
割り当て方法Assignments.Add(taskID, resourceID)ResourceAssignments.Add(task, res)
出力ファイル形式の柔軟性限定的✅ MPP、XML、PDF、HTML など

概要

リソースの作成と割り当ては、現実的で追跡可能なプロジェクト計画を作成する上で重要なステップです。VSTO は Microsoft Project のオブジェクト モデルへのネイティブ アクセスを提供しますが、移植性、拡張性、コードの複雑さの点で制限があります。

Aspose.Tasks for .NET は、Microsoft Project をインストールすることなく、MPP ファイルで効率的なリソース管理を可能にする高レベル API を提供します。そのため、Web アプリ、サービス、およびクロスプラットフォーム .NET ワークロードに最適なソリューションです。

関連するシナリオについては、以下をご覧ください。

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.