バージョン

プロジェクト リソースの管理

トピックの概要

目的

このトピックでは、プロジェクトに使用可能なリソースを作成し、 xamGantt™ コントロールを使用してプロジェクトのタスクに割り当てる方法を説明します。

前提条件

このトピックを理解するためには、以下のトピックを理解しておく必要があります。

トピック 目的

このトピックでは、 xamGantt コントロールをページに追加する方法について説明します。

リソース構成の概要

リソース構成の概要表

以下の表は xamGantt コントロールのリソースに関係する構成可能な項目をリストします。追加の詳細情報はこのトピックの後で説明します。

構成可能な項目 説明 プロパティ

リソースを作成してプロジェクトに追加する

ProjectResource オブジェクトを初期化して Project ResourceItems コレクションに追加します。

リソースをタスクに割り当てる

必須パラメーターとしてリソース一意の ID を持つ ProjectTaskResource オブジェクトを初期化して ProjectTask Resources コレクションに追加します。

Add メソッドで、必要とされるリソース単位を指定します。

xamGantt コントロールのユーザー インターフェイスによってリソースを追加するかどうかを構成すると、プロジェクトに新しいリソースを自動的に作成します。

非認識リソース名を ProjectTask ResourcesText に入力した場合に、新しい ProjectResourceProject ResourceItems コレクションに追加されるかどうかを示すブール値を返すか、設定します。

Enabled がこの操作のデフォルトの設定です。

プロジェクトのリソース コレクションを作成

概要

xamGantt コントロールでリソースを作成してプロジェクトのリソース コレクションに追加できます。その後でリソースを使用可能なプロジェクトのリソースからタスクに割り当てる、またはユーザー インターフェイスを介して新しいリソースを作成できます。

プロパティ設定

以下の表では、例の構成をプロパティ設定にマップしています。

目的: 使用するプロパティ: 次に設定:

xamGantt UI を介して新しいリソースの追加を有効/無効にする

bool

リソースの表示名を設定する

string

リソースの一意の ID を設定する

string

プロジェクトのリソース コレクションを作成

以下の例のコードは、 xamGantt UI を介してリソースを作成して、プロジェクトの使用可能なリソース コレクションに追加し、新しいリソースの追加を無効にする方法を示します。

スクリーンショットは、ユーザーが新しい非認識リソースをタスクに割り当てようとする時に表示するエラーのヒントを示します。

Creating Project Resources 1.png

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 コントロールを使用してリソースを作成し、それらのリソースをタスクに割り当てることができます。必要な数だけリソースを追加できますが、同じタスクに複数回同じリソースを追加できません。

プロパティ設定

以下の表では、目的の構成をプロパティ設定にマップしています。

目的: 使用するプロパティ: 次に設定:

ProjectTaskResource をタスクに割り当てる

以下の例は、Button Click イベントでリソースを現在アクティブなタスクに割り当てる方法を示します。さらに、リソースを複数回タスクに割り当てようとした結果表示するエラー ダイアログ ボックスを示します。

Creating Project Resources 2.png

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 イベントを使用してこのエラーを処理するために処理します。

イベントの設定

目的: このイベントの使用:

構成によって禁止されている時 (AutoAddNewResources プロパティが False に設定されている) 場合、 xamGantt UI で非認識リソース文字列の入力を処理します。

以下の例は非認識リソース エラー イベントの追加を処理する方法を示します:

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

関連コンテンツ

このトピックについては、以下のトピックも参照してください。

トピック 目的

このトピックでは、カスタム リソース クラスを作成して xamGantt と使用する方法を紹介します。