Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

5分でわかるActiveReports帳票(2013年度版)-動的なレポート

ActiveReports for .NET 7.0Jで作るサンプル帳票(5)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 今回はActiveReportsのセクションレポートで動的な処理を行う方法について解説します。フィールド式やコードで表示内容をカスタマイズする方法や、データソースを変更する方法を紹介します。また、セクションレポートを単一のXMLファイルに保存する方法と、スクリプトを使って動的に処理する方法も紹介します。

目次
備考

 本稿は、連載『5分でわかるActiveReports帳票(2007年度版)』(渡辺俊史・宮本奈紗 著)の増補改訂版です。

セクションレポート:動的な処理をするレポート

 本記事の第1回第3回ではセクションレポートの使い方を紹介しましたが、そこで紹介したレポートはデータベースから取得したデータをそのまま表示するものでした。今回はそのデータを加工し、動的に表示内容を変更する方法を紹介します。

 データを加工する方法としては、以下のようなものがあります。

1)TextBoxコントロールのOutputFormatプロパティに書式を設定する

 TextBoxコントロールには出力する値の書式を設定するためにOutputFormatプロパティが用意されております。こちらについては第3回の「コラム:書式について」をご覧ください。

2)対象コントロールのDataFieldプロパティに式を記述する

 DataFieldプロパティに記述する式を「フィールド式」と言います。

3)ActiveReportsが提供するイベントに、データを制御するコードを記載する
4)計算フィールドを作成し、それをDataFieldプロパティに設定する

 「計算フィールド」は、2の「フィールド式」を使った処理を、レポートデータソースに含めるものです。今回は詳しい説明を省略いたしますが、興味がある方は製品ヘルプの[概念]-[セクションレポートの概念]-[データ連結]-[計算フィールド]をご覧ください。

 今回は、フィールド式コードの使い方について解説します。

フィールド式

 TextBoxなどのセクションレポートのコントロールには、DataFieldプロパティがあります。通常はここにデータソース内のフィールド名を設定します。

 このときはフィールド名そのものではなく、フィールドを使用した式を記述することで、データを加工して表示することができます。

DataFieldプロパティへの式の記述
DataFieldプロパティへの式の記述

 フィールド式の先頭には「=」をつけます。=の後には、フィールドを含めたC#言語構文の「式」を記述します。

 例えば、金額を表すフィールドProductSalesがあるとします。これを千円単位で表示したい場合には以下のようにします。

=ProductSales/1000

 文字列の加工に使用することもできます。OutputFormatプロパティを使った処理でも加工は可能ですが、フィールド式を使って単位「千円」をつけて表示したい場合、以下のようになります。このときの「+」はC#言語の文字列連結演算子です。

=ProductSales/1000 + "(単位千円)"

  C#の式が使用できるので、三項演算子を使って簡単な条件判断を行うことも可能です。例えば、フィールド「ProductSales」の値が10000以上の場合は「一万円以上」、小さい場合は「一万円未満」と表示したい場合、以下のようになります。

=ProductSales => 10000 ? "一万円以上" : "一万円未満"

 「フィールド式」と言っていますが、必ずしもフィールドを使用しなければならないわけではなく、.NET Framework標準のクラスも一部使うことができます。例えば、DateTime.Nowプロパティから現在の日付を取得し、AddDaysメソッドで1日追加した日付を表示したい場合、以下のようになります。

=System.DateTime.Now.AddDays(1).ToString("明日はd日")

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:5分でわかるActiveReports帳票

もっと読む

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5