1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
1.2 预期效果
设计器可以自由实现语言切换,但是报表内容是固定的,其语言并不会根据需求而发生改变。
在有些业务需求中,需要单页报表内容中英文切换,如下图所示:
1.3 实现思路
通过公式判断改变标签和文本内容中的字符串。
通过条件判断改变下拉框和报表字段内容中的数据源字段。
2. 示例
2.1 数据准备
新建内置数据集ZHEN,如下图所示:
注:本文方法不支持文件数据集,使用文件数据集无法通过公式获取到表中字段内容。
2.2 模板设计
2.2.1 报表主体设计
新建普通报表,在 B1、B2 单元格插入公式,单元格具体设置如下表所示:
单元格 | 扩展方向 | 内容 | 解释 |
---|---|---|---|
B1 | 不扩展 | IF($LAN = 'EN', 'SALE_EN', '销售员') | 当语言为中文,单元格内容为 销售员 当语言为 English,单元格内容为 SALE_EN |
B2 | 向下扩展 | IF($LAN = 'EN', ZHEN.SELECT(SALE_EN, AREA_CN = $AREA), ZHEN.SELECT(SALE_CN, AREA_CN = $AREA)) | 当语言为中文,单元格显示选中的地区的销售员名称 当语言为 English,单元格显示选中的 AREA 的 SALE_CN 名称 |
如下图所示:
2.2.2 设置语言选择控件
1)编辑参数面板,拖入标签控件,控件值选择公式:IF($LAN == 'EN','LAN:','语言:'),如下图所示:
公式的含义:为当用户选择中文时,标签变为语言:;当用户选择 English 时,标签变为 LAN: 。
2)拖入下拉框控件,控件名称改为LAN ,点击数据字典类型设置为自定义,实际值和显示值设置如下图所示:
2.2.3 设置地区选择控件
1)拖入标签控件,控件值选择公式:IF($LAN == 'EN','AREA:','地区:'),如下图所示:
2)选中下拉框控件,设置控件名称、控件值、数据字典等属性,如下表所示:
属性 | 值 | 备注 |
---|---|---|
控件名称 | AREA | - |
控件值 | 类型:公式 值:IF($LAN=='EN',ZHEN.FIND(AREA_EN,AREA_CN,$$$),$$$) | 当语言为中文,下拉框显示选中的 AREA_CN 列的值 当语言为 English,下拉框显示选中的AREA_EN 列的值 |
数据字典 | 类型:数据查询 数据集:ZHEN 实际值:AREA_CN 显示值:IF($LAN=='EN',ZHEN.FIND(AREA_EN,AREA_CN,$$$),$$$) | 当语言为中文,下拉框显示 AREA_CN 列的值 当语言为 English,下拉框显示 AREA_EN 列的值 |
2.3 效果预览
2.3.1 PC端
保存模板,点击分页预览,效果如 1.1 节所示。
2.3.2 移动端
点击移动端预览,效果如下图所示:
注:移动端不显示标签控件。
3. 模板下载
点击下载模板:单张报表内中英文切换.cpt