1. 概述编辑
都知道设计器可以自由实现语言切换,但是报表内容是固定的,其语言并不会根据需求而发生改变,所以在有些业务需求中需要单页报表内容中英文切换就需要通过控制传参来改变单页报表内容。
1.1 版本
报表服务器版本 | JAR 包 | 插件版本 | App 版本 |
---|---|---|---|
10.0 | 2019-12-16 |
1.2 预期效果
1.3 实现思路
标签和文本内容通过公式判断改变其中的字符串;下拉框和报表字段内容需要通过条件判断改变其数据源字段。
2. 操作步骤编辑
2.1 数据准备
想要实现单页报表内容的中英文切换,需要在底层数据表中提前准备好中英文数据的对应字段。如下:
2.2 设置一个语言选择参数
在参数面板上拖入一个标签和一个下拉框。下拉框的控件名称(即参数名)改为 LAN,下拉框数据字典输入自定义中英文实际值和显示值,如:
2.3 参数中标签和报表列标题切换方式
因为控件标签和列标题是固定的字符串,我们通过条件判断控制其内容改变即可。例如公式如下:
列标题公式:IF($LAN=='EN','SALE_EN','销售员')
语言控件标签公式:IF($LAN == 'EN','LAN:','语言:')
地区控件标签公式:IF($LAN == 'EN','AREA:','地区:')
这样便可以做到页面内固定内容的切换。
2.4 地区下拉框内字段动态切换
地区下拉框参数控件的数据字典设置为数据查询,并且设置如下的实际值和显示值:
实际值为地区的中文字段,显示值为公式:IF($LAN=='EN',ZHEN.FIND(AREA_EN,AREA_CN,$$$),$$$)
并且需要将控件值也改为上述公式:
这样在切换中英时,地区下拉框中的内容也会根据条件自动改变中文字段的选择,从而显示中英文。
2.5 报表列内容动态切换
报表内容控制通过条件判断改变字段选择的方式来实现中英文切换。
如内容公式使用:
IF($LAN=='EN',ZHEN.SELECT(SALE_EN,AREA_CN = $AREA),ZHEN.SELECT(SALE_CN,AREA_CN = $AREA))
通过判断中英文从数据表中使用select选择不同的字段。
select选择完后会生成一个数组,需要改变其扩展方向为从上往下扩展就可以了。
3. 模板下载编辑
4. 注意事项编辑
目前该操作中函数不能支持文件数据集!使用文件数据集无法通过公式获取到表中字段内容会显示为空!