历史版本9 :决策报表自动查询 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 描述编辑
不是的,表单的自动查询相较于参数应用的自动查询,其实现方式更加简单明了,无需更多的操作,只需要通过控件绑定即可轻轻松松实现该效果。
下面,我们来介绍表单自动查询的实现方式。
2. 示例编辑
如下图,选择顶部几个下拉框数据的时候,下方报表块中的数据随之实时变化:
2.1 新建表单
新建一张表单,往表单中拖曳三个标签控件、三个下拉框控件和一个报表块组件,如下图
注:直接拖控件,不需要拖参数面板。
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 报表块数据列添加
点击报表块上面的编辑按钮,进入报表块编辑界面,如下图所示,为每个单元格绑定数据列:
注:单元格样式可以根据要求自己设置。
数据过滤
由于报表块中的数据与下拉框数据字典绑定的数据并不是来源于同一个数据集,那么他们不会天然形成过滤关系,需要手动为单元格添加过滤条件,选中订单ID所在的A5单元格,双击,打开过滤界面,添加如下图所示过滤条件:
注:公式if($地区 = "", nofilter, $地区)的意思是如果地区参数(这里指控件名称为地区的下拉框)的值为空,那么就不过滤(nofilter是不过滤的意思),不为空,则显示出相应地区的数据。
另:如果报表块中的数据和控件数据字典绑定的数据来源于同一个数据集,则无需再次进行过滤。
2.4 样式修改
此时保存模板,点击预览,可以看到虽然实现了效果,但是由于表单的自适应特性,控件置顶显示,排列不美观,此时,可以设置表单框架的内边距,上边距设置大点,如下图:
右侧的客户下拉框控件直接靠右边显示,和其他的2个下拉框控件不协调,那么我们是否也可以设置右边距使其不靠右显示呢?不可以的,body的内边距设置时针对整个表单的,会作用于该表单的所有组件,但是可以往表单右侧添加一个空白标签控件,如下图:
2.5 效果查看
保存模板,点击预览,可以看到如上图所示效果。
已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Frm\autosearch.frm