このレッスンでは、前のレッスンで作成したフォームにデータグリッドコントロールを追加します。このコントロールは、結果セット内のナビゲーションに合わせて内容を自動的に更新します。
前提条件
このレッスンは、レッスン 1:Table Viewer の作成のレッスンの続きです。
このレッスンでは、このチュートリアルの開始時に、権限のセクションで一覧されているロールと権限を持っていることを前提としています。 チュートリアル:データベース内の Java の使用
内容と備考
完全なアプリケーションは、ADO.NET プロジェクトの %SQLANYSAMP16%\SQLAnywhere\ADO.NET\SimpleViewer\SimpleViewer.sln にあります。
Visual Studio を起動し、MySimpleViewer プロジェクトをロードします。このプロジェクトはレッスン 1:Table Viewer の作成で作成したものです。
[データ ソース] ウィンドウで [DataSet1] を右クリックし、[デザイナで DataSet を編集] をクリックします。
[データセット デザイナ] ウィンドウの空白領域を右クリックし、[追加] » [TableAdapter] をクリックします。
TableAdapter 構成ウィザードで次の作業を実行します。
[データ接続の選択] ページで、[次へ] をクリックします。
[コマンドの種類を選択します] ページで、[SQL ステートメントを使用する] をクリックし、[次へ] をクリックします。
[SQL ステートメントの入力] ページで、[クエリ ビルダ] をクリックします。
[テーブルの追加] ウィンドウの [ビュー] タブをクリックし、[ViewSalesOrders] をクリックして [追加] をクリックします。
[閉じる] をクリックして [テーブルの追加] ウィンドウを閉じます。
ウィンドウのすべてのセクションが表示されるように、[クエリ ビルダ] ウィンドウを拡大します。
すべてのチェックボックスが表示されるように、[ViewSalesOrders] ウィンドウを拡大します。
[Region] をクリックします。
[Quantity] をクリックします。
[ProductID] をクリックします。
[ViewSalesOrders] ウィンドウの下のグリッドで、[ProductID] カラムの [出力] の下にあるチェックボックスをオフにします。
[ProductID] カラムで、[フィルタ] セルに疑問符 (?) を入力します。これで ProductID の WHERE 句が生成されます。
次のような SQL クエリが作成されました。
SELECT Region, Quantity FROM GROUPO.ViewSalesOrders WHERE (ProductID = :Param1) |
この SQL クエリを次のように変更します。
Quantity
を SUM(Quantity) AS TotalSales
に変更します。
GROUP BY Region
を WHERE 句の後に続くクエリの末尾に追加します。
変更した SQL クエリは次のようになります。
SELECT Region, SUM(Quantity) as TotalSales FROM GROUPO.ViewSalesOrders WHERE (ProductID = :Param1) GROUP BY Region |
[OK] をクリックします。
[完了] をクリックします。
ViewSalesOrders という新しい TableAdapter が [データセット デザイナ] ウィンドウに追加されました。
フォームデザインタブ (Form1) をクリックします。
フォームを右方向にドラッグして拡大し、新しいコントロールの領域を確保します。
[データソース] ウィンドウで [ViewSalesOrders] を展開します。
[ViewSalesOrders] をクリックし、ドロップダウンリストから [DataGridView] をクリックします。
[ViewSalesOrders] をクリックして、フォーム (Form1) にドラッグします。
データグリッドビューのコントロールがフォームに表示されます。
プロジェクトをビルドし、実行します。
[ビルド] » [ソリューションのビルド] をクリックします。
[デバッグ] » [デバッグの開始] をクリックします。
[Param1] または [ProductID] (VS 2010) テキストボックスに、300 などの製品 ID を入力して [Fill] をクリックします。
入力した製品 ID の販売概要が、データグリッドビューに地域別に表示されます。
フォームのもう一方のコントロールを使用して、結果セットのローを移動することもできます。
ただし、2 つのコントロールが互いに同期された状態になっていることが理想的です。これを実現するための手順を次に示します。
アプリケーションを終了してプロジェクトを保存します。
Fill ストリップは不要なのでフォームから削除します。
デザインフォーム (Form1) で、[Fill] の右側にある Fill ストリップを右クリックして、[削除] をクリックします。
Fill ストリップがフォームから削除されます。
2 つのコントロールを次のようにして同期します。
デザインフォーム (Form1) で [ID] テキストボックスを右クリックし、[プロパティ] をクリックします。
[イベント] ボタン (電球で表示される) をクリックします。
[TextChanged] イベントが見つかるまでスクロールダウンします。
[TextChanged] をクリックし、ドロップダウンリストから [fillToolStripButton_Click] をクリックします。Visual Basic を使用している場合は、[FillToolStripButton_Click] というイベントです。
[fillToolStripButton_Click] をダブルクリックして、fillToolStripButton_Click
イベントハンドラに関するフォームのコードウィンドウを開きます。
param1ToolStripTextBox
または productIDToolStripTextBox
(VS 2010) への参照を検索し、これを iDTextBox
に変更します。Visual Basic を使用している場合は、IDTextBox
というテキストボックスです。
プロジェクトを再度ビルドし、実行します。
アプリケーションフォームに表示されるナビゲーションコントロールが 1 つだけになりました。
結果セットを移動すると、それに合わせて現在の製品の販売概要が更新され、データグリッドビューに地域ごとに表示されます。
アプリケーションを終了してプロジェクトを保存します。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |