Работа со списком переменных
Переменные были подробно рассмотрены в соответствующей главе руководства пользователя. Кратко напомним суть. В отчете можно определить одну или несколько переменных. Каждой переменной можно присвоить значение или выражение, которое будет автоматически вычисляться при обращении к переменной. Переменные можно визуально вставлять в отчет, пользуясь окном "Дерево данных". Переменные удобно использовать для замещения сложных выражений, которые часто используются в отчете.
Для работы с переменными необходимо использовать модуль 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);
// Удаляет категорию и все ее переменные
procedure DeleteCategory(const Name: String);
// Удаляет переменную
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;
Если список переменных велик, удобно сгруппировать его по категориям. Например, имея список переменных:
название предприятия
р/счет
итого
итого ндс
мы можем представить его в виде:
Реквизиты
название предприятия
р/счет
Итоги
итого
итого ндс
Имеются следующие ограничения:
обязательно наличие хотя бы одной категории
категории образуют первый уровень дерева данных, переменные - второй
категории не могут быть вложенными
имена переменных должны быть уникальны в пределах всего списка, а не в пределах категории