このトピックでは、プロジェクトに使用可能なリソースを作成し、 xamGantt™ コントロールを使用してプロジェクトのタスクに割り当てる方法を説明します。
このトピックを理解するためには、以下のトピックを理解しておく必要があります。
このトピックには次のセクションがあります。
以下の表は xamGantt コントロールのリソースに関係する構成可能な項目をリストします。追加の詳細情報はこのトピックの後で説明します。
xamGantt コントロールでリソースを作成してプロジェクトのリソース コレクションに追加できます。その後でリソースを使用可能なプロジェクトのリソースからタスクに割り当てる、またはユーザー インターフェイスを介して新しいリソースを作成できます。
以下の表では、例の構成をプロパティ設定にマップしています。
以下の例のコードは、 xamGantt UI を介してリソースを作成して、プロジェクトの使用可能なリソース コレクションに追加し、新しいリソースの追加を無効にする方法を示します。
スクリーンショットは、ユーザーが新しい非認識リソースをタスクに割り当てようとする時に表示するエラーのヒントを示します。
C# の場合:
ProjectSettings settings = new ProjectSettings();
// xamGantt UI と
// ProjectTask ResourcesText プロパティによってリソースの追加を無効にする
settings.AutoAddNewResources = false;
this.gantt.Project.Settings = settings;
// 表示名と一意の ID を使用して ProjectResource を作成する
ProjectResource projectResource = new ProjectResource();
projectResource.DisplayName = "John Smith";
projectResource.UniqueId = "dev-jsmith-45673";
// 作成されたリソースをプロジェクト ResourceItems コレクションに追加する
this.gantt.Project.ResourceItems.Add(projectResource);
Visual Basic の場合:
Dim settings As New ProjectSettings()
' xamGantt UI と ProjectTask ResourcesText プロパティによってリソースの追加を無効にする
settings.AutoAddNewResources = False
Me.gantt.Project.Settings = settings
' 表示名と一意の ID を使用して ProjectResource を作成する
Dim projectResource As New ProjectResource()
projectResource.DisplayName = "John Smith"
projectResource.UniqueId = "dev-jsmith-45673"
' 作成されたリソースをプロジェクト ResourceItems コレクションに追加する
Me.gantt.Project.ResourceItems.Add(projectResource)
xamGantt コントロールを使用してリソースを作成し、それらのリソースをタスクに割り当てることができます。必要な数だけリソースを追加できますが、同じタスクに複数回同じリソースを追加できません。
以下の表では、目的の構成をプロパティ設定にマップしています。
以下の例は、Button Click イベントでリソースを現在アクティブなタスクに割り当てる方法を示します。さらに、リソースを複数回タスクに割り当てようとした結果表示するエラー ダイアログ ボックスを示します。
C# の場合:
private void Btn_AddResource_Click(object sender, RoutedEventArgs e)
{
// 指定した一意の ID で使用可能なプロジェクト リソースの ProjectTaskResource を作成する
ProjectTaskResource taskResource = new ProjectTaskResource("dev-jsmith-45673");
try
{
// リソースをタスクに割り当てる
this.gantt.ActiveRow.Value.Task.Resources.Add(taskResource);
}
catch (Exception exc)
{
// 例外が発生する場合にメッセージを表示する
MessageBox.Show(exc.Message);
}
}
Visual Basic の場合:
Private Sub Btn_AddResource_Click(sender As Object, e As RoutedEventArgs)
' 指定した一意の ID で使用可能なプロジェクト リソースの ProjectTaskResource を作成する
Dim taskResource As New ProjectTaskResource("dev-jsmith-45673")
Try
' リソースをタスクに割り当てる
Me.gantt.ActiveRow.Value.Task.Resources.Add(taskResource)
Catch exc As Exception
' 例外が発生する場合にメッセージを表示する
MessageBox.Show(exc.Message)
End Try
End Sub
この例は、プロジェクトの使用可能なリソースの一部として含まれない非認識リソースをユーザーが入力しようとするイベントでエラー処理を示します。
Project MissingResourceWarning イベントを使用してこのエラーを処理するために処理します。
以下の例は非認識リソース エラー イベントの追加を処理する方法を示します:
C# の場合:
…
this.gantt.Project.MissingResourceWarning +=
new EventHandler<MissingResourceWarningEventArgs>(Project_MissingResourceWarning);
…
C# の場合:
private void Project_MissingResourceWarning(object sender, MissingResourceWarningEventArgs e)
{
// 例外が発生する場合にメッセージを表示する
MessageBox.Show(string.Format("The {0} resource is an unrecognized resource.", e.ResourceName));
}
Visual Basic の場合:
…
Me.gantt.Project.MissingResourceWarning = New EventHandler(Of MissingResourceWarningEventArgs)(Project_MissingResourceWarning)
…
Visual Basic の場合:
Private Sub Project_MissingResourceWarning(sender As Object, e As MissingResourceWarningEventArgs)
' 例外が発生する場合にメッセージを表示する
MessageBox.Show(String.Format("The {0} resource is an unrecognized resource.", e.ResourceName))
End Sub
このトピックについては、以下のトピックも参照してください。