反馈已提交
网络繁忙
设计报表时,如果遇到「序号」是用汉字数字来表示的,那么要如何对它进行排序呢,如下:
方案一:数据很少时,可以使用高级排序-自定义顺序。也可利用内置数据集实现,详情请参照文档:利用内置数据集实现自定义排序。
方案二:在「扩展后排序」中添加公式。因为 FineReport 中没有将汉字数字转化为阿拉伯数字的公式,所以我们可以反过来,用 numto() 公式将阿拉伯数字转化为汉字数字,再将汉字数字与对应的阿拉伯数字联系起来。
注:方案二只适用于汉字数字从「一」开始且数字连续的场景。
新建内置数据集,添加两个字段「序号」、「项目」,均为字符串类型,设计表如下图所示:
将数据列拖入单元格,输入对应的标题,表格样式设计如下:
双击 A1 单元格,点击「高级」,设置排列顺序为「升序」,输入公式:SWITCH($$$,"一",1,"二",2,"三",3,"四",4)。如下图所示:
选中 A2 单元格,点击「单元格属性>扩展」,设置「扩展后排序」为「升序」,输入公式: INARRAY($$$, MAPARRAY(RANGE(COUNT(A2[!0])), NUMTO(item)))。
公式说明如下表:
批量处理数组,通过 fn 对数组中的元素进行转换
array(Array):要转换的数组,即 RANGE(COUNT(A2[!0]))
fn(Function):处理数组项目的函数,即 NUMTO(item)
返回数字的中文表示。
注:NUMTO()函数不支持小数
步骤如下图所示:
保存报表,点击「分页预览」,效果如下图所示:
App 端和 HTML5 端均支持,效果如下图所示:
文档仅给出方案二模板。
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\汉字数字排序.cpt
点击下载模板:汉字数字排序.cpt
售前咨询电话
400-811-8890转1
在线技术支持
请前往「服务平台」,选择「在线支持」
热线电话:400-811-8890转2
总裁办24H投诉
热线电话:173-1278-1526
文 档反 馈
鼠标选中内容,快速反馈问题
鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。
不再提示
10s后关闭