Modifying the variable’s value
There are two ways
to modify the value
of a variable:
frxReport1.Variables['
My Variable 2'] := 10;
or
var
Index: Integer;
Variable: TfrxVariable;
{ search for the variable }
Index := frxReport1.Variables.IndexOf('
My Variable 2');
{ if it is found, change a value }
if Index <> -1
then
begin
Variable := frxReport1.Variables.Items[
Index];
Variable.Value := 10;
end;
It should be noted, that when accessing a report variable its value
is calculated
if it
is of string type. That means the variable which value
is '
Table1."Field1"' will return a value
of a
DB field, but
not the '
Table1."Field1"'
string. You should be careful when assigning a
string-
type values
to report variables.
For example, the next code will
raise exception "unknown variable '
test'" when running a report:
frxReport1.Variables['
My Variable'] := '
test';
because FastReport trying
to calculate a value
of such variable. The right way
to pass a
string values
is:
frxReport1.Variables['
My Variable'] := '
''
' + '
test' + '
''
';
In this
case the variable value -
string '
test' will be shown without errors. But keep
in mind that:
-
string should
not contain single quotes. All single quotes must be doubled;
-
string should
not contain #13#10 symbols.
In some cases it
is easier
to pass variables using a script.