决策报表自动查询

编辑
  • 文档创建者:文档助手1
  • 浏览次数:17363次
  • 编辑次数:16次
  • 最近更新:Carly 于 2019-10-11
  • 1. 描述

    1.1 问题描述

    我们在介绍 参数应用 的时候有介绍到 自动查询,其效果是,在参数界面选择好参数之后,无需点击查询按钮,报表主体中会自动查询出过滤结果并展现出来,那么在决策报表中是否也要和参数应用的自动查询一样来实现呢?

    1.2 解决方案

    决策报表的自动查询相较于参数应用的自动查询,其实现方式更加简单明了,无需更多的操作,只需要通过控件绑定即可轻轻松松实现该效果。

    例如:选择顶部几个下拉框数据的时候,报表块中的数据随之实时变化,如下图所示:

    2. 示例

    下文介绍决策报表自动查询的实现方式。

    2.1 新建决策报表

    新建一张决策报表,往决策报表中拖曳三个标签控件、三个下拉框控件和一个报表块组件,如下图所示:

    注:直接拖拽控件到决策报表主体 body 中,不需要拖拽到参数面板里。

    2.2 数据配置

    在右侧的数据集面板中新建三个数据集:

    订单:select 客户.地区,客户.城市,客户.City,客户.客户ID,客户.公司名称,订单.订单ID,订单.订购日期,订单.发货日期,订单.到货日期,订单.运货商,货主名称,订单明细.产品ID,(订单明细.单价*订单明细.数量) AS 金额 from 客户,S订单 订单 ,S订单明细 订单明细 where 订单.订单ID=订单明细.订单ID and 客户.客户ID=订单.客户ID

    ds1:select 城市, 城市||city as 城市city from 客户 where 地区='${地区}'

    ds2:SELECT 公司名称 FROM 客户 where 城市='${城市}' and 地区='${地区}'

    并修改地区标签后面的下拉框控件名称为地区,城市标签后面下拉框控件名称为城市,客户标签后面下拉框控件名称为客户。

    其中三个下拉框数据字典配置如下表所示:

      名称  数据来源  实际值     显示值 
      地区  FRDemo数据库订单表  货主地区  货主地区
      城市  ds1数据集  城市  城市city
      客户  ds2数据集  公司名称  公司名称

    注:必须保证下拉框控件名称与参数名称保持一致。

    2.3 报表块设计

    2.3.1 数据列设计

    点击报表块上面的编辑按钮,进入报表块编辑界面,如下图所示,为每个单元格绑定数据列:

    222 

    注:单元格样式可以根据要求自己设置。

    2.3.2 数据过滤

    由于报表块中的数据与下拉框数据字典绑定的数据并不是来源于同一个数据集,那么他们不会天然形成过滤关系,需要手动为单元格添加过滤条件,选中订单 ID 所在的 A5 单元格,双击,打开过滤界面,添加如下图所示过滤条件:

    222

    注:公式if($地区 = "", nofilter, $地区)的意思是如果地区参数(这里指控件名称为地区的下拉框)的值为空,那么就不过滤(nofilter 是不过滤的意思),不为空,则显示出相应地区的数据。

    另:如果报表块中的数据和控件 数据字典 绑定的数据来源于同一个数据集,则无需再次进行过滤。

    2.4 样式修改

    此时保存模板,点击预览,可以看到虽然实现了效果,但是由于决策报表的自适应特性,控件置顶显示,排列不美观。

    此时,可以将决策报表框架的内边距、上边距设置大点,如下图所示:

    222

    右侧的客户下拉框控件直接靠右边显示,和其他的 2 个下拉框控件不协调,那么我们是否也可以设置右边距使其不靠右显示呢?

    不可以的,body 的内边距设置时针对整个决策报表的,会作用于该决策报表的所有组件,但是可以往决策报表右侧添加一个空白标签控件,如下图所示:

    222

    2.5 效果查看

    保存模板,点击预览,可以看到如上图所示效果。 

    3. 已完成模板

    已完成模板请参照%FR_HOME%\webroot\WEB-INF\reportlets\doc\frm\决策报表自动查询.frm

    点击下载模板:决策报表自动查询.frm

    附件列表


    主题: 决策报表应用
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

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

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