SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

ASP.NETで帳票の印刷機能を実現しよう

  • X ポスト
  • このエントリーをはてなブックマークに追加

手順2. レポートの作成

 [新しい項目の追加]で、図3のように[レポート Visual Basic]を選択して、新規にレポートを作成します。名前は既定の「Report1.rdlc」のままとします。

図3 [新しい項目の追加]ダイアログ(レポートの追加)
図3 [新しい項目の追加]ダイアログ(レポートの追加)

 ドキュメントウィンドウには、「Report1.rdlc」のレポートデザイナーが表示されます。

図4 レポートデザイナー
図4 レポートデザイナー

 初期状態では、図4のように白いキャンバスのみが表示されています。これは「本文」で、テーブルからのデータを繰り返し表示する、根幹の領域です。この後、以下の手順に従って、レポートの設定を行っていきます。

  1. 用紙の設定(A4横)
  2. ページヘッダーとページフッターの設定
  3. Tablix(本文の繰り返し行の枠)の設定
  4. フィールドの配置(本文)
  5. 項目名の配置(ページヘッダー)
  6. ページなどの設定(ページフッター)

(1)用紙の設定

 図4のレポートデザイナーの白い用紙の外の灰色の部分で右クリックし、[レポートのプロパティ]をクリックすると、図5のようなダイアログが開きます。左ペインで[ページ設定]を選択し、[印刷の向き]を「横」に設定し、[余白]グループの[左]、[右]、[下]を1cmにします。なお、[上]はパンチ穴のため、2cmのままにしておきます。

図5 [レポートのプロパティ]ダイアログ
図5 [レポートのプロパティ]ダイアログ

(2)ページヘッダーとページフッターの設定

 レポートデザイナーの白い用紙の外の灰色の部分で右クリックして、「ページヘッダーの追加」をクリックすると、白い用紙の上にページヘッダーの領域が追加されます。

 同様に、「ページフッター」も追加します(図6)。

図6 ページヘッダーとページフッターを追加したところ
図6 ページヘッダーとページフッターを追加したところ

 また、[プロパティ]ウィンドウで「ページヘッダー」を選択し、[BackgroundColor](背景色)にLightGrey(淡い灰色)を設定して、項目名とデータとの区別を付けます。

 ページヘッダーとページフッターの[Height](高さ)は、部品の配置の際に自動的に広がってしまうので、後で設定します。

 なお、「本文」の高さは、次の「Tablix」の高さを指定すれば、その単位で行が繰り返されますので、特に指定する必要はありません。

(3)Tablix(本文の繰り返し行の枠)の設定

 [ツールボックス]ウィンドウの[レポートアイテム]グループから、[一覧]を「本文」にドラッグ&ドロップし、「データセットのプロパティ」ダイアログを開きます(図7)。

図7 「データセットのプロパティ」ダイアログ
図7 「データセットのプロパティ」ダイアログ

 [名前]には既定で「DataSet1」と入力されています。

 [データセット]から「DataSet1」、「使用できるデータセット」から「StoredProcedure1」を選択し、[OK]をクリックするとダイアログが閉じ、「Tablix」というオブジェクト(既定の名前は「Tablix1」)が配置されます(図8)。

図8 「Tablix」が配置されたところ
図8 「Tablix」が配置されたところ

 [プロパティ]ウィンドウで、[Location]-[Left](左)と[Top](上)とに0cmを設定します。また、[Size]-[Width](幅)に27.7cmを設定します。

 [Height](高さ)は、部品の配置の際に自動的に広がってしまうので後で設定します。

(4)フィールドの配置(本文)

 [レポートデータ]ウィンドウを表示させると、[DataSet1]-[DataSet1]の配下に、テーブルのフィールド名が表示されています。[レポートデータ]ウィンドウが表示されていない場合は、レポートデザイナーをアクティブにする必要があります。

 まず、1番目のフィールド「MemberID」を配置してみましょう。[レポートデータ]ウィンドウから「MemberID」をTablix内にドラッグ&ドロップします(図9)。

図9 テキストボックスを配置したところ
図9 テキストボックスを配置したところ

 [プロパティ]ウィンドウで「MemberID テキストボックス」を選択し、[Location]-[Left](左)と[Top](上)とに0cmを設定します。また、[Size]-[Width](幅)に1.2cm、[Height](高さ)に0.4cmを設定します。続いて、[Font]-[FontFamily](フォント)にArial、[FontSize](フォントサイズ)に10ptを指定します。

 他のフィールドもTablix内に配置して、表3のようにプロパティを設定します。

表3 テキストボックスの設定
フィールド名 高さ フォント フォントサイズ
1 MemberID 0.0cm 0.0cm 1.2cm 0.4cm Arial 10pt
2 SeiKana 1.2cm 0.0cm 2.6cm 0.3cm MS Pゴシック 7pt
3 SeiKanji 1.2cm 0.3cm 2.6cm 0.4cm MS ゴシック 10pt
4 MeiKana 3.8cm 0.0cm 2.6cm 0.3cm MS Pゴシック 7pt
5 MeiKanji 3.8cm 0.3cm 2.6cm 0.4cm MS ゴシック 10pt
6 ZipCode 6.4cm 0.0cm 1.9cm 0.4cm Arial 10pt
7 Address1 8.3cm 0.0cm 9.4cm 0.4cm MS ゴシック 10pt
8 Address2 8.3cm 0.4cm 9.4cm 0.4cm MS ゴシック 10pt
9 TelNum 17.7cm 0.0cm 2.8cm 0.4cm Arial 10pt
10 MobileNum 17.7cm 0.4cm 2.8cm 0.4cm Arial 10pt
11 Remarks 20.5cm 0.0cm 7.2cm 0.8cm MS ゴシック 10pt

 続いて、罫線を描きましょう。まず外枠を描きます。「Tablix1」を作成した際に、その内部に四角形(既定値は、「Rectangle1」)も同じサイズで自動作成されていますので、これを使います。図10の右下部分の[プロパティ]ウィンドウから[Rectangle1 四角形]を選択し、[BorderStyle]-[Default]をSolidにすれば外枠が描かれます。

図10 四角形のプロパティ
図10 四角形のプロパティ

 次は、データ間の縦罫線です。[ツールボックス]ウィンドウの[レポートアイテム]から[線]をドラッグ&ドロップします(図11)。既定では名前は「Line1」になります。

図11 線を描いたところ
図11 線を描いたところ

 [プロパティ]ウィンドウで、[折れ線]を選択し、[Location]-[Left]に1.2cm、[Top]に0cmを設定します。また、[EndPoint]-[Horizontal](水平)に1.2cm、[Vertical](垂直)に0.8cmを設定します。他の[線]についてもドラッグ&ドロップして、表4のようにプロパティを設定します。

表4 [線]の設定
水平 垂直 備考
1 1.2cm 0.0cm 1.2cm 0.8cm 会員IDと姓の間
2 3.8cm 0.0cm 3.8cm 0.8cm 姓と名の間
3 6.4cm 0.0cm 6.4cm 0.8cm 名と〒の間
4 8.3cm 0.0cm 8.3cm 0.8cm 〒と住所の間
5 17.7cm 0.0cm 17.7cm 0.8cm 住所と電話の間
6 20.5cm 0.0cm 20.5cm 0.8cm 電話と備考の間

 部品の配置が終わりましたので、「Tablix1」の[Height]に0.8cmを設定します。

 これで「本文」部分の設定は完了です(図12)。繰り返しになりますが、「Tablix」の高さで行が繰り返されますので、「本文」の高さは指定する必要はありません。

図12 「本文」の設定が終わったところ
図12 「本文」の設定が終わったところ

(5)項目名の配置(ページヘッダー)

 会員ID用の項目名として、[ツールボックス]ウィンドウの[レポートアイテム]から[テキストボックス]をページヘッダの部分にドラッグ&ドロップします。

 [プロパティ]ウィンドウで、[Location]-[Left]と[Top]とに0cmを設定し、[Size]-[Width]に1.2cm、[Height]に0.8cmを設定します。

 [Font]-[FontFamily]にMS Pゴシック、[FontSize]に10ptを指定します。

 また、テキストボックスをダブルクリックし、内部にカーソルを表示させ、「会員ID」と入力します。他のテキストボックスも、表5のようにプロパティと入力値を設定します。なお、[FontFamily]はすべてMS Pゴシック、[FontSize]はすべて10ptにします。

表5 ページヘッダーのテキストボックスの設定
高さ 入力値
1 0.0cm 0.0cm 1.2cm 0.8cm 会員ID
2 1.2cm 0.0cm 2.6cm 0.8cm
3 3.8cm 0.0cm 2.6cm 0.8cm
4 6.4cm 0.0cm 1.9cm 0.8cm
5 8.3cm 0.0cm 9.4cm 0.8cm 住所
6 17.7cm 0.0cm 2.8cm 0.8cm 電話
7 20.5cm 0.0cm 7.2cm 0.8cm 備考

 ヘッダーにも、罫線を描きましょう。まず外枠を描きます。[プロパティ]ウィンドウで、[ページヘッダー]を選択し、[BorderStyle]-[Default]をSolidにします。

 項目名間の縦罫線は、「本文」のデータ間の縦罫線とまったく同じ設定(表3)で描けます。

 部品の配置が終わりましたので、[ページヘッダー]の[Height]に0.8cmを設定します。

 これでページヘッダーの設定は完了です(図13)。

図13 ページヘッダーの設定が終わったところ
図13 ページヘッダーの設定が終わったところ

(6)ページなどの設定(ページフッター)

 ページフッターには、テキストボックスを使って「帳票名」や、[レポートデータ]ウィンドウの[組み込みフィールド]にある[ページ番号]、[総ページ数]、[実行時間]を適宜使って、見やすいレポートを作るとよいでしょう(図14)。

図14 [レポートデータ]の組み込みフィールド
図14 [レポートデータ]の組み込みフィールド

 表6のように設定してみましょう。なお、[TextAlign]はすべて「Center」にします。

表6 ページフッターのコントロール設定
コントロール 高さ 入力値(フォント)
テキストボックス 3.0cm 0.1cm 5.0cm 0.6cm 会員名簿(MS ゴシック)
テキストボックス 12.5cm 0.1cm 0.5cm 0.6cm P.
ページ番号 13.0cm 0.1cm 0.5cm 0.6cm  
テキストボックス 13.5cm 0.1cm 0.5cm 0.6cm /
総ページ数 14.0cm 0.1cm 0.5cm 0.6cm  
実行時間 19.0cm 0.1cm 5.0cm 0.6cm  

 部品の配置が終わりましたので、[ページフッター]の[Height]に0.8cmを設定します。

 これでページフッターの設定は完了です(図15)。

図15 ページフッターの設定が終わったところ
図15 ページフッターの設定が終わったところ

 これで、レポート「Report1.rdlc」が完成しましたので、タブの[×]をクリックし、変更を保存して、レポートデザイナーを閉じてください。

次のページ
手順3. レポートを表示させるWebフォームの作成

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 遠藤 存(エンドウ アリ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5910 2011/05/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング