SATORU YAMAGUCHI (インフラジスティックス・ジャパン)
[2016-06-07]
プロジェクト管理や工程管理など、タスクの進捗やスケジュールを確認するためのガントビューは、業務アプリケーションでよくニーズとして挙がる要件の一つです。一般的に、タスクや進捗率や人のアサイン状況などを一覧上で表示するグリッド部分と、それらを視覚的にわかりやすく表示するチャート部分が左右に結合しそれぞれ同期的に動くのがガントビューの特長です。また、各タスクには親タスク/子タスク、先行タスク/後行タスクなど複雑な依存関係があり、それらをグリッドおよびチャート上で適切に表現する、または操作できるガントビューのような UI をスクラッチ開発により構築することは非常に難易度の高いものとなってしまいます。
Excel を使ったガントビューのイメージ
インフラジスティックスが提供する統合 UI 開発コンポーネント「Infragistics Ultimate」は、サードパーティーの画面部品スイートであり、さまざまな開発プラットフォームにおいて今回のガントビューのようなスクラッチ開発では実現の難しい、あるいはとても工数のかかってしまうようなユーザー インタフェースを手軽に実現できるようにする画面開発のためのツールセットです。
その中でも Windows フォーム開発で利用できる Ultimate UI for Windows Forms は、10 年以上進化を続け、提供コントロール数も 100 を超えており、また、Microsoft Office で提供されている UI パターンをコントロールとして提供しています。これらを活用することで、顧客のさまざまなニーズをアプリケーション上で簡単に実現することが可能となります。
Ultimate UI for Windows Forms の WinGanttView コントロール
スクラッチ開発では実現の難しい高機能なガントビューを実現するために Ultimate UI for Windows Forms では WinGanttView というコントロールを提供しています。以下に WinGanttView コントロールの利用補法や構成要素とそれぞれどのような事が実現できるのか簡単に紹介します。
WinGanttView の利用方法は大きく分けて 2 つあります。
「1」は、プログラムコードから WinGanttView が管理しているタスクに対して Add メソッドを利用して追加していく方法です。親タスクと子タスクを作成し、期限、マイルストーン、完了率、タスクの依存関係、制約などすべての情報をプロパティ ベースで一つずつ設定していきます。特にタスクの情報をデータベースで管理している訳ではなく 1件ずつコードで設定を行っていく必要があるような場合に有効な方法です。
「2」は、WinGanttView に対してデータセットをバインドしタスクを一括設定する方法で、事前にデータセットのどの列が GanttView 上のタスクのどの情報に対応するのかという Key 情報の割り当ての設定を行います。データベースで各タスクの情報が管理されているような場合や大量のタスクを設定する場合に有効です。
【実装方法・コードに関する詳細はこちらから】
GanttView 一覧表示部分
ガントビューの一覧表示部分では各タスクの親子関係を階層的に表現し、期間や進捗率、担当者や先行タスクとの依存関係の情報などをグリッド形式で表示し、グリッド上でタスクの追加・削除・編集を直観的な操作で自由に行うことができます。また、標準で用意されているこれらの列以外にも、カスタム列を定義することで各タスクに情報を付加していくことができます。
カスタム列の追加イメージ
WinGanttView の一覧表示部分では、内部的には Ultimate UI for Windows Forms の高機能グリッドコントロールである WinGrid が利用されているため、これをプログラム コード上で抽出することでソートなどの機能面から列の書式などデザイン面まで細かいカスタマイズを行っていくことができます。
【実装方法・コードに関する詳細はこちらから】
GanttView チャート表示部分
ガントビューのチャート表示部分では一覧表示部分の情報をより視覚的に表現します。各タスクの親子関係は親タスクのラインに包括される形でその下にラインが引かれ、先行タスク/後行タスクの関係性はタスク間が矢印コネクターで結ばれることで表現されます。また、タスクの進捗率はタスク内の塗りつぶしバーにより表現され、マイルストーンとして設定されているタスクは菱形のマーカーがプロットされることで表現されています。これによりユーザーはチャート部分を確認するだけで全体のスケジュールや現在の進捗を把握することができます。
チャート上部のタイムラインを表現する部分では曜日や時間の表示、そのインターバルなども細かく設定することができ、時/分単位など細かい時間単位でのタスク管理を行うこともできます。また、チャート表示部分ではユーザーのドラッグ アンド ドロップ操作に対応しており、各タスクの期間調整や移動、進捗率の調整などがチャート上で行えるようになっています。
ドラッグ アンド ドロップのイメージ
【実装方法・コードに関する詳細はこちらから】
GanttView チャート表示部分
各タスクの修正や追加は一覧表示部分により行うことができますが、列が多くなると編集するために横スクロールをしていかなければならず、ユーザーにとって入力しづらいものとなってしまうため、一つのタスクに対して細かい入力や確認が必要な場合に有用なタスクの詳細ダイアログが用意されています。
このダイアログは UltraGanttView の機能の一つとして提供されているため、デフォルトの状態で利用することができますが、さらにダイアログ上に項目を追加拡張したり、あるいは自作のダイアログを利用することも可能です。
【実装方法・コードに関する詳細はこちらから】
Ultimate UI for Windows Forms では、WinGanttView に関連するコントロールとして WinGanttViewPrintDocument コントロールを提供しています。このコントロールは Windows フォーム アプリ上のガントビューを印刷するためのコントロールで、ユーザーに現在表示されているガントビューの印刷プレビューを提示し、細かい印刷の設定を行った後に直接印刷を行うことを可能にします。
また WinGanttViewPrintDocument の機能として、アプリ上のガントビューの画面表示に一切影響を与えることなく印刷されるビューにのみ (例えば、特定の列を非表示にするなど) カスタマイズを加えることが可能となります。プロジェクトや工程の進捗状況やスケジュールを印刷するニーズは多いですが、このコントロールを利用することで容易にそのニーズに応えることができます。
WinGanttViewPrintDocument を利用したガントビューの印刷
今回はプロジェクト管理や工程管理のニーズに答える UI コントロールをご紹介しましたが、Ultimate UI for Windows Forms で提供されているさまざまな画面部品を利用することで実装にかかる工数を抑えることはもちろん、ユーザビリティの高い画面を構築することができます。是非どのようなユーザー インタフェースが実現可能となるのか、その他の UI コントロールも含めて一度 Ultimate UI for Windows Forms をチェックしてみてはいかがでしょうか?
Ultimate UI for Windows Forms 製品概要
Ultimate UI for Windows Forms
5 回にわたり Infragistics 製品のコントロールを紹介させていただきましたが、いかがでしたでしょうか。提供されている機能の詳細や、○○の機能は提供されていますか?などのご質問がございましたら、お気軽にお問い合わせください。
© Copyright 2016 INFRAGISTICS. All Rights Reserved