LightSwitch Reporting with XtraReports でレポートのフィルタリングを LightSwitch らしくする方法

本稿が LightSwitch Reporting with XtraReports の記事の最後になる予定です。
※本稿の内容は、現時点では Visual Studio 11 Beta LightSwitch (LightSwitch V2) では利用できません。Visual Studio LightSwitch 2011 に対応した内容です。

前の記事 まででフィルタリングに対応した XtraReports の使い方を紹介しましたが、もともと Silverlight 用のコントロールと思われるものを拡張した性質上、見た目が LightSwitch らしくありません。

image

プロパティ変更とコードの追加で、もう少し LightSwitch らしくしてみます。


【0 – 前提】

フィルタリング対応のレポート出力ができていることが前提です。(こちらの記事


【1 – パラメーターウィンドウの非表示】

レポートデザイナーを開き、データソース (これまでの手順通りであれば “lightSwitchDataSource2”) → [QueryParameters] → Parameter コレクションエディターを開きます。
Visible = false に変更してください。これで実行時にパラメーターウィンドウが非表示になります。

image


【2 – Employee の概要プロパティの確認】

フィルタリングのキーとして使用する “Employee” テーブルの “概要プロパティ” を確認します。

image 

次の手順で社員のドロップダウンリストを画面に配置しますが、これで各項目の表示が LastName になります。


【3 – 画面デザイン】

レポート画面の画面デザイナー(レポートデザイナーではありません)を開いて、社員選択のコントロールを配置します。

まずは画面のデータ要素を追加します。
[データ項目の追加] をクリックしてダイアログボックスを開きます。
[メンバーの種類] として [ローカルプロパティ] の “NorthwindData.EmployeesItem” を選択します。名前は “Employee” としておきます。
ここで “クエリ” ではなく “ローカルプロパティ” を選択することに注意してください。

image

今追加した “Employee” を画面レイアウトにドロップします。ReportViewer の上がいいでしょうね。

image

レイアウトしたらコントロールの型が “オートコンプリートボックス” (ドロップダウン) になっていることを確認してください。また、あとで実行してみるとレポート部分の左側の余白が気になるので、“Employee” のプロパティウィンドウで [ラベルの位置] を “上詰め” に変えておくといいと思います。


【4 – コード追加】

データ項目の “Employee” (レイアウトの Employee ではなく) を選択→ [データの追加] で “Employee_Changed” メソッドを追加します。つまり Employee が変更されたら(ここでは、ドロップダウンで社員が選択されたら)、レポートを作成すると言うことです。

image

Employee_Changed では、レポートのパラメーターに選択された社員名(LastName)を渡します。さらに、レポートを生成するため “CreateDocument” メソッドを呼び出します。ここで注意するのは、コントロールの描画の要求なので UI スレッドを取得して BeginInvoke することです。
さらに LightSwitch ではレポートコントロールは “CustomizeReportPreviewModel” の引数でしか取得できないので、あらかじめローカル変数に代入しておくようにします。

image


【5 – 完成】

以上で完成です。実行してみると、LightSwitch のドロップダウンと XtraReports との組み合わせで動作していることがわかると思います。

image
image

以上で LightSwitch のレポーティングについての一連の記事は終わり。以下の記事とこの記事とを使って、レポーティング機能を持った LightSwitch アプリ開発をしてみてください。

広告
カテゴリー: LightSwitch タグ: , パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中