使用报表变量时,引用“frxVariables”单元。 变量定义在“TfrxVariable” 类:

TfrxVariable = class(TCollectionItem)

published

property Name: String;     //Name of a variable

property Value: Variant;    //Value of a variable

end;

变量列表在“TfrxVariables” 类,有所有相关的方法:

TfrxVariables = class(TCollection)

public

function Add: TfrxVariable;   //Adds a variable to the end of the list

function Insert(Index: Integer): TfrxVariable;   //Adds a variable to the given position of the list

function IndexOf(const Name: String): Integer;   //Returns the index of a variable with the given name

procedure AddVariable(const ACategory, AName: String; const AValue: Variant);  //Adds a variable to the specified category

procedure DeleteCategory(const Name: String);   //Deletes a category and all its variables

procedure DeleteVariable(const Name: String);   //Deletes a variable

procedure GetCategoriesList(List: TStrings; ClearList: Boolean = True);   //Returns the list of categories

procedure GetVariablesList(const Category: String; List: TStrings);  //Returns the list of variables in the specified category

property Items[Index: Integer]: TfrxVariable readonly;  //The list of variables

property Variables[Index: String]: Variant; default;  //Values of variables

end;

如果变量的列表很长,可以按类别分组。例如,当有下列变量列表:

Customer name

Account number

in total

total vat

可以使用以下方式:

Properties

  Customer name

  Account number

Totals

  In total

  total vat

有以下局限:

- 必须创建至少一个类别

- 类别在data tree下层, 变量在第二层

- 类别不能嵌套

- 变量的名称必须是唯一的,在整体列表中,而不是在一个类别中

 

一:创建一个变量列表

A link to the report variables is stored in the “TfrxReport.Variables” property. To create a list manually, the following steps must be performed:

- clear the list

- create a category

- create variables

- repeat the 2 and 3 steps to create another category

二:清空变量列表

It is performed with the help of the “TfrxVariables.Clear” method:

frxReport1.Variables.Clear;

三:添加分类

必需至少创建一个类别, 类别和变量保存在一个list。 类别不同于变量是以一个空格开始,这是名字的第一个符号.所有的变量都是属于这一类别。

有两个方法添加类别:

frxReport1.Variables[' ' + 'My Category 1'] := Null;

or

var

Category: TfrxVariable;

Category := frxReport1.Variables.Add;

Category.Name := ' ' + 'My category 1';

四:添加变量

添加变量必须在类别添加以后, 在列表中变量名必须唯一, 并且必须在类别中。

这里有几个方法添加变量到列表:

frxReport1.Variables['My Variable 1'] := 10; //  添加(如果不存在) 或修改一个变量的值。

var

Variable: TfrxVariable;

Variable := frxReport1.Variables.Add;

Variable.Name := 'My Variable 1';

Variable.Value := 10;

以上2个方法都把变量添加到列表最后, 因此, 添加到最后的类别. 如果想添加到列表的指定位置,使用“Insert” 方法:

var

Variable: TfrxVariable;

Variable := frxReport1.Variables.Insert(1);

Variable.Name := 'My Variable 1';

Variable.Value := 10;

添加到指定的类别,使用“AddVariable” 方法:

frxReport1.Variables.AddVariable('My Category 1', 'My Variable 2', 10);

五:删除变量

frxReport1.Variables.DeleteVariable('My Variable 2');

六:删除分类

frxReport1.Variables.DeleteCategory('My Category 1');

七:修改变量值

八:脚本变量

你可以在TfrxReport.Script中定义脚本变量,用来代替report变量, 看看 report变量和 script变量的不同:

 

Report variables

Script variables

位置

In the report variables list, TfrxReport.Variables.

In the report script, TfrxReport.Script.Variables.

Variable name

May contain any symbols.

May contain any symbols. But if you want to use that variable inside the report script, its name should conform to Pascal identificator specifications.

Variable value

May be of any type. Variables of string type are calculated each time you access them, and are, in itself, an expressions.

May be of any type. No calculation is performed, behavior is like standard language variable.

可访问性

Programmer can see the list of report variables in the "Data tree" window.

The variable is not visible, programmer should know about it.

 

Working with script variables is easy. Just assign value to the variable this way:

frxReport1.Script.Variables['My Variable'] := 'test';

In this case FastReport will create a variable if it is not exists, or assign a value to it. There is no need to use extra quotes when assigning a string to that variable.

九:TfrxReport.OnGetValue中传递变量值

最后一种传递值到报表中的方法是使用 TfrxReport.OnGetValue 事件,这个方式可以得到动态值,以前的方法通过静态值。

举例说明使用方法. 报表中放一个文本对象,输入以下内容:

[My Variable]

创建 TfrxReport.OnGetValue 事件:

procedure TForm1.frxReport1GetValue(const VarName: String; var Value: Variant);

begin

if CompareText(VarName, 'My Variable') = 0 then

Value := 'test'

end;

运行报表,我们看到变量是显示正确的。 事件TfrxReport.OnGetValue 在遇到所有未知变量时调用 。

[翻译] FastReport 变量列表使用的更多相关文章

  1. FastReport 变量列表使用

    使用报表变量时,引用“frxVariables”单元. 变量定义在“TfrxVariable” 类: TfrxVariable = class(TCollectionItem) published p ...

  2. Jenkins可用环境变量列表以及环境变量的使用(Shell/Command/Maven/Ant)

    一.可用环境变量列表(以下来自google翻译): BRANCH_NAME 对于多分支项目,这将被设置为正在构建的分支的名称,例如,如果您希望从而master不是从特征分支部署到生产. CHANGE_ ...

  3. 存储过程里面使用in变量列表异常的处理

    在写一个存储过程的时候,由于需要用到类似:select id,name from tablename where id in(id1,id2,id3...)的查询语句,同时括号里面的变量是拼接得到的, ...

  4. Phpcms所有系统变量列表 Phpcms V9 文件目录结构

    Phpcms所有系统变量列表 用户变量: view plaincopy to clipboardprint? $_userid    用户id   $_username 用户名   $_areaid  ...

  5. Shell特殊变量列表

    特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传 ...

  6. shell-特殊变量列表

    特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数.有引号则引号内,作为一个参数传入. $@ 传递 ...

  7. UNIX高级环境编程(8)进程环境(Process Environment)- 进程的启动和退出、内存布局、环境变量列表

    在学习进程控制相关知识之前,我们需要了解一个单进程的运行环境. 本章我们将了解一下的内容: 程序运行时,main函数是如何被调用的: 命令行参数是如何被传入到程序中的: 一个典型的内存布局是怎样的: ...

  8. [翻译] FastReport TfrxReport组件使用

    一:加载和保存报表 报表默认保存在项目窗体文件中,大多数情况下,没有更多的操作要深圳市, 因此,你不需要采取特别措施来载入报告.如果你决定保存报表到文件或是数据库中 (这样更灵活, 比如修改报表不用重 ...

  9. Python 学习笔记5 变量-列表

    列表是python常用的一种变量. 是由一些列按照特定顺序排列的元素组成的.你可以创建包含字母表中的所有字母,数字.可以将任何东西都加入到列表中. 通常情况下,列表中都包含多个元素,所以建议变量的名称 ...

随机推荐

  1. conductor APIs

    任务和工作流元数据 端点 描述 输入 GET /metadata/taskdefs 获取所有任务定义 N / A GET /metadata/taskdefs/{taskType} 检索任务定义 任务 ...

  2. mysql与redis的区别与联系

    1.mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢. redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提 ...

  3. TOMCAT Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

    十二月 31, 2014 2:32:45 下午 org.apache.coyote.http11.AbstractHttp11Processor process信息: Error parsing HT ...

  4. 好用的模板引擎NVelocity

    CastleNVelocity-1.1.1,使用方法: 把dll放到项目中,添加引用,修改配置的文件夹以及数据模型,最后在逻辑代码中调用即可. 封装到CommonHelper.cs using Sys ...

  5. Our Journey of Xian Ends

    Our Journey of Xian Ends https://nanti.jisuanke.com/t/18521 262144K   Life is a journey, and the roa ...

  6. 分割回文串 II · Palindrome Partitioning II

    [抄题]: 给定一个字符串s,将s分割成一些子串,使每个子串都是回文. 返回s符合要求的的最少分割次数. [思维问题]: 不知道要用预处理字符串降低复杂度 [一句话思路]: 先把预处理获得s中回文串的 ...

  7. IIS支持IPA、APK文件的下载

    IIS里MIME类型中默认是没有ipa,apk文件的,所以无法直接通过网络下载.   解决方法如下: 1.打开IIS信息服务管理器,选中自已的网站,在右边面板中找到MIME类型. 2.双击打开,点击右 ...

  8. DNA motif 搜索算法总结

    DNA motif 搜索算法总结 2011-09-15 ~ ADMIN 翻译自:A survey of DNA motif finding algorithms, Modan K Das et. al ...

  9. Laravel 5.4+Vue.js 初体验:Laravel下配置运行Vue.js

    生产材料PHP:PHP 5.6+Laravel 5.4:https://github.com/laravel/laravel/releases/Composer:http://getcomposer. ...

  10. 获取GUID的GET网址:createguid.com

    1.在浏览器的地址栏中输入createguid.com,回车之后即可得到一个GUID 2.在JMeter中可以这样填写HTTP Request 然后通过正则表达式提取器提取GUID <texta ...