帆软软件
作者帆软软件·2015-08-28 10:41
产品经理·帆软软件

java报表开发工具FineReport教程之参数入门:参数的种类与区别【1】模板参数

字数 2775阅读 3960评论 0赞 0

java报表开发工具FineReport教程之参数入门:参数的种类与区别【1】模板参数

参数入门

1. 描述
在大多数情况下,我们并不需要报表把数据库中所有的数据都呈现出来,而是要根据一些条件来过滤出我们想要的数据,这就是参数查询。

FineReport报表中就是使用参数来动态的过滤数据的,实现用户和数据的实时交互,如下图:

注:鼠标移至参数界面的中间区域会出现收缩按钮,折叠或展开参数查询界面。

2. 如何实现参数查询
几乎所有的统计报表都会有类似上图的统计条件,传统的做法是使用如ext、html等编程实现,工作量大且维护成本高。

FR报表只需要通过参数的定义添加参数控件绑定数据参数过滤参数面板样式四个步骤便可以轻松实现参数查询,零代码,维护简单。

3. 实现步骤
FR报表提供了参数界面的概念,让用户快速制作出参数表单界面,制作参数查询界面的步骤如下:

参数定义:设置参数名称,添加参数,根据实际情况的不同添加不同种类的参数,详细请查看参数的种类与区别

添加控件绑定数据:FineReport参数查询,是在参数面板中添加控件,使控件名字与参数名称一样,通过该控件将其控件值传递给参数,实现动态修改参数值得效果,可为控件绑定数据,直接选择;

参数面板样式设定:设置参数界面中控件的位置,参数面板的位置,背景等等。

参数入门在线视频请查看【参数入门】


参数的种类与区别

1. 描述
FineReport报表中的参数按照其使用范围可以分为:模板参数和全局参数;按照其使用方式不同可以分为:模板参数和数据集参数。下面详细介绍。

2. 按照使用范围划分
2.1 模板参数
模板参数是指在当前模板下创建的参数,在模板>模板参数中定义,只在当前报表中可以使用,且必须与过滤结合才能筛选数据,详情请查看模板参数

2.2 全局参数
全局参数是指在当前工程下创建的参数,在服务器>全局参数中定义,定义方法与模板参数相同,在工程下的所有报表中都可以使用,必须与过滤结合筛选数据;

注:定义的全局参数都保存在WEB-INFresourcesconfig.xml文件中,若全局参数与报表参数相同,则采用报表参数。

另:按照使用范围划分的参数都必须与过滤条件结合使用。

2.3 区别
模板参数和全局参数的使用方式一致,但是两者的作用域不同。

全局参数:当前工程应用下的所有模板都可以使用。

模板参数:只有当前模板才可以使用。

3. 按照使用方式划分
3.1 模板参数
与按照使用范围划分中的模板参数一样,讲述的是同一种参数。

3.2 数据集参数
数据集参数就是指在为模板添加数据集的时候添加的参数,一般是指在SQL查询语句中使用动态的参数对数据进行过滤。数据集参数根据使用范围不同分为模板数据集参数和服务器数据集参数。

  • 模板数据集参数

是指在当前模板的模板数据集中添加的参数,在模板数据集>数据库查询中定义,只在当前报表中可以使用,详情请查看数据集参数

  • 服务器数据集参数

是指在服务器上数据集中添加的参数,在服务器数据集>数据库查询中定义,定义方法与数据集参数相同,在工程下的所有报表中都可以使用;

注:定义的服务器数据集参数都保存在WEB-INFresourcesdatasource.xml中,若服务器数据集参数与报表数据集参数相同,则采用报表数据集参数。

3.3 区别
模板参数和模板数据集参数的作用域相同,但是使用方式不同,模板参数和服务器数据集参数的作用域不同,使用方式也不同。

模板数据集参数:是直接对返回的数据集起作用,所以用这种参数定义方法,你所得到的数据集是已经满足条件后的数据,因此无需设置过滤条件,只对当前模板起作用。

服务器数据集参数:与模板数据集参数类似,唯一不同的额是其对整个工程下的所有模板起作用,均可直接调用。

模板参数:对取出来的数据集,是没有影响的,即所有需要的数据全部都取出来,然后调用参数来对格子中的数据进行过滤,从而使自己所需要的数据得以呈现,只对当前模板起作用。

结论:数据集参数就是直接取出满足条件的数据,而报表参数是取出全部数据后通过设置过滤条件再获取对应参数的数据,因此若数据量大的情况下使用数据集参数可以提高报表的访问效率。

4. 公用说明
全局参数和服务器数据集参数都是所有模板共用的,这个共用表示:不管有多少个模板,参数只需要定义一次,但是使用时各个模板间是独立的。不是说在bs端给一张模板的全局参数赋值之后,其他模板都可以使用这个值。

下面我们以几个简单的示例详细介绍一下模板参数数据集参数全局参数的具体使用方式。


模板参数

1. 描述
模板参数是指适用于当前模板的参数,需要与过滤条件结合使用,即数据集取出所有的数据,数据扩展的时候使用模板参数过滤出有用的数据,模板参数必须要与数据列过滤结合使用。

2. 制作步骤
2.1 打开报表
打开报表%FR_HOME%WebReportWEB-INFreportletsdocPrimaryGroupReportGroup.cpt。

2.2 定义模板参数
点击菜单模板>模板参数,添加一个地区参数,默认值设置为“华北”,如下图所示:

2.3 参数过滤设置
此时预览模板,可以看到数据列仍然会扩展出数据集中的所有数据,因此需要使用模板参数来过滤。双击地区数据列单元格,选择过滤标签,条件为地区等于参数$地区,如下图:

注:数据类型选择参数,就会在下拉框中罗列出所有可用参数名称,直接选择即可。

2.4 制作参数界面
点击参数模块处的笔,使参数界面处于可编辑状态,参数界面的右下方会显示没有添加控件的参数名称,如下图:

注:参数与控件是通过参数名称进行绑定的,也就是说控件名称与参数名称一致,那么参数就与控件进行绑定了,绑定就意味着在web端给控件赋值就相当于给参数赋值,点击未生成的参数,可自动将控件与参数进行绑定。

点击添加全部,会为所有的参数绑定控件,并控件显示在参数面板中,控件包括各个参数对应的赋值控件、还有各个标签控件以及查询按钮,默认的参数界面如下:

点击控件上的设置按钮,选择参数控件的类型。

注:如果不是点击添加全部添加的按钮,也可以直接从控件栏中将控件拖曳到参数面板中,修改控件的名称与参数名称一致,即可将控件与参数进行绑定,控件赋值就是参数赋值。

2.5 保存报表并发布
保存报表并分页预览,修改参数值为“华东”,便查询出了华东的数据:

模板效果在线查看请点击Parameter.cpt

已完成的模板,可参见%FR_HOME%WebReportWEB-INFreportletsdocPrimaryParameterParameter.cpt

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广