PR

DataGridコントロールの新しい2つの機能を使う

2010年6月15日(火)
PROJECT KySS

スクロールしなければ表示されないデータをすべて印刷する

今回は、業務用アプリケーションでは最も使用頻度の高い、DataGridを用いたサンプルを2つ紹介します。1つは印刷処理、もう1つは、フルスクリーンモードのサンプルです。

まず、印刷のサンプルから説明します。前回は、Silverlight 4でサポートされた印刷機能を紹介しました。しかしながら、前回の方法では、 DataGridコントロールのデータ件数が多く一度に表示しきれない場合、画面上に表示されているデータしか印刷できません。

そこで、スクロールしなければ表示されないすべてのデータを印刷できるサンプルを作ってみましょう。

今回は1ページ内に収まるデータを印刷する方法について解説しますが、もちろん、複数ページに渡るデータも印刷できます。また機会があれば紹介していきたいと考えています。

このサンプルのプロジェクト・ファイルは、こちらからダウンロードできます。

 今回は、氏名の「読み(先頭の1文字)」あるいは「年齢」でグループ分けしたデータを、DataGridコントロールに表示します(図1、図2)。 一画面には表示しきれない件数のサンプル・データをバインドしていますので、スクロールバーが表示されています。

この画面上から[印刷実行]ボタンをクリックします。Microsoft XPS Document Writerを選択して[印刷]ボタンをクリックし、 DataGridGroup.xpsというファイル名で書き出します。書き出されたXPSファイルをビューアーで閲覧すると、図3のようにDataGridコントロールにバインドしたデータがすべて出力されています。

氏名の読み(先頭の1文字)でグループ分けされたデータがDataGridに表示されている。

図1:氏名の読み(先頭の1文字)でグループ分けされたデータがDataGridに表示されている。(クリックで拡大)

年齢でグループ分けされたデータがDataGridに表示されている。

図2:年齢でグループ分けされたデータがDataGridに表示されている。

DataGridコントロールにバインドされたデータがすべて出力されている。

図3:DataGridコントロールにバインドされたデータがすべて出力されている。

新規プロジェクトの作成と、印刷用データの追加

では、早速サンプルを作成していきましょう。

前回までのサンプル作成時と同様の手順で、新規Silverlight 4プロジェクト(プロジェクト名は「SL4_DataGridGroup」)を作成してください。 プロジェクト依存関係も設定してください。

前回同様、印刷用のサンプル・データ(リスト1)を追加しておきます。このデータはサンプル用のダミーです。 また、このXMLデータを処理するため、「Project/Add Reference」からSystem.Xml.Linqを追加しておきます。

リスト1 DataGridコントロールにバインドするXML文書(sampleData_Group.xml)

<?xml version="1.0"??>

 
    愛媛花子氏名>
    え読み>
    30年齢>
    松山市道後1-1-1住所>
    道後IT株式会社勤務先>
  情報>
 
    夏目団吾氏名>
    な読み>
    56年齢>
    松山市湯渡2-2-2住所>
    市立松山中学校勤務先>
  情報>
  ~情報>繰り返し、略~
顧客情報>

四国のSOHO。薬師寺国安(VBプログラマ)と、薬師寺聖(デザイナ、エンジニア)によるコラボレーション・ユニット。1997年6月、Dynamic HTMLとDirectAnimationの普及を目的として結成。共同開発やユニット名義での執筆活動を行う。XMLおよび.NETに関する著書や連載多数。最新刊は「Silverlight実践プログラミング」両名とも、Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。http://www.PROJECTKySS.NET/

連載記事一覧

Think IT会員サービスのご案内

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスのご案内

関連記事