PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > 概念 > ページレポート/RDLレポートの概念 > 式 > 共通の関数 |
データ領域のコントロールやグループ、データセット内でデータを操作するために、式に関数を使用することができます。これらの関数は[式エディタ]ダイアログで確認できます。式を設定できるプロパティについて、プロパティウィンドウのドロップダウンから<式...>を選択するとダイアログが表示されます。
[式エディタ]ダイアログでは、設定可能なフィールドがツリービュー形式で表示されています。[共通の関数]ノードを展開すると使用できる関数が表示されます。次の表は、式に設定できる関数の一覧です。
日付と時刻
以下のメソッドは、全てVisual BasicのDateAndTimeクラスのメソッドと同じメソッドです。詳細は、MSDNの「DateAndTime クラス」を参照してください。
|
|
数学
以下のメソッドは、全てSystem.Mathクラスのメソッドと同じメソッドです。詳細は、MSDNの「Math クラス」を参照してください。
|
|
|
検査
以下のメソッドは、全てVisual BasicのInformationクラスのメソッドと同じメソッドです。詳細は、MSDNの「Information クラス」を参照してください。
|
|
プログラムフロー
以下のメソッドは、全てVisual BasicのInteractionクラスのメソッドと同じメソッドです。詳細は、MSDNの「Interaction クラス」を参照してください。
|
|
集計
レポートコントロールに表示するデータを取得するために、式内に集計関数を使用することができます。ActiveReportsでは、RDL 2005(SQL Server 2005 におけるレポート定義言語)で定義されている集計関数といくつかの独自の拡張セットをサポートしています。これらの関数では、CumulativeTotalを除き、<スコープ>パラメータを追加することができます。
使用できる集計関数は以下の通りです。
関数 | 解説 | 例 |
---|---|---|
AggregateIf | ブール式に基づいて、式によって返された値のデータプロバイダからカスタム集計を計算するかどうかを決定します。 | =AggregateIf(Fields!Discontinued.Value=True, Sum, Fields!InStock.Value) |
Avg | 式に返されたNullでない値の平均を計算します。 | =Avg(Fields!Cost.Value, Nothing) |
Count | 式に返されたNullでない値の数を計算します。 | =Count(Fields!EmployeeID.Value, Nothing) |
CountDistinct | 式に返された、重複しない値の数を計算します。 | =CountDistinct(Fields!ManagerID.Value, "Department") |
CountRows | 式に返された、スコープにある行数を計算します。 | =CountRows("Department") |
CumulativeTotal |
式に返された現在と以前のページのグループ内の集計を表示します。 ※集計対象のグループは、ページ(FixedLayoutオブジェクト)のGroupingプロパティでグループ化したものが対象となります。
1つ目のパラメータに集計対象のフィールド名、2つ目のパラメータには集計関数を指定します。なお、サポートしている集計関数は、Sum, DistinctSum, Avg, Min, Max, Count, CountDistinct, StDev, StDevP, Var, VarP, Median, Mode, ToArrayです。 |
|
DistinctSum | 式に返された、指定した列について重複を除いた行の値の合計を計算します。 | =DistinctSum(Fields!OrderID.Value, Fields!OrderFreight.Value, "Order") |
First | 式に返された最初の値を表示します。 | =First(Fields!ProductNumber.Value, "Category") |
Last | 式に返された最後の値を表示します。 | =Last(Fields!ProductNumber.Value, "Category") |
Max | 式に返されたNullでない値の最大値を表示します。 | =Max(Fields!OrderTotal.Value, "Year") |
Median | 式に返された値の中値である値を表示します。集計対象の値の内、半分はこの値より大きく、残りの半分はこの値より小さくなります。 | =Median(Fields!OrderTotal.Value) |
Min | 式に返されたNullでない値の最小値を表示します。 | =Min(Fields!OrderTotal.Value) |
Mode | 式に返された値の間、最も良く表示される値を表示します。 | =Mode(Fields!OrderTotal.Value) |
RunningValue | 指定した集計関数の実行中の集計結果を表示します。 | =RunningValue(Fields!Cost.Value, Sum, Nothing) |
StDev | 式に返されたNullでない値の母標準偏差を計算します。 | =StDev(Fields!LineTotal.Value, "Order") |
StDevP | 式に返されたNullでない値の母標準偏差を計算します。 | =StDevP(Fields!LineTotal.Value, "Order") |
Sum | 式に返された、値の合計を計算します。 | =Sum(Fields!LineTotal.Value, "Order") |
Var | 式に返されたNullでない値の分散を計算します。 | =Var(Fields!LineTotal.Value, "Order") |
VarP | 式に返されたNullでない値の母分散を計算します。 | =VarP(Fields!LineTotal.Value, "Order") |
変換
以下のメソッドは、全て.NETフレームワークのConvertクラスのメソッドと同じメソッドです。詳細は、MSDNの「Convert クラス」を参照してください。
|
|
その他
ActiveReportsは、データを集計する以外にもいくつかの機能を提供しています。これらの関数とIIf関数と組み合わせることで、どのデータをどのように表示するかを指定することができます。
最初の4つは、RDL2005仕様にもとづいた関数です。詳細は、MSDNの「ReportViewerレポートの組み込み関数」を参照してください。 GetFieldsは、RDLの仕様を拡張する独自の機能です。
関数 | 解説 | 構文と例 | ||||
---|---|---|---|---|---|---|
InScope | 現在の値が指定したスコープ内にあるかどうかを判定します。 |
=InScope(<Scope>) |
||||
Level | 再帰型階層の現在の深さのレベルを返します。 |
=Level(optional <Scope>) |
||||
Previous | 指定したスコープの1つ前の値を返します。 |
=Previous(<Expression>) |
||||
RowNumber | 式に返されたスコープ内の実行中の行数を表示します。 |
=RowNumber(optional <Scope>) |
||||
GetFields |
Fieldsコレクションの現在の内容を格納しているIDictionary<string,Field>オブジェクトを返します。データ領域内で使用される場合にのみ有効です。この関数は、複雑な条件を扱うコードを書くことができます。 GetFields()なしで同等の関数を記述するには、メソッドに照会されたフィールドの各値を渡すことが必要になり、多くのフィールドを参照する場合には著しく複雑な記述になる可能性があります。 |
=GetFields()
|
CumulativeTotalを除くすべての関数には、集計の対象となるスコープがあります。スコープで、その関数の集計の対象とするグループやデータ領域、データセットを決定します。
スコープパラメータを指定しない場合(デフォルト)、スコープはレポートのコントロールが属する最も内側のグループになります。
スコープパラメータを指定する場合、パラメータには別のグループやデータセット、データ領域の名前を指定できます。ただし、スコープパラメータには、関数を設定するレポートコントロールよりも外側のグループしか指定できません。