反饋已提交
網絡繁忙
设计报表时,如果遇到「序号」是用汉字数字来表示的,那么要如何对它进行排序呢,如下:
方案一:数据很少时,可以通过设置「单元格元素>高级>排列顺序」,使用公式 switch() 自定义排序。
方案二:在「扩展后排序」中添加公式。因为 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
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉