UltraWinGridでデータバインド
それでは、UltraWinGridの機能について見ていくことにしましょう。まずは、データバインドです。バックエンドにデータベースを持つアプリケーションは、ビジネスの世界で利用される最も一般的な形です。データベースからデータを取得し、クライアントアプリケーションで表示・編集し、またデータベースに保存する。この流れは変わりませんが、実にいろいろな方法が存在しています。
UltraWinGridにおけるデータバインドの方法を説明する前に、対象となるデータベースを準備しておきましょう。「Northwind and pubs Sample Databases for SQL Server 2000」をダウンロード、インストールし、SQL Management Studioなどで「instnwnd.sql」を実行して、サンプルデータベースを作成してください。
Windowsアプリケーションプロジェクトを開始して、プロジェクトにデータセットを追加します。[データ]メニューの[データソースの表示]を選択して、データソースウィンドウを表示しておきましょう(図4)。ここから表示するデータを選択します。
ここで、データを表示するためのコントロールを選択することになるのですが、デフォルトでは、DataGridViewと詳細しか用意されていません。[カスタマイズ...]を選んで、UltraWinGridを選べるように設定します。表示されたダイアログボックスの[オプション]-[データ UI カスタマイズ]で、「UltraGrid」など、必要なコントロールにチェックを入れ、関連付けを行ってください(図5)。
ここまでの準備が完了すれば、後は表示するデータを選ぶだけです。テーブルやストアドプロシージャをマウスでクリックすると、コンボボックスが表示されるので、そこでUltraWinGridを選び、フォームにドラッグ&ドロップしてください。自動的に必要なコントロールが追加され、データバインドを行ってデータベースにアクセスできるようになります。
これでUltraWinGridでのデータバインドは完成です。基本的に、これだけでデータベースのデータを表示したり、編集して保存することが可能です。もっとも、これだけではちょっと味気ないので、UltraWinGridのデザイン設定を変更して、さらに使いやすい形にしていくことにしましょう。
UltraWinGridのデザイン
先ほど、UltraWinGridをフォームに追加したとき、コントロール上に[スタート]ボタンが表示されていたと思います(図6)。もちろん、プロパティウィンドウから一つ一つ設定していってもよいのですが、UltraWinGridデザイナを使えば、プロパティウィンドウでの設定よりも簡単に、細かな設定を行うことができます。
ここでは、このUltraWinGridデザイナを利用して、いくつかの設定を行っていきましょう。まずは、Outlookスタイルのグループ化機能です。Outlookでは、一覧表示したデータをグループ化するために、列ヘッダをドラッグ&ドロップすることができます。UltraWinGridでも、同様の機能をサポートしているので、プロパティを設定するだけでこの機能が実現できるのです(図7)。
UltraWinGridデザイナで、[基本設定]-[機能の選択]で[Outlook Group By]を選び、「アクティブ」にチェックを入れます(図8)。このとき、項目上にマウスカーソルを移動すると、実際のプロパティと値がポップアップで確認できるのがなかなか便利です。プログラムコードを記述していて「あれ? どのプロパティだったかな?」と迷ったとき、ヘルプを使うのも一つの方法ですが、ここで確認するのもよいでしょう。
続いて、複数列を利用したソート機能を追加してみます。これまた、プロパティの設定はとても簡単です。先ほどと同じように、[基本設定]-[機能の選択]から[ヘッダークリック時のソートアクション]を選び、「複数列でソート」にチェックを入れます。これだけで、複数列を使ったソートが実現可能です。複数列でソートを行うときは、[Shift]キーを押しながら、二番目以降の列ヘッダーをクリックします(図9)。ソートを行いたくないときは、HeaderClickAction
プロパティにHeaderClickAction.Select
列挙値を設定するということもできます。
UltraWinGridのデザインでは、ほかにもさまざまな設定を行うことができますし、UltraWinGridの機能は、とても一回の記事で紹介できる量ではありません。残念ながらページの都合もありますので、次に紹介する機能で最後にしたいと思います。フィルタリングというと、ExcelやAccessでもおなじみの、ユーザーの手によって表示するデータを制限するという機能です。いちいちデータベースにアクセスするわけではなく、クライアント側で完結するため、ユーザーにも優しい機能と言えるでしょう。
このフィルタリング設定は、少々面倒です。といっても、先ほどまでと同じようにUltraWingGridデザイナからの設定だけで行うことができます。[基本設定]-[機能の選択]で[フィルタ]を選び、表1のように設定してください。これだけの設定で、簡単にフィルタリング機能が実現できました。アプリケーションを実行してみると図10のようになります。
許可する | 許可する |
アクション | フィルタによって除外された行を隠す |
フィルタ範囲 | バンドのすべての行 |
フィルタUIタイプ | ヘッダーアイコン |
フィルタ行 | すべてデフォルト |