fastreport .net教程之参数查询报表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教程之参数查询报表
参数查询报表
我们创建一个比较复杂一点报表,在报表输出之前,在对话框中输入参数查询。
在上面的报表中在点击新报表,重新创建一个空白报表。
切换到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\Para meter\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就可以强制报表不显示参数界面(报表定义了参数界面且设置了显示参数窗体);
例如:http://localhost:8075/WebReport/ReportServer?reportlet=GettingSt arted.cpt&__pi__=false。
注:pi前后都是两个英文的下划线。
3.点击查询前显示报表内容
点击查询前显示报表内容是指:在定义参数的情况下,报表的结果展示不需要用户手动点击查询按钮,而是自动使用参数的默认值进行首次查询并输出结果。
实现思路是首先给参数设置默认值,然后打开参数设计界面中勾去“点击查询前不显示报表内容”。
进入参数面板的编辑状态,在属性面板中勾去“点击查询前不显示报表内容”,设置如下图:
注:设置点击查询前显示报表内容的同时要给参数设置默认值,否则在首次展示时会根据空值进行过滤。
保存模板,预览即可以看到,不需要点击查询按钮,首次会根据默认值查询出数据。
4.参数面板背景设置
参数的默认背景色为灰色,但是为了使参数界面的风格和报表风格相同或达到其他效果,如您的报表背景为白色,希望参数界面背景也显示为白色,要如何设置呢?
选中参数界面,在属性表中点击背景后面的按钮,修改背景颜色,如下图:
其设置效果和纸张背景设置效果相同。
5.参数界面显示位置
对参数界面除了可以隐藏、设置参数面板背景等操作,还可以设置参数界面的显示位置。
∙设置方法
参数界面的显示位置可以设置为靠左、居中以及靠右显示,具体的设置如下图:
注:参数界面的显示位置以参数界面的宽度,靠左、靠右或者居中,而不是浏览器的页面宽度。
设置成居左的效果如下图:。