1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 预期效果
在原始数据表中,保存的是编码性质的数据,而在数据呈现时,需要显示的是有意义的实际值,而编码与值往往保存在另外一张表中。
如内置的 FRDemo 数据库的订单表中只有客户 ID,对应的客户名称在客户表中,希望将订单明细报表中的客户 ID 显示为对应的客户名称,如下图所示:
1.3 实现思路
1)方法一:使用「单元格属性>形态」中的数据字典,设置实际值和显示值
2)方法二:使用函数 split,并结合形态设置
2. 方法一:数据字典
数据字典类型有 4 种,其中包括「数据库表,数据查询,自定义,公式」,将分别对应不同应用场景,详情请参见:数据字典。
2.1 打开报表
打开报表%FR_HOME%\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\行式报表—数据纵向扩展.cpt
2.2 设置数据字典
选中客户 ID 数据列单元格,选择「单元格属性>形态>数据字典」,设置实际值为客户表中的客户 ID 列,显示值为客户表中的公司名称列,如下图所示:
2.3 效果预览
保存模板,点击预览,效果如 1.2 节所示。
3. 方法二:设置公式
3.1 应用场景
当客户有多个且在一个单元格以某一符号隔开保存时,上面的方法就无法实现最终的效果了。
例:订单为 10001 的客户同时为:VINET,TOMSP,HANAR,且保存在同一单元格以“,”隔开。
方法一实现结果为:
最终结果要求为:
利用方法一形态没有完全替换,实际结果与要求不符。遇到这种情况,就需要按照下文进行设置。
3.2 报表设置
打开报表%FR_HOME%\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\行式报表—数据纵向扩展.cpt
修改数据库为上图情况。
1)在 B 列后面插入新列(客户名称),在 C2 单元格设置公式:=split(B2, ","),且添加形态设置,方法参考:方法一
2)设置 C2 单元格扩展方向:无,父格:默认。
3)设置 D2 单元格扩展方向:纵向,左父格:B2。
4)右击 B 列,隐藏。
3.3 效果预览
保存模板,点击预览,效果如上文预期效果所示。
4. 已完成模板
方法一已完成的模板,可参见%FR_HOME%\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\改变显示值.cpt
点击下载模板:改变显示值.cpt