変数の一覧を使った作業
変数の概念については、対応する章で詳細に説明されています。簡潔に要点を思い浮かべてみましょう。
ユーザーは、レポートで 1 つまたは複数の変数を指定することができます。どの変数にも値または式を割り当てることができます。これらは、変数を参照するときに自動的に計算されます。変数は[データ ツリー]ウィンドウを介して視覚的にレポートに挿入することができます。レポートでよく使われる複合式のエイリアスに変数を使用すると便利です。
変数を使って作業するときは、frxVariables ユニットを使用する必要があります。変数は TfrxVariable
クラスで表されます。
TfrxVariable = class(TCollectionItem)
published
property Name: String; // 変数の名前
property Value: Variant; // 変数の値
end;
変数の一覧は TfrxVariables
クラスで表されます。これに、一覧を取り扱うために必要なすべてのメソッドが含まれています。
TfrxVariables = class(TCollection)
public
// 一覧の最後に変数を追加します
function Add: TfrxVariable;
// 一覧の指定された位置に変数を追加します
function Insert(Index: Integer): TfrxVariable;
// 指定された名前の変数のインデックスを返します
function IndexOf(const Name: String): Integer;
// 指定されたカテゴリに変数を追加します
procedure AddVariable(const ACategory, AName: String; const AValue: Variant);
// 1 つのカテゴリとそのすべての変数を削除します
procedure DeleteCategory(const Name: String);
// 1 つの変数を削除します
procedure DeleteVariable(const Name: String);
// カテゴリの一覧を返します
procedure GetCategoriesList(List: TStrings; ClearList: Boolean = True);
// 指定されたカテゴリ内の変数の一覧を返します
procedure GetVariablesList(const Category: String; List: TStrings);
// 変数の一覧
property Items[Index: Integer]: TfrxVariable readonly;
// 変数の値
property Variables[Index: String]: Variant; default;
end;
変数の一覧が長い場合は、それをカテゴリ別にグループ化すると便利です。たとえば、次のような変数の一覧があるとします。
Customer name
Account number
In total
Total vat
これを次のように表すことができます。
Properties
Customer name
Account number
Totals
In total
total vat
次の制限があります。
少なくとも 1 つはカテゴリを作成する必要がある
カテゴリはデータ ツリーの第 1 レベルを形成し、変数は第 2 レベルを形成する
カテゴリを入れ子にすることはできない
変数の名前は、カテゴリ内だけでなく一覧全体の中でも一意でなければならない