首页编程fastreport2.5(fastreport2.5 多条件判断语句)

fastreport2.5(fastreport2.5 多条件判断语句)

编程之家2024-01-29115次浏览

一、如何在FastReport的对象和表达式中使用变量

假设有一个职员表,包括字段N,Nname1,Name2和Name3。字段的名称在不同的时候作用是不一样的,一般用于数据库设计人员。也就是说,需要重新指定一个更有意义的名称用于插入到对象中。当然,变量不仅能用于数据库字段名称,也能用于算术表达式。一个例子就是对数据字段、数值、日期或时间求和。更多的使用变量的例子可以从报表演示的程序代码中找到。

fastreport2.5(fastreport2.5 多条件判断语句)

从操作一个变量列表,你必须从“文件|数据字典…”菜单中打开一个对话框。

变量列表在屏幕的左边。从这个图像可以看出,这个列表是一个两层结构:它由分类和各分类所包含的一个或多个变量组成。分类仅用于对变量逻辑上进行分组,是不能插入到报表中的。有关这个技术的详细说明参考“设计器”部分。

但是,FastReport数据字典中的变量描述不能单独工作。如果没有定义相关代码,FastReport会按这样的假设查找:

在数据字典中有这样一个变量;

它是一个数据字段;

它是一个类似于Page#,Date,Time或其它类型的专用变量;

fastreport2.5(fastreport2.5 多条件判断语句)

它是frVariables列表中的变量;

它是一个对象的属性;

它是一个frConsts中的常量;

同样,如果使用控件的OnGetValue事件,它在所有验证之前调用。如果事件处理返回一个值,变量将被初始化,并且不对它做进一步的验证。

这种方法使得报表中的变量赋值方法具有多样性。它推荐为:

当生成过程中将一个不可改变的静态记录值赋值给一个记录时,可以使用一个frVariables,就象这样:

fastreport2.5(fastreport2.5 多条件判断语句)

frVariables['ReportingPeriod']:='January';

frReport1.ShowReport;

当生成过程中将一个可改变的记录值赋值给一个记录时,你可以使用数据字典或TfrReport.OnGetValue事件处理,就象这样:

procedureTForm1.frReport1GetValue(constParName:String;varParValue:Variant);beginifAnsiCompareText(ParName,'ReportedPeriod')=0then

ParValue:=Table1OtchPeriod.Value;end;也可以通过编程为一个变量列表赋值:

withfrReport1.DictionarydobeginVariables['Number’]:=1;

Variables['Sum']:='0.2*Table1.Summa';

Variables['Date']:=''''+'January'+'''';end;(在这个例子中需要另外说明的是要定义一个字符常量)。

FastReport中指定给数据字典中的变量的字符串,可以作为一个表达式被计算。常常用来使用一个没有在数据字典中定义的变量。

必须记住的是如果你从frVariables列表中使用变量或者你通过OnGetValue事件遍历它们,它们不能放进数据字典。

二、如何利用FastReport的对话框过滤数据

FastReport对话框可以用来过滤报表中的数据。例如,你有一个带有全体员工名单的报表。通过使用一个对话框,你可以对数据进行筛选,以便显示所选取的员工。要使用数据过滤,初始报表必须包含了所有的数据.

实现数据过滤的最简单的方法就是使用"Data" band上面的Filter属性。在band编辑器中,您可以指出过滤器表达式,例如

通过对话框,你{-胆蒂感郦啡垫拾叮浆可以从用户那里获取一个值,并将该值使用到过滤器表达式中。如果需要简单的一个值时则一般用该方法。如果任务要显示值列表或者从表中查询一个或者几个值,实现起来就相当麻烦。要实现它,你需要使用脚本,让它执行以下操作:

获取数据源

初始化数据

用数据源中的数据填充ListBoxControl

选择雇员后,过滤表达式将被用在"Data" band中

更多内容可参考资料

三、如何在fastreport中使用数据筛选

首先打开FastReport软件,在数据目录中右键点击,新建一个数据源;根据向导提示填写完数据库的连接信息。

物理数据源新建完成之后如下图所示,有一个之前选择数据表的目录,然后可以通过这些数据表来在page页面里面绑定数据和布局

可以在page的startpage事件中自定义数据的连接与过滤条件,这些数据库连接(strConnection)与过滤条件(strSql)可以是从外部作为参数传入进来的。

绑定之后一定要记得调用Init()方法,不然表格就没有数据加载!

如果在同一个report里面有多个地方使用这个表格(或者是循环使用,比如在for循环里面,只是过滤条件不一样),都是按上面的GetReportDataSource方法来获取表格并初始化,表格里面的数据其实是每次循环使用过滤条件得到结果的并集,就是每次操作的结果都会加入到表格中,那么结果可能就不是我们想要的了!

这时我们在获取数据表,并自定义绑定数据连接和过滤条件后,进行初始化之前就需要设置表格的ForceLoadData属性为true;如下图所示:

步骤阅读

6

通过官方的帮助文档可以知道设置了这个属性,在每次初始化时都会清空之前的数据,重新加载数据。如果调用次数多也会影响加载速度,所以默认值是false

windows xp序列号(Windows序列号大全)安卓开机画面(android系统开机画面_Android开机画面)