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

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

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

http://atnd.org/events/23965

技術ひろばの今年最初の勉強会です。今回も 開発もインフラも、さらにハードウェアも あります。たくさんの参加をお待ちしています。
強力な勉強会と日程が重なっていますが、ぜひ遊びに来てください。


今回の技術ひろばは、

  • AD FS を極めよう~要求規則言語 講座」・・・日本マイクロソフト 安納さん(@junichia)
  • knockout.jsとASP.NET MVC で始めるMVVMパターン」・・・Honda さん(@UnderSourceCode)
  • ARM時代の基礎」・・・西澤さん
  • SQL Server 2012」・・・@SQLAzureJP さん

の 4 セッションです。
(詳しくは申し込みページでご確認ください)

テーマを特化しない技術ひろばらしく、幅広い内容です。自分の興味のある/業務に関係のある内容だけではなく、実はあまり詳しくない/普段は接する機会が少ないセッションも楽しんでいただけるとうれしいです。

ちょっとしたプレゼントもありますので、そちらもお楽しみに。

たくさんの方の参加をお待ちしています。

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

 

PS. いつものことながら、技術ひろばではスタッフ、スピーカーのお申し出をお待ちしています。申し込みのアンケートでその旨お知らせください!

XtraReports を日本で使用するための Tips

Developer Express の LightSwitch Reporting with XtraReports を使えば簡単な手順で LightSwitch にレポーティング機能を追加できます。
が、アメリカ製ということもあって、デフォルトでは日本(日本語環境)で使うには変更したほうがいい設定があります。

  1. 長さの単位
    デフォルトではインチで位置指定をしますが、日本ではやはりメートル(ミリメートル)で指定したいところ。
    “ReportUnit” プロパティを “TenthsOfAMillimeter” にします。
    image
  2. 用紙サイズ
    デフォルトでは “Letter” になっています。PaperKind を “A4” などにします。
    imageimage
  3. フォント
    PDF エクスポートの文字化け対応には日本語フォントの指定が必須なのは 前の記事 の通り。
    image

XtraReports の PDF エクスポート文字化け対策

LightSwitch アプリケーションにレポーティング機能を追加する方法として、LightSwitch Reporting with XtraReports使い方ローカライズ方法 の紹介をしました。

XtraReports を使うと簡単にレポーティング機能を実装することができ、うまく動作しているように見えます。が、エクスポートした  PDF ファイルでは日本語が文字化けすることがわかりました。
※印刷、Excel エクスポート、CSV エクスポートなどはデフォルトのままで問題なく日本語出力できます。

プレビュー表示では

image

なのが、PDF エクスポートすると

image


文字化け対策は簡単で、レポート画面または各コントロールで フォントを変更するだけ

image

これで PDF エクスポートも文字化けしなくなります。

image

 

ここだけ気をつければ日本語出力も問題ないようです。

XtraReports の日本語ローカライズ

前の記事 で、DevExpress の LightSwitch Reporting with XtraReports の開発手順を紹介しましたが、話がややこしくなりそうなので、一つ説明を省いた内容があります。
それがアプリケーション自体のローカライズの問題。
※それとは別にエクスポート機能の日本語文字化け対策という話もあるのですが、それはまた別の記事で。

前の記事では何事もないかのように書いてますが、実は XtraReports を単にインストールしただけでは XtraReports のコントロール自体が英語のままです。

image

対応は簡単で、別途配布されているサテライトアセンブリ(=各国語のリソースファイル)をインストール、というかコピーするだけ。

サテライトアセンブリは この辺のページ で配布されています。
サテライトアセンブリは DevExpress アセンブリのバージョンごとに存在するので、もしかすると今後のバージョンアップなどで配布のアドレスが変わる可能性があります。もしサテライトアセンブリが見つからなかったら、Developer Express のトップページ の検索窓で “localize” とでも入れると見つかるはず。

この記事を書いている時点では LightSwitch 対応の XtraReports は 11.1 が最新。それより新しい 11.2 は現時点では LightSwitch 対応していないので注意。

image

ZIP を解凍すると “DevExpress.DLL” フォルダ内に各ロケールのサブフォルダーがあります。この中の “ja” フォルダを “C:\Program Files (x86)\DevExpress 2011.1\Components\Bin\Silverlight” にフォルダーごとコピーします。

image

あとはアプリケーションをリビルドすれば OK。アプリケーションが日本語化します。

image

LightSwitch Reporting with XtraReports の使い方(基本編)

LightSwitch にレポーティング機能を追加するためには Developer Express 社LightSwitch Reporting with XtraReports が便利です。
が、少しだけ独特のお作法が必要です。ということで以下、XtraReports の基本的な使い方。


【0 – データベースの準備】

ApplicationData でももちろんレポート出力は可能ですが、今回および次回以降の関連する記事では多数のデータを作る代わりに Northwind を使ってみます。
当然ですが、ここは XtraReports に必須の手順というわけではないので、それぞれのアプリケーションに必要なデータベースを使うことになります。

  1. MS のサイトから Northwind Sample Database をダウンロード→インストール
  2. [外部データソースにアタッチ] → データベース名の指定 

    image image image
  3. 今回は “Customers”、 “Employees”、 “Orders” を選択して [完了]
    image

【1 – エクステンションの選択】

プロジェクトのプロパティを開いて、拡張機能ページで “DevExpress XtraReports” をチェックしてください。

image


【2 – データソースの追加】

データソースを追加します。 LightSwitch Reporting with XtraReports では、データソースとして WCF RIA Services を使います。これはデータベースが ApplicationData であっても外部データベースであっても同じプロジェクト内のデータベースに対して、XtraReports 専用の RIA Services を用意します。

  1. ソリューションエクスプローラーで [データソースの追加]
    image
  2. “WCF RIA サービス” を選択
    image
  3. “DevExpress.XtraReports.LightSwitch.Server.XtraReportsService” を選択
    ※リストに表示されていないようならば、いったんウィザードを閉じてリビルドするといいはず。
    image
  4. “MessageEnvelop” を選択して [完了]。これは XtraReports に固定のエンティティなので、素直に選択してください。
    image
  5. エンティティが生成されるので、プロパティの [複数形の名前] を “MessageEnvelope” から “MessageEnvelopes” に変更しておくといいです(複数形の s を末尾に付ける)。これは後の手順で生成されるスケルトンが MessageEnvelopes を前提にしたコードを生成するため、その対応。もちろんスケルトン側を変更することもできなくはないが、こちらで変更しておくほうがラク。
    ※Visual Studio のオプション設定によっては、はじめからここが複数形の s 付きで生成されているかも(未確認)。その場合は気にせず次の手順へ。
    image

【3 – レポートクラスの追加】

  1. ソリューションエクスプローラーで [ファイルの表示] に切り替える
    image
  2. “Server” プロジェクトで [追加]-[新しい項目] を選択
    image
  3. “XtraReport Class” を選択。名前はご自由に。
    image

【4 – レポートのデザイン】

  1. レポートデザイン画面が開いたら、左上のアイコンをクリックしてデータソースの選択。ここでは “Orders” を選択しています。
    image
  2. 適宜コントロールの配置、バインディングの設定をしてレポートをデザインしていきます。ここでは “XRTable” を [Detail] 領域に配置しています。Detail に置くことでレコード数分繰り返してくれます
    image
    image
    image
  3. 必要に応じて [Format String] などのプロパティも設定
    image

【5 – レポート画面の追加】

  1. ソリューションエクスプローラーの表示を [論理ビュー] に戻す
  2. [画面の追加] で “Report Preview Screen” を選択。画面名はご自由に。
    image
    image
  3. 画面の “Activated” メソッドを記述。スケルトンは生成されているが、ReportTypeName で名前空間の指定がもれているので、 “LightSwitchApplication.” を追加しておく。
    image
    image
  4. 手順はこれで終わり。実行するとこんな風になります。
    image

 

と、いくつか独特の手順はありますが、かなり簡単な手順でレポーティング機能を追加できます。LightSwitch アプリケーション内ではレポート領域のツールバーが若干浮いている気もしますが、ここが問題にならなければ上の手順で帳票印刷、ファイルへのエクスポートが簡単に実現できます。

DevExpress の XtraReports で LightSwitch にレポーティング機能を追加する

LightSwitch の弱い部分として標準でレポーティング(=帳票)機能を持たないことがあります。
業務アプリケーションでは帳票が必要なことはよくあると思うので、なかなか大きな弱点です。
クライアントをデスクトップアプリケーションとしてデプロイすることで Excel エクスポート機能を利用できますが整形できているわけではないし、そもそも Web アプリケーションだと Excel エクスポート自体が使えません。

ではレポーティングは絶対に実現できないかというとそうでもありません。LightSwitch にはエクステンションの仕組みがあります。これを使えばレポーティング機能を追加することは可能。
さらに簡単にレポーティングを実現するにはサードパーティー製のエクステンションを利用する手があります。

インフラジスティックスSiverlight 用 NetAdvantage Reporting をカスタムコントロール化するのが一つの方法。具体的な手順は Mihail Mateev さんのブログ に詳しく書かれています。この方法で実現は可能ですが、やはりカスタムコントロール化するという手順が必要です。定型的な部分が多く難しくはないですが、面倒な作業であることも事実。もう一つのハードルとしては費用面($995)があります。

別の方法として Developer ExpressLightSwitch Reporting with XtraReports があります。
こちらは $99.99 という価格が魅力的。それから LightSwitch に統合されているというメリットもあります。Silverlight 用のコントロールに LightSwitch のラッピング層を追加したもので、開発手順も独自のお約束に則る必要がありますが、それでも自分で一からカスタムコントロール化するのに比べると簡単にレポーティング機能を実現できます。

気になっていたところで運よくライセンスをいただけたので、実際に評価してみました。
長くなるので開発の手順は記事を分けることにして、LightSwitch のレポーティング機能には XtraReports が使えますよ、という紹介でした。

MVP for C# 再受賞しました。ありがとうございます

Microsoft の MVP を再受賞しました。今回も MVP for Visual C# です。

他のコミュニティーリーダーの方に比べて技術力、発信力とも足りていませんが、今年も自分にできる発信とコミュニティーに参加・貢献をしていきたいと思います。

技術ひろば.net をもうちょっと何とかしないといけないですね。

ともかくも今年もよろしくお願いします。
取り急ぎ受賞の報告でした。

IE のプロキシ設定を簡単に変更する方法

U300 を乗せた HTC Trophy でのテザリング に関連して個人的な覚え書き。

社内/自宅と外出先のように、場所を変えて PC を使うことはあります。
その際、LAN のプロキシ設定を変えなければならないこともあるでしょう。
IE を開いて [インターネットオプション] から辿って設定を変更するのでもちろん問題はないですが、階層が深いので面倒なことも。

「誰にでもお勧めできる方法」とは言えませんが、レジストリファイルを使って簡単に設定を変更することが可能です。マイクロソフトのサポート情報に載っているもの。

レジストリ ファイルを使用してクライアントのプロキシ サーバー設定を構成する方法

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings のうち、プロキシ設定に関する項目をあらかじめレジストリファイルに書いておきデスクトップにでも置いておきます。必要に応じてこれをダブルクリックすればすぐに設定を変更できるというもの。

例えば、b-mobile の Web アクセラレーターを有効にする(=外出先でネットワークに接続する)にはこんなレジストリファイル。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MigrateProxy"=dword:00000001
"ProxyEnable"=dword:00000001
"ProxyHttp1.1"=dword:00000001
"ProxyServer"="http=mao.bmobile.ne.jp:32080"
"ProxyOverride"="192.168.0.1;*.bmobile.ne.jp"

逆に Web アクセラレーターを切る(=社内/自宅のLAN の中に入る)にはこんなレジストリファイル。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MigrateProxy"=dword:00000001
"ProxyEnable"=dword:00000000
"ProxyHttp1.1"=dword:00000001

簡単なアプリでも作ってもうちょっとスマートに実現できるとかっこいいと思いますが、ひとまずこれでやりたいことは実現できます。

B-mobile の U300 でのテザリングはかなり使える

HTC Trophy でテザリングができるようになったので(だいぶ経ちますが)、外出時に e-mobile がなくてもいいようになってきました。小さいものとはいえ荷物が一つ減らせます。 (回線数も減らせそう)
IS12T でもテザリングできるようになればいいんだけど、これはなさそうだし。

Trophy で通信しようとなると 日本通信 ということになります。(グレーなところは置いておいてw) 
Trophy 本体でやっている分には U300 (上下とも上限 300kbps) でしばらく使ってましたが、テザリングするにはどの程度使えるのか?という疑問が出てきました。

そこで U3001GB 定額 とを使い比べてみました。以下、本当にあくまでも個人的な感想。

個人的にはテザリングでも U300でOK という結論。定額で3000円を切るという価格設定も大きいですが、「これじゃ使えないよ」ということもありません。
実際に使い比べてみると速度差は明らかなんですが、動画とか大容量のダウンロードをやらなければ困ることもありません。
メール、Web ブラウズ、SNS 程度であれば普通に使えます。

「U300 で十分」と考えたのは体感なので個人の感覚だと言われればそれまで。なので、もう少し客観的なデータでも見てみましょうか。BNRスピードテスト(画像読み込み版) の結果で見てみます。

  Web アクセラレーター オン Web アクセラレーター オフ
U300 SNAGHTML50ce86 SNAGHTML50edd8
1GB 定額 SNAGHTML512c3f SNAGHTML510cdd
(比較) 自宅
※意外と遅かったw
  SNAGHTML5096f3

重要なのは Web アクセラレーターの設定 です。
画像やHTMLを圧縮することで見かけ上高速化させるものであって、実際の通信速度が上がっているわけではないんですが、実用上はこのスピードに見えると言うことです。数値並みの快適さは得られるので仕組みはどうでもよいかと。
※これはつまり http じゃない通信は本来のスピードでしか通信できないということも意味します。

上の結果で見ると U300 はきっちり 300kbps 出すようにチューニングされているようです。これにアクセラレーター設定すると見事に高速化します。1GB 定額はドコモの 3G 回線をそのまま使っているので、理屈の上では上限 14.4Mbps なわけですが、実際にはそこまで出るわけでもないし。というか、都会じゃなかったらこの程度なのねって感じ。これだけの差なら U300 で充分です。

テザリングする時はもちろん PC でもアクセラレーター設定をします。

SNAGHTML5d01e5

SNAGHTML5d2166

SNAGHTML5d46c1

 

ついでながら U300 で外から自宅のマシンにリモートデスクトップ接続もやってみましたが、画面の描画もキーボードやマウスの追随も問題ありませんでした(これも感覚的な感想で申し訳ないですが)。TrueColor だと描画でモタつく感じもありますが、色深度を 15ビットに落とせば 1440 x 900px  のサイズでも普通に操作できました(16ビットでもいいかもしれない)。
U300 でいいと決めたのはリモートデスクトップ接続が十分使えるからというのも大きかったです。
ちなみに自宅は RD Gateway の設定をしているので 443番ポートで通信しています。b-mobile が 3389番ポートを使わせてくれるか・・・は、そういえば試してなかった。

ということで、外出先で e-mobile なしでも満足のいくレベルで PC を使えます。
持ち物(Pocket Wifi は小さいとはいえ荷物であることには変わりない)も回線の契約数も減らせます。
ついでに 1GB 定額も役目を終えたので延長なしの方向です。

フォロー

Get every new post delivered to your Inbox.

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