ページレポートのスクリプト
式だけで高度な制御を行うことが可能ですが、より複雑な処理を実装する場合や、同じ処理を複数の箇所で使用したい場合、メンテナンス性に問題が生じる場合があります。このように複数の箇所で使用する複雑な処理は、「スクリプト」タブの中に関数として定義しておき、それを参照することができます。
ページレポートのデザイン画面には、「スクリプト」タブがあります。これを開いてVisual Basicの構文でスクリプトを記述します。
例えば、先程の「千円単位で表示する」という処理を関数として定義する場合、以下のようになります。
Public Function To1000Yen(value As Integer) As String Dim v As Single = value / 1000 Return v & "千円" End Function
この関数を呼び出す場合も式を使います。具体的には「=Code.〈メソッド名〉」と記述します。例えば、以下のようになります。
=Code.To1000Yen(Fields!ProductSales.Value)
上記の式では、関数「To1000Yen」の引数に、処理する値を与えるフィールドを設定しています。
式はTextBoxコントロールのValueプロパティだけでなく、他のさまざまなプロパティでも使用できます(ただしExpressionInfo型のプロパティに限ります)。
例えば、明細などで一行おきに別の背景色を設定したい場合、BackGroundColorプロパティに式を設定することで実現できます。
Tableの詳細行にあるTextBoxコントロールのBackGroundColorプロパティに、以下の値を設定すると、背景色を一行おきに変化させることができます。
=iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")
ぜひ試してみてください。
Tableでのグループ化
Tableでは、データのグループ化を行うことが可能です。
左端の行タブを右クリックし、「グループの挿入」を選択します。グループヘッダ行とフッタ行がTableに追加されます。
上から、テーブルヘッダ、グループヘッダ、詳細、グループフッタ、テーブルフッタです。
グループを追加すると、Tableグループダイアログが出てきます。ここで、グループのキーとするフィールドを式で指定します。ここでは、CategoryIDフィールドを指定します。
Tableにグループヘッダとフッタが追加され、CategoryIDの値によってグループ分けされるようになりました。なお、Tableグループダイアログは、Table全体の設定ダイアログから呼び出すことも可能です。