数据集参数

编辑
  • 文档创建者:加菲喵
  • 浏览次数:66240次
  • 编辑次数:19次
  • 最近更新:Leo.Tsai 于 2019-09-17
  • 1. 描述

    在线视频学习请查看:参数入门示例

    类似通信、监控行业,每天都有海量数据生成,数据库表中总数据量非常大,而报表中往往只要获取当天的几百条数据就可以了。

    如果使用模板参数,就需要先取出所有数据,再进行过滤,取数+过滤,将消耗大量时间,极大影响报表的查询效率。而数据集参数在数据库查询时就已经完成了数据过滤,故在大数量场景下,使用数据集参数进行查询报表的设计。

    2. 示例

    2.1 示例效果

    下拉框选择「华东」,点击查询,只查询出报表中华东地区的销售信息。

    1.png

    下拉框选择「华北」,点击查询,只查询出报表中华北地区的销售信息。

    2.png

    2.2 定义数据集参数

    新建数据集 ds1,数据库查询对话框中写入 SQL 查询语句SELECT * FROM 销量 WHERE 地区='${地区}',在数据库查询语句中定义一个数据集参数「地区」。点击右下角刷新按钮,下方数据集参数管理面板会显示已经新建好的数据集参数「地区」,设置它的默认值为华东。点击确定,即同时完成了数据准备和定义数据集参数的工作。

    注1:从数据库中查询取数时,会根据参数值来查询该参数值对应的数据,也就是说在数据准备这一步就已经完成了数据过滤。

    注2:在数据集 SQL 语句中,使用 ${para} 做为一个参数宏,其中变量para为参数名,若字段值为字符串则加上引号如'${para}'

    Snag_41d683d.png

    2.3 表格样式设计

    1)A1~C1 单元格写入表格标题信息,选中 A1~C1 单元格,右边属性面板选择单元格属性>样式,样式下拉框选择预定义样式,给标题设置一个Head类型的样式。

    注:设置好 Head 类型的样式后,标题字体会自动居中,无需另外设置。

    Snag_432649d.png

    2)将数据集中的字段拖入到对应单元格中,选中 A2~C2 单元格,将字体居中,选中 A1~C2 单元格,给表格整体添加预定义样式默认的天蓝色内外框。

    Snag_437db0d.png

    3)选中 C2 单元格,右边属性面板选择单元格元素>基本。数据设置下拉框选择汇总>求和

    Snag_43a083e.png

    2.4 参数添加控件

    1)点击参数面板的编辑按钮,进入参数面板设置界面。

    Snag_443fee7.png

    2)右上角控件设置面板会显示没有添加控件的参数,点击地区或者点击全部添加,将参数的默认控件添加到参数面板。

    注:参数与控件是通过参数名称进行绑定的,也就是说当控件名称与参数名称一致时,参数与控件就进行了绑定,即在 Web 端给控件赋值就相当于给参数赋值。

    Snag_445e162.png

    3)参数「地区」的默认控件添加到参数面板后,效果如下图所示:

    注:如果不想点击「全部添加」或「参数」快捷添加默认控件,也可以直接从控件栏中将控件拖拽到参数面板中,修改控件的名称与参数名称一致,即可将控件与参数进行绑定。

    Snag_44a8177.png

    4)点击自定义控件的编辑按钮,选择下拉框控件类型,让用户通过下拉框选择参数值。

    Snag_44dfd50.png

    5)要想报表预览时点击下拉框可以出现参数值的选项,则需要设置下拉框的数据字典为销量表下的地区字段。

    参数面板选中下拉框控件,右边属性面板选择属性>数据字典,点击数据字典编辑按钮,弹出数据字典设置对话框。数据字典的类型设置为数据库表,数据库为FRDemo,选择数据库表为销量,列名实际值和显示值都为地区

    Snag_452c947.png

    6)将查询按钮往左边拖拽,形成紧凑式布局,让控件面板更加美观。再次点击参数面板的编辑按钮,完成参数控件的设置。

    Snag_45b44ca.png

    3. 效果预览

    3.1 PC端\

    保存报表,分页预览查看报表。

    下拉框选择「华东」,点击查询,只查询出报表中华东地区的销售信息。

    1.png

    下拉框选择「华北」,点击查询,只查询出报表中华北地区的销售信息。

    2.png

    3.2 移动端

    移动端查看报表的方式参见 报表移动端预览

    下拉框选择「华东」,点击查询,只查询出报表中华东地区的销售信息。

    1.jpg

    下拉框选择「华北」,点击查询,只查询出报表中华北地区的销售信息。

    3jpg.jpg

    4. 已完成模板

    已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\模板参数.cpt

    点击下载模板:数据集参数.cpt

    5. 数据集参数的应用

    1)简单应用

    可以在新建数据集,定义 SQL 查询语句时,直接使用 where 条件过滤出所需数据,从而大大缩短报表取数时间,类似下面的 SQL 语句:

    SELECT * FROM 销量 where 地区 = '${地区}'

    2)带公式的应用

    数据集 SQL 查询语句中可以使用参数宏${}动态地生成过滤条件,${}中的语句在 FineReport 报表中执行,将${}的执行结果与 SQL 语句拼接起来形成最终的查询语句,传递给数据库执行,可以使用多个${},如下 SQL 查询语句:

    SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,"","and 货主地区 = '" + area + "'")} ${if(len(province) == 0,"","and 货主省份 = '" + province + "'")}

    ${}中可以使用 FineReport 所有内置的公式,如 if 函数;

    ${}中除了 FineReport 内置的函数名、常量外,其他变量就是数据集参数。

    如上 SQL 语句,if 函数是 FineReport 内置的公式,变量 area 就是数据集参数,如果len(area)!=0,即 area 参数不为空,比如说 area 的值为「华东」,那么 if 语句的执行结果为and 货主地区='华东',然后再把这句话拼接到 SQL 语句当中,SQL 语句就变成:

    SELECT * FROM 订单 where 1=1 and 货主地区='华东'




    附件列表


    主题: 参数入门
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]