趣百科

fastreport使用入门教程之参数查询报表

编辑:Simone 2024-12-08 06:09:41 600 阅读

fastreport使用入门教程之参数查询报表

fastreport使用入门教程之参数查询报表,我们创建一个比较复杂一点报表,在报表输出之前,在对话框中输入参数查询。

参数查询报表

我们创建一个比较复杂一点报表,在报表输出之前,在对话框中输入参数查询。在上面的报表中在点击新报表,重新创建一个空白报表。

切换到data页,放置ADO Query组件到面板上,双击组件单出编辑器,输入查询语句:

select * from Customer where CustNo > :p1

加入一个对话框窗体,组织组件如下:

设置组件属性:

Label1:

Caption = '选择CustNo大于'

Edit1:

Text = '2000'

Button1:

Caption = '确定'

ModalResult = mrOk

Button2:

Caption = '取消'

ModalResult = mrCancel

打开Query的参数params属性编辑器对话框,设置参数:

回到报表设计器页面,组织报表结构如下:

进行预览,输入参数,查看显示结果。

同为比较常用的报表工具,FineReport对报表中参数的解决方案思路有相同,但具体的实现方式存在差异,主要有三种实现方式,大概如下:

参数控件绑定数据

1.描述

FineReport为了让用户快速的实现参数查询数据功能,提供了专门的参数界面,用来放置与查询相关的控件,如下图:

2.示例

根据下图我们制作一个简单的查询界面,从而了解参数查询界面的具体制作方法。

2.1打开报表

打开报表:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\Parameter\Parameter.cpt,这张模板是模板参数章节的示例模板,该模板中添加了参数界面,以此模板为例来讲述参数界面的一些使用方法。

2.2参数布局

按照下图所示,将控件拖至相应的位置,如下:

另:参数界面采用绝对布局方式,因此可以将控件拖至面板中的任何位置。

2.3参数控件编辑风格

默认的参数控件都是文本框,有时如希望使用日期控件来选择日期,或者下拉框直接选择数据,这就需要为参数控件定义编辑风格了。

如将地区控件设为下拉框。选中地区控件,选择控件中的扳手,在下面的对话框中选择控件类型为下拉框:

注:如果已经选择控件类型之后,又需要重新修改,那么需要删除原来的控件,再在控件列表中拖拽您需要的控件类型至参数面板中,然后修改控件名与参数名称一致即可。

然后在属性表的基本属性>数据字典中,按照下图设置下拉框的数据:

注:给控件设置数据字典,即为控件绑定待选值,一般适用于下拉框、下拉树这类可以直接选择值的控件。

另:如果控件与数据集参数绑定,数据集参数的默认值是无法传递到参数面板控件中的,控件默认值需要另外设置,详细请参照控件默认值,但是模板参数的默认值是可以传递到控件的默认值中的,无需再次设置。

2.4控件名称

参数与控件是通过控件名称进行绑定的,即控件名与参数名保持一致,如果参数控件是通过点击右下角的以下参数未生成按钮生成的,那么控件名会自动与参数就行绑定,如果是自己拖曳的,就需要在控件名属性处修改控件名,使之与参数名保持一致。

2.5保存报表并预览

保存并分页预览便可以看到效果了。

参数过滤

1.描述

用户在参数查询界面的控件中输入参数值,点击查询按钮,就将相应的数据查询出来了,这就是参数的过滤。

根据参数的类型不同,其参数过滤的方式不一样,分为模板参数和数据集参数。

2.模板参数的过滤

模板参数在与控件绑定之后,并没有进行关于查询数据的关联操作,即,如果直接进行分页预览,查询数据时是不会将控件中的参数值进行过滤的。

此时,需要在报表主体的数据列过滤条件中对参数进行过滤处理。

如下图,传入的参数amount金额,需要获取的数据为销售总额大于(参数值-500),则可以如下使用公式进行参数处理:

操作完成之后,再次预览模板,就能对参数进行过滤了。

3.数据集参数的过滤

不同于模板参数,定义数据集如SELECT * FROM TableName WHERE ColName = ${para},其中${}中的内容为变量,即数据集参数,FineReport会将${}中的内容计算后形成字符串拼接至SQL中形成最终的可执行查询语句,发送到数据库端进行执行。${}可以直接对数据进行过滤。

如需要给传入的参数加上固定的字符串然后再用来过滤,此时sql可以写成SELECT * FROM [用户密码] where 密码='${password+"123"}'

若给参数password传递值“ZY”,此时${password+123}的结果就是ZY123,就可以查询出密码是ZY123的数据了。

故,数据集参数控件绑定数据之后,无需下一步操作,就可以预览模板,查看效果了。

参数界面设置

1.描述

FineReport为了让用户快速的实现参数查询数据功能,提供了专门的参数界面,用来放置与查询相关的控件,并且可以对参数界面进行简单的属性设置。

下面我们来一一介绍参数界面的属性设置。

2.是否显示参数界面

有时用户希望能够自己控制是否显示参数界面,用户可以在参数设计界面设置是否显示参数窗体,也可以再访问报表时,在URL后面添加参数&__pi__=false来控制不显示参数面板。

· 参数界面设置

是否显示参数窗体可以通过在参数界面面板中直接设置,如下图,切换至参数面板编辑界面,点击参数界面的空白处,选中参数界面,在右侧的属性表中将显示参数窗体的勾去掉,就不会显示参数界面:

· 通过__pi__参数控制

访问报表时在URL后面加上&__pi__=false就可以强制报表不显示参数界面(报表定义了参数界面且设置了显示参数窗体);

例如:localhost:8075/WebReport/ReportServer?reportlet=GettingStarted.cpt&__pi__=false。

注:pi前后都是两个英文的下划线。

3.点击查询前显示报表内容

点击查询前显示报表内容是指:在定义参数的情况下,报表的结果展示不需要用户手动点击查询按钮,而是自动使用参数的默认值进行首次查询并输出结果。

实现思路是首先给参数设置默认值,然后打开参数设计界面中勾去“点击查询前不显示报表内容”。

· 设置方法

进入参数面板的编辑状态,在属性面板中勾去“点击查询前不显示报表内容”,设置如下图:

注:设置点击查询前显示报表内容的同时要给参数设置默认值,否则在首次展示时会根据空值进行过滤。

保存模板,预览即可以看到,不需要点击查询按钮,首次会根据默认值查询出数据。

4.参数面板背景设置

参数的默认背景色为灰色,但是为了使参数界面的风格和报表风格相同或达到其他效果,如您的报表背景为白色,希望参数界面背景也显示为白色,要如何设置呢?

· 设置方法

选中参数界面,在属性表中点击背景后面的按钮,修改背景颜色,如下图:

其设置效果和纸张背景设置效果相同。

5.参数界面显示位置

对参数界面除了可以隐藏、设置参数面板背景等操作,还可以设置参数界面的显示位置。

· 设置方法

参数界面的显示位置可以设置为靠左、居中以及靠右显示,具体的设置如下图:

注:参数界面的显示位置以参数界面的宽度,靠左、靠右或者居中,而不是浏览器的页面宽度。

设置成居左的效果如下图:

版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/article/99136.html

相关推荐