このトピックは、WinGanttView™ コントロールのカスタム列のサポートを概略し、使用シナリオを説明するコード例を提供します。
トピックは以下のとおりです。
WinGanttView コントロールは Microsoft® Project™ のデフォルトを複製する標準的な列セット (TaskFields) をサポートします。これらのデフォルト列に加えて、コントロールは、WinGanttView に表示するように自身のプロジェクト固有のデータ フィールドをカスタマイズできるカスタム列もサポートします。
カスタム列を WinGanttView に追加するには、WinCalendarInfo コンポーネントの * CustomTaskColumns* プロパティにある * Add* メソッドを使用します。WinGanttView の構成と使用の詳細については、 「WinGanttView の使用」に含まれるトピックを参照してください。
図 1: サンプルのブラウザーからの WinGanttView カスタム列のサンプル
以下の表は、WinCalendarInfo コンポーネントの CustomTaskColumns プロパティにある Add メソッドのために使用可能なオーバーロードをリストします。
以下のコードは、 Infragistics サンプル ブラウザーにある WinGanttView カスタム列のサンプルからのコードで、WinCalendarInfo コンポーネント インスタンスを使用してカスタム列を WinGanttView に追加します。コード リストに取り上げられた例はデータソースから保持されない文字列型の 3 つの列を作成します。このコードで作成されたカスタム列のプレビューについては、図 1 を参照してください。
C# の場合:
//カスタム列の追加 calendarInfoShipping.CustomTaskColumns.Add("Truck", typeof(String), false, "Truck 123"); calendarInfoShipping.CustomTaskColumns.Add("Weight", typeof(String), false, "13000"); calendarInfoShipping.CustomTaskColumns.Add("Door", typeof(String), false, "Door 123");
Visual Basic の場合:
'カスタム列の追加 calendarInfoShipping.CustomTaskColumns.Add("Truck", GetType([String]), False, "Truck 123") calendarInfoShipping.CustomTaskColumns.Add("Weight", GetType([String]), False, "13000") calendarInfoShipping.CustomTaskColumns.Add("Door", GetType([String]), False, "Door 123")
カスタム列内でセル値を取得または設定するには、関連付けられたタスクにある * GetCustomProperty* メソッドと * SetCustomProperty* メソッドを使用します。
以下のコードは、最初の WinGanttView タスク内の Truck という名前のカスタム列のセル値を “Big Truck 113” に設定することで開始します。これで値が取得されて、セル値のデータ タイプにキャストされ、truckName という名前の文字列変数に配置されます。
C# の場合:
// カスタム列にプロパティを設定します ganttViewShipping.CalendarInfo.Tasks[0].SetCustomProperty("Truck", "Big Truck 113"); // カスタム列からプロパティを取得します // GetCustomProperty はオブジェクトを返すため、適切なデータ型にキャストされます String truckName = (String)ganttViewShipping.CalendarInfo.Tasks[0].GetCustomProperty("Truck");
Visual Basic の場合:
' カスタム列にプロパティを設定します ganttViewShipping.CalendarInfo.Tasks(0).SetCustomProperty("Truck", "Big Truck 113") ' カスタム列からプロパティを取得します ' GetCustomProperty はオブジェクトを返すため、適切なデータ型にキャストされます Dim truckName As [String] = DirectCast(ganttViewShipping.CalendarInfo.Tasks(0).GetCustomProperty("Truck"), [String])