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

目录:

1. 描述编辑

在原始数据表中,保存的是编码性质的数据,而在数据呈现时,需要显示的是有意义的实际值,而编码与值往往保存在另外一张表中。
如内置的FRDemo数据库的订单表中只有客户ID,对应的客户名称在客户表中,希望将订单明细报表中的客户ID显示为对应的客户名称:
222
此时,可以使用FineReport单元格属性表-形态>数据字典可以解决这类问题。

2. 实现方法一编辑

2.1 打开报表
打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\DetailReport\Details.cpt
可以看到报表中只有客户ID,希望显示为客户表中对应的客户名称。
2.2 设置形态-数据字典
选中客户ID数据列单元格,右击,选择形态>数据字典或者直接在右侧下方的单元格属性面板中选择形态,设置该列的实际值为客户表中的客户ID列,显示为客户表中的公司名称列:
222
形态的作用:就是在不改变实际单元格值的情况下,让单元格显示为其他值或者其他样式,查看更多形态


222

其中数据字典的作用就是对扩展出来的每一个实际值,显示其对应的显示值。
2.3 保存并预览
保存预览效果如下:
222
模板效果在线查看请点击Details_1.cpt

已完成的模板,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\DetailReport\Details_1.cpt

3. 实现方法二编辑

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

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

方法一实现结果为:
222
最终结果要求为:
222

利用方法一形态没有完全替换,实际结果与要求不符!遇到这种情况,我们该如何处理呢…?

3.1 方法

打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\DetailReport\Details.cpt

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

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

222
(3)设置D2单元格扩展方向:纵向,左父格:B2。
222
(4)右击B列,隐藏。
222

3.2 保存并预览

保存后,点击分页预览,可以看到如上描述的效果。
222