历史版本22 :数据实际值与显示值 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
11.0

1.2 预期效果

在原始数据表中,保存的是编码性质的数据,而在数据呈现时,需要显示的是有意义的实际值,而编码与值往往保存在另外一张表中。

如内置的 FRDemo 数据库的订单表中只有客户 ID,对应的客户名称在客户表中,希望将订单明细报表中的客户 ID 显示为对应的客户名称,如下图所示:

1571211326537597.png

1.3 实现思路

1)方法一:使用「单元格属性>形态」中的数据字典,设置实际值和显示值

2)方法二:使用函数 split,并结合形态设置

2. 方法一:数据字典编辑

数据字典类型有 4 种,其中包括「数据库表,数据查询,自定义,公式」,将分别对应不同应用场景,详情请参见:数据字典

2.1 打开报表

打开报表%FR_HOME%\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\行式报表—数据纵向扩展.cpt

2.2 设置数据字典

选中客户 ID 数据列单元格,选择「单元格属性>形态>数据字典」,设置实际值为客户表中的客户 ID 列,显示值为客户表中的公司名称列,如下图所示:

1571212457826041.png

2.3 效果预览

保存模板,点击预览,效果如 1.2 节所示。

3. 方法二:设置公式编辑

3.1 应用场景

当客户有多个且在一个单元格以某一符号隔开保存时,上面的方法就无法实现最终的效果了。

例:订单为 10001 的客户同时为:VINET,TOMSP,HANAR,且保存在同一单元格以“,”隔开。

222

方法一实现结果为:

222

最终结果要求为:

222

利用方法一形态没有完全替换,实际结果与要求不符。遇到这种情况,就需要按照下文进行设置。

3.1 报表设置

打开报表%FR_HOME%\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\行式报表—数据纵向扩展.cpt

修改数据库为上图情况。

1)在 B 列后面插入新列(客户名称),在 C2 单元格设置公式:=split(B2, ","),且添加形态设置,方法参考:方法一

222

2)设置 C2 单元格扩展方向:无,父格:默认。

1571212979681331.png

3)设置 D2 单元格扩展方向:纵向,左父格:B2。

1571213042738481.png

4)右击 B 列,隐藏。

1571213098848798.png

3.2 效果预览

保存模板,点击预览,效果如上文预期效果所示。

4. 已完成模板编辑

方法一已完成的模板,可参见%FR_HOME%\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\改变显示值.cpt

点击下载模板:改变显示值.cpt