某些情况下,我们可能需要传递变量给FastReport,并且将其显示在数据树的变量树中.如下图中的Customer 和Company Info 节点下的变量
自定义变量加入到数据树中的代码如下:
with FfrxReport.Variables do
begin
//加入分组(必须有前导空格格,标识为一个分类)
CategoryName:='Customer';
if IndexOf(' ' + CategoryName) = -1 then Add.Name:=' ' + CategoryName;
//当前登录用户
FfrxReport.Variables.AddVariable(CategoryName, 'AppUserName',
Format('''%s''', [iDAppInfo.UserName]));
//加入皮肤文件目录
FfrxReport.Variables.AddVariable(CategoryName, 'SkinRootFolder',
Format('''%s''', [iDAppInfo.SkinsRootFolder]));
//加入临时文件目录
FfrxReport.Variables.AddVariable(CategoryName, 'tempFolder',
Format('''%s''', [GetEnvironmentVariable('temp')]));
end;
上述代码的要点是:
1、Category增加时,必须判断是否已经存在.如果不加判断,直接增加,会造成数据树中出现多个Category;
2、增加字符型变量时,必须用引号括住,否则报表运行时,会提示表达式错误.
3、增加变量时,可以不用判断变量是否已经存在.变量存在的,程序会自动覆盖原来的值(已经检查过FastReport代码).