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 Reporting with XtraReports でレポートのフィルタリング

LightSwitch Reporting with XtraReports の使い方シリーズです。 簡単な手順で LightSwitch アプリケーションにレポーティング機能を追加できます。
※本稿の内容は、現時点では Visual Studio 11 Beta LightSwitch (LightSwitch V2) では利用できません。Visual Studio LightSwitch 2011 に対応した内容です。

 

顧客ごとにグループ化したレポート に担当社員ごとのフィルタリング機能をを追加してみましょう。
すっかり間が空いてしまいました。空きすぎてしまったので、改めて XtraReports の使い方の基本からやり直したほうがいいかもしれませんね。すみません。


【0 – 前提】

顧客ごとにグループ化したレポート表示ができていることが前提です(レポートのグループ化 まで完成した状態)。

groupingreport


【1 – クエリの追加】

レポート対象の Order テーブルにクエリを追加します。ここではクエリの名前を OrdersByEmployee としておきます。

image


【2 – レポートのデータソースの変更】

レポートデザイナーに移動して、データソースを変更します。前の手順で追加した OrdersByEmployee を選択してください。データソース名はデフォルトでは lightSwitchDataSource2 となると思いますが、ひとまずそのままで使いましょうか。なお前のデータソース lightSwitchDataSource 1 はもう必要ないので削除してかまいません。

image

続いて、データソースのクエリパラメーターを確認します。EmployeeLastName の Visible が true であることを確認してください。これで担当社員の選択(指定)ができるようになります。

image


【3 – 途中経過】

この状態で一度実行してみます。

image

確かにパラメーターの選択が出来るようになったようですが TextBox に入力しなければなりません。例えば数値などであればこれでもいいかもしれませんが、社員名でこれはないでしょう。ということで、コンボボックスで選択できるようにします。


【4 – Screen クラスにコード追加】

社員名をドロップダウンリストから選択できるようにするには、デザイナー内での設定はできません。画面クラスにコードを追加します。

image

コードのポイントは:

  • _Activated メソッドでコンボボックスの要素を組み立てる
  • CustomizeParameterEditors イベントハンドラで、パラメーターエディタの設定をする

【5 – 完成】

以上で完成。実行するとこんな風になります。

image

・・・が、パラメーターウィンドウが LightSwitch っぽくなくてちょっと残念。次回はそこを変更してみましょうか。

 

※XtraReports についての投稿も次の1回まで。そろそろ OData 対応とか Metro アプリ開発とか書きたいことはいろいろあります。

【解決!】 Windows 8 CP でキーボードのレイアウトが英語(101)になってしまう場合の(正しい)解決法

前に 「Windows 8 CP でキーボードのレイアウトが英語(101)になってしまう場合の最終手段(?)」 という投稿をしましたが、Microsoft Answers に正しい解決方法が載っていました。情報源の拡散と実際の手順の紹介のために書いておきます。
念のためですが、解決したのは私ではありません。それから前の投稿は忘れてください・・・

※ここで言う “正しい” とは Windows 8 CP で日本語キーボードが 101 だと認識されてしまう問題を解決する方法であって、Windows として正しいという意味ではありません。きっと改善されることでしょう(期待します)。

 

問題の原因は Windows 8 の高速スタートアップ機能の不具合で、キーボードレイアウトを誤って 101 であるとしてしまうことがあるということのようです。
高速スタートアップは以下の手順で無効化することができます。ちなみにこれをオフにしたからといって、体感では取り立てて起動が遅くなることはありません(あくまでも個人的な体感)。


  1. 通知領域(画面右下)の電源アイコンをクリック→ [その他の電源のオプション] をクリック
    (または、コントロールパネル – [ハードウェアとサウンド] – [電源オプション] でもよいかと)
    image

  2. [電源ボタンの動作を選択する] をクリック
    image
  3. [現在利用可能ではない設定を変更します] をクリック
    image
  4. [高速スタートアップを有効にする] をオフに (デフォルトでは、オンになっている)
    image

これで、キーボードがどうしても 101 になってしまって困っていた人も、快適な Windows 8 ライフを送れるようになるでしょう。

Windows 8 CP にいろんなアプリをインストールしてみた (ASUS B121 でやってみた)

以前、 Windows 8 DP にいろんなアプリをインストールしてみた という記事を書きました。Consumer Preview リリース後、その記事へのアクセスが増えてます。皆さん、多分 Consumer Preview の記事を求めてるんですよね。

そこで簡単に整理してみました。
DP の時より熱が入っていないように見えるのは、CP になって完全実用モードでスレートを使いだしたから。実際に自分が日常的に使用するアプリのみ確認したためです。以下、お役にたつようであれば。

以下の表にないのは、私が実際に確認していないということで、動くとも動かないとも言えません。以下のものも、他とのインストールの順番等によっては結果が変わる可能性もあります。例によって、参考にする場合は自己責任で。 なお「英語版」 と明記したもの以外は日本語版のアプリケーションです。


ツール、ユーティリティーなど

アプリ名 バージョン/言語など 結果 インストール時の注意点など(以下でWindows 7 互換、管理者権限実行などはインストーラー自体の指定のこと)
Microsoft Security Essentials (64ビット)   OK サクッとインストールできます。
ウイルスバスター 2012 (64ビット)   NG Windows 7 互換、管理者権限実行などでもインストール不可。セキュリティー製品などはまだ諦めておきましょう。
ATOK 2012   OK インストールは問題ありませんが、コントロールパネル上での表示が本来 “日本語 – ATOK 2012” とでもなるべきところが “日本語 -” となってしまいます。かつ、インストール済みの言語リストには表示されません。使うぶんにも特に問題はないように思いますが、一応アンインストールしておきました。
インストール自体は問題なく成功しましが、キーボードレイアウトがおかしくなります。具体的には、実際に入力されるのは英語キーボード (101) なのに、スクリーンキーボードの表示は日本語 (106) になります。
ATOK ユーザーなんですが今のところは使用は我慢。
マッハドライブ (64ビット) 1.06 OK 問題なし。ちなみに PC のパフォーマンスを気にしてではなく、SSD に優しい人になりたくて(笑)使ってます。
プチフリバスター 3 NG Windows 7 互換、管理者権限であってもインストールできません。
f2d 1.5 NG Windows 7 互換、管理者権限であってもインストールできません。インストーラーの最後で 「ブロックされました」 というメッセージとともに失敗します。SD カードを固定ディスク化できるツールで、Windows 8 DP ではインストールできて便利に使えていました。これがインストールできないというのが個人的には一番残念。
DisplayLink 6.2 M1 OK
NG
6.2 M1 で Windows 8 対応してくれました。動作します。
インストールに問題はなく、動作も一見問題ないように見えましたが、こちらの記事 の通り、一部の Metro アプリが動作しないという問題がありました。
DisplayLink Windows 8 Preview Release OK
NG
Windows 8 用の DisplayLink ドライバー (Preview Release) です。6.2 M1 がリリースされた今となっては不要ですが、Windows 8 CP でもちゃんと動作したので、念のためリンクを載せておきます。
6.2 M1 と同じ問題があることがわかりました。
ZoomIt   OK 問題なし。

アプリケーション
バージョン/言語など 結果 インストール時の注意点など
Microsoft Office 2010 SP1 (32ビット)   OK Visio, Project, SharePoint Designer なども含めて確認。危なげなくインストールできます。動作も問題なし。
Windows Live Essentials 2011 OK 問題なし。
EmEditor 10.x, 11.x OK 全く問題ありません。愛用のテキストエディタ。
アイデアツリー 7.30 OK 問題なし。
astah Professional 6.6 OK 問題なし。
Seesmic Desktop 2   OK 問題なし。DP では起動しなかったのですが、CP になって OK になりました。
MetroTwit 0.9.2.0 OK 問題なし。個人的には Seesmic 派なので、Seesmic が動作したことでお役御免となりました。
Paint.NET 3.5.10 OK 問題なし。
Amazon Kindle   OK インストールは問題なくできます。動作も問題なさそう。が、Windows 8 とは無関係に使えません。最新のバージョンでは、どうも “amazon.co.jp” に飛ばされてしまいます。購入済みの Kindle 本が一切見えません。今後、日本語版 Kindle を購入した人にはいいでしょうが、”.com” な私には無意味。残念。
Microsoft Touch Pack for Windows 7   OK 問題なし。せっかくのスレート PC なのでインストールしました。
超字幕   OK 問題なし。アプリケーション、コンテンツとも SD カードにインストールできるので、本体の SSD の容量を圧迫せずに使えそうです。
Windows 8 DP の時にはインストールに失敗していた(コンテンツのライセンス取得で必ず落ちていた)んですが、上手く行くようになりました。これで私の英語力も上手く行きます(嘘)。

開発ツール
バージョン/言語など 結果 インストール時の注意点など
Visual Studio 11 Beta   OK 当然ながら、何の問題もなくインストールできます。
SQL Server 2012 Express Edition with Tools   OK 問題なし。
Windows Phone SDK 7.1   NG 現時点で公開されているものは Visual Studio 11 Beta との共存はできないそうです。対応版をリリースする予定とのことなので、随時リンクをチェックしてみるといいでしょう。
LINQPad   OK 問題なし。

Windows 8 CP でキーボードのレイアウトが英語(101)になってしまう場合の最終手段(?)

※以下の内容よりも適切な解決方法を別途投稿しました。そちら をご覧ください。

 


Windows 8 Consumer Preview がリリースされて以来、ブログのアクセス数が増えてます。検索のキーワードを見ると、Windows 8 DP の時に投稿した記事が読まれているよう。

そこでご期待にお応えして(?)、Windows 8 Consumer Preview のネタも投稿します。

現在、2台のスレート(ASUS B121ONKYO TW217) に Windows 8 CP をインストールしていて、それぞれに Bluetooth キーボード(バッファロー BSKBB01REUDO RBK-2100BTJ)を接続して使っています。
が、レイアウトが英語キーボード(101 キーボード)として認識されてしまいます。

人によって(マシンによって)異なるらしく、設定を変えることでちゃんと認識されてるというのも聞いています。正直正解がわかりません orz

いろいろ試した結果ギリギリ使えるレベルになったので、解決方法、というか暫定の回避方法の一つとして紹介しておきます。2台とも同じ方法で対応できたので、いろいろやってダメだった場合の「最後の砦」的な意味で使えるかもしれません。なんにしても期間限定の Tips になることを願ってます。(と言うか、そうじゃないと使い物にならないので、フィードバックしておきますね)


  1. [言語] パネルを開いて、[言語の追加] をします。別ウィンドウがポップアップしたら “英語 (United States)” を選択。この時キーボードレイアウトが “US” になっても取りあえず気にしません。
    image
  2. “英語” の [オプション] を選択します。
  3. [入力方式の追加] で “日本語” を選択します。
    image
  4. そしたら “US” は削除します。
    image
  5. “English” を第1言語にします。
    image
  6. [詳細設定] で、表示言語を “日本語” に、既定の入力方式を “英語” にします。
    image

以上です。

一度これをやっておくと、次からは Windows 8 を起動するとまず英語モード(レイアウトは 106) で起動します。日本語入力するためには Win + スペースを押します。さらに Alt+半/全 を押すと日本語が入力できるようになります。もちろん 106 キーボードです。
あと Win+スペース で日英を切り替えるといいです。
なおスクリーンキーボードで操作する場合は、キーボード右下の言語キーで日英を切り替えられます。

 

・・・なんか悔しいんだよな・・・

技術ひろば.net 2012年3月の勉強会を開催しました。テーマは LightSwitch と Windows 8 CP #hirobatech

3月17日(土) に技術ひろば.net 2012年3月の勉強会を開催しました。

http://hiroba-tech.net/tabid/138/Default.aspx

今回は急遽開催を決め、準備期間が短かったこともあり、土曜夜の開催となりました。
内容も(スピーカーのアテンドの余裕がなく・・・) 瀬尾が LightSwitch ネタをやりました。
・・・ということで、なかなか集まりづらい勉強会になってしまい申し訳ありませんでした。
(今回は、何とか3月に開催するということが一つの目標であったため、「えいやっ!」で開催してしまいました)


 

LightSwitch セッションは、どうしても「そもそも LightSwtich って何?」 とか 「聞いたことはあるけど・・・」 という人が多いので、超基本のデモからスタートしています。
それはそれで LightSwitch について何となくイメージをつかんでもらえたかなと思いますが、今回喋りたかったのは次期版の新機能。OData 対応です。

Visual Studio 2011 では通信部分(ベースは RIA Services)がブラックボックス化されており、他のシステムやデータソースと連携することは基本的にできませんでした。

それに対して VS11 LightSwitch では、これまで通り開発をすることで、サーバーサイドは OData の Producer にもなっています。つまり、例えば PowerPivot やその他の Consumer でもデータを利用することができます。
また外部データソースとして、任意の OData Producer を利用できます。

どちらとも、外部との連携がやりやすくなったことを意味します。LightSwitch に出来ること、というか利用可能な場所が広がって、面白いツールになったということです。
もう 「オモチャみたい」 とは言わせません!

 

Windows 8 CP については、実際に画面や操作性を見ていただきました。瀬尾の他に、参加者の一人も Windows 8 インストール済みのスレートを持って来てくれたので、合計3台の Windows 8 をお見せしました。
スペック的に・・・な TW217 でもかなり快適に動作するのがわかってもらえたかな?特に起動の速さはいいです。


技術ひろば.net の勉強会、3月はミニミニ勉強会でしたが、4月以降はまた各回の企画・テーマを考えて開催します。ぜひ遊びに来てください。
まもなく告知できると思います。

技術ひろば.net 2012年3月の勉強会は 3月17日(土) の開催です #hirobatech

技術ひろば.net の 2012年3月の勉強会は 3月17日(土) の開催です。

http://atnd.org/events/26146

3月は都合により(管理人の個人的都合 orz)、土曜日夜 18:30-20:30 という変則的な時間帯で、ミニ勉強会になってしまいました。集まりづらい時間帯ですみません。
そんなわけで(会場のキャパシティーは充分なのですが)募集人数も少なめです。
※本当は5~10人の、本当にミニ勉強会のつもりですが、会場が広いのでプラスアルファな人数にしています。


3月のミニ勉強会で時間枠も少ないため、セッション 1つ+ショート 1つの構成です。
一つは “LightSwitch” です。実は技術ひろばで LightSwitch をやったことはなくて、ここで一度やってみたいと思います。
決して万能ではない・・・どころか、使い道を選ぶところもある LightSwitch ですが、触ってみるとなにしろ面白い開発環境です。にも関わらず、触ったことがないとか、どんなものか知らないとか、人によっては名前すら聞いたことがないという声を聞きます。そこで、ぜひ一度どんなものかお見せしたいと思っていました。
かつ Visual Studio 11 Beta では Visual Studio に含まれる形でのリリースになりそう なので、ここで一度体験していただきたいなと、LightSwitch ファンとしては思ったわけです。
ぜひぜひ3月の勉強会に遊びに来ていただき、LightSwitch を見てください!

もう一つのテーマは、Windows 8 & Visual Studio 11 Beta です。
運よく スペックの異なるスレートPC を2台 持っていまして、両方にすでに Windows 8 Consumer Preview をインストール済みです。当日は2台とも持っていきます。ぜひ実際に Windows 8 に触っていただこうかと思います。特に低スペックスレートでも「これなら使い物になるかも」と思っていただければと。


3月17日(土) 18:30-20:30 という時間帯ですが、ぜひぜひ皆さん遊びに来てください。

お申し込みは こちらのページ から。

LightSwitch in Visual Studio 11

Visual Studio 11 BetaWindows 8 Consumer Preview とともにリリースされました。
すでにインストール済みの方も多いかと。

LightSwitch ですが、11 では Visual Studio 自体の中に含まれるようです。
※バージョン 1 にあたる Visual Studio LightSwitch 2011 では単独のプロダクトだったわけですが。

Visual Studio 11 Beta を初めて起動すると、既定の環境設定の候補としてちゃんと “LightSwitch 開発設定” があります。

image

もちろん、新しいプロジェクトとして LightSwitch アプリケーションのテンプレートも含まれています。

image

開発環境の見た目は、Visual Studio 11 らしくなっていますが、デザイナ画面の構成などは特に変わっていないようです。
(今後どうなっていくかはわかりませんが)

image
image
image

開発したアプリケーションの見た目も今までと同様。

image
image

「ランタイムはどうなっているのかな~」と見てみると、Silverlight 5 でした。

image

これまでと変わらずに LightSwitch 開発ができそうですが、OData 対応など機能追加があるようなので、これから少しずつ見ていきたいと思います。
ひとまず LightSwitch in Visual Studio 11 Beta のリソースはこちら。

(遅すぎてすみません) 技術ひろば.net 「1月」の勉強会やりました #hirobatech

・・・ご無沙汰しています。

すっかり賞味期限切れの話題ですが (汗、
1月21日(土) に、技術ひろば.net の1月の勉強会 を開催しました。

http://hiroba-tech.net/tabid/135/Default.aspx

当日の資料は順次公開したいと思います。
(が、時間が経ちすぎたのでスピーカーの方からいただけるか、ちょっと心配・・・)


(言い訳)
なんで、こんなタイミングで書いているかというと・・・。
勉強会前から体調を崩していて、勉強会開催で安心したのか翌日から病人生活を送っていました orz
この数日、ようやくPCを触れるようになってきました。

 

次の勉強会は3月に開催したいけど、時間を考えるとちょっと微妙。何しろやるにしてもこれからスタートだし。ミニ勉強会にして準備は最低限な形で出直しますかね。
運営に人手は絶対に必要。一緒に盛り上げてくれる方、お待ちしてます!

LightSwitch Reporting with XtraReports でレポートのグループ化

LightSwitch にレポーティング機能を簡単に追加することができる LightSwitch Reporting with XtraReports の使い方シリーズです。
基本的な使い方は こちらの記事 を参照してください。

今回は グループ化 の方法です。
こちらの記事 で Northwind の受注一覧をレポート出力しましたが、以下では受注一覧を顧客ごとにグループ化してみます。


【0 – 前提】

受注一覧(Orders) のレポート表示ができていることが前提です(こちらの記事)。

image26


【1 – グループの追加】

[Group and Sort] ウィンドウの “Add a Group” を選択して、グループ化したいプロパティを指定します。ここでは “CustomersItem.CompanyName” にします。

image

 

グループ化フィールドが追加され、(プロパティの指定にもよりますが、デフォルトでは)デザイン画面にグループヘッダー領域が追加されます。

image


【2 – グループヘッダーのデザイン】

“Field List” から “CustomersItem.CompanyName” をグループヘッダー領域にドロップします。

image

今回はフォントを大きくして下線を引いてみます。表示が切れないようにコントロールのサイズも変更。

image


手順はこれだけ。実行してみると、顧客ごとにグループ化されるのがわかると思います。

image

フォロー

Get every new post delivered to your Inbox.

現在513人フォロワーがいます。