5分でわかるActiveReports帳票(2013年度版)-ページレポートにおけるグループ化と式
ActiveReports for .NET 7.0Jで作るサンプル帳票(4)
ダウンロード サンプルファイル (43.2 KB)
式
単純なレポートの場合、比較的簡単なデザイン作業で実現することができました。ただし、実際のレポートにはいろいろな要望が存在します。例えば上記レポートについて、「売上金額を千円単位で表示したい」という要望が出てくるかもしれません。SQL文を工夫することで実現することも可能ですが、さらに複雑な要望になるとSQL文だけで対処するのは難しくなります。
フィールドを設定した詳細行のデザイン画面を見ると、=[CategoryName]とか=[ProductSales]のように、イコールと角カッコでフィールド名が挟まれたものが表示されています。このような記述をページレポートでは「式」と言います。
デザイン画面上に表示されている文字列は、そのTextBoxコントロールのValueプロパティの値です。なお、デザイン画面上では=[ProductSales]と表示されておりますが、プロパティウィンドウには=Fields!ProductSales.Valueと表示されます。これは、デザイン画面上では短縮形で表示されているためです。
| 短縮形 | =[ProductSales] |
|---|---|
| 基本形 | =Fields!ProductSales.Value |
ページレポートの式は、Visual Basic.NET類似の構文で記述される一種のスクリプトです。式を使用することで、データを加工して表示することや、より高度なレイアウトを実現できるようになります。
式の記述
式の記述方法を見てみましょう。詳細行のTextBoxコントロールを選択した状態で、プロパティウィンドウのValueプロパティを選択します。すると右端にボタンが表示されますのでクリックしてください。ドロップダウンリストが表示されます。
リストの一番上に表示されている「〈式…〉」を選択すると、式エディタダイアログが表示されます。
式エディタでは、短縮形ではなく基本形で式を表示/編集します。
式の先頭に付いているイコールは「式として評価する」ための記号なので、固定文字列を表示させる場合以外は常に必要です。
例えば「=Fields!ProductSales.Value」という式は、「ProductSales」という名前のフィールドから得られる値を出力するということを表しています。このフィールドの値を1000で割った時の値を得たい場合には、以下のような式を設定します。
=Fields!ProductSales.Value /1000
さらに、末尾に「千円」とつけたい場合には、&で文字列連結を行い、以下のように設定します。
=Fields!ProductSales.Value /1000 & "千円"
これで、「ProductSales(売上金額)」が千円単位で表示されるようになります。
式で使える関数など
式で使える関数、演算子、フィールドは多数あります。詳しくは、製品ヘルプの[概念]-[ページレポートの概念]-[式]をご覧ください。ここでは代表的なものをいくつか紹介します。
演算子
通常の四則演算や、Visual Basicで一般的な演算子は使用可能です。上記の例では除算の「/」と連結の「&」を使っています。
日付・時刻
現在の日付時刻を取得するためのフィールドが、以下の形で用意されています。
=Globals!ExecutionTime
また、Microsoft.VisualBasic.DateAndTimeのメソッドが使えるので、例えば西暦年だけを抽出したい場合は以下のようにします。
=Year(Globals!ExecutionTime)
これはデータソースからの値に適用することも可能です。例えばDateTime型のフィールド「DateFieldX」に対してYearメソッドを適用する場合、以下のような式になります。
=Year(Fields!DateFieldX.Value)
ページ番号・総ページ数
現在のページ、総ページを取得するフィールドが用意されています。
現在のページ:=Globals!PageNumber 総ページ:=Globals!TotalPages
プログラムフロー
Microsoft.VisualBasic.InteractionクラスのIIFメソッドが使えます。(C#の三項演算子「?:」に類似します)。例えば、FieldAが偶数か奇数かによってデータを取得するフィールドをFieldBとFieldCで切り替える場合、以下のような式になります。
=IIF(Fields!FieldA.Value mod 2 = 0, Fields!FieldB.Value , Fields!FieldC.Value )
この記事は参考になりましたか?
- この記事の著者
-
グレープシティ株式会社 ActiveReportsチーム(グレープシティカブシキガイシャ アクティブレポートチーム)
宮城県仙台市に本社を構えるグレープシティでは、日本の業務に適したシステムをより早く開発するためのソフトウェアを提供しています。エンドユーザーの利用しやすさ、幅広いユーザー環境への対応、そして何よりプログラマの作業を軽減することを一番に目指しています。 ActiveReportsは、帳票開発に必要なあらゆる機能を備えた当社を代表するコンポーネントの1つ。1998年の発売以来、日本だけでなく全世界で多数の帳票開発者に使用されています。製品開発は同チームが中心になり、「日本仕様」の厳しい要望を実現することを目指しています。...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

