字符型数据动态排序

编辑
文档创建者:axing (73248 )     浏览次数:692次     编辑次数:5次     最近更新:axing 于 2018-12-05     

目录:

1. 问题描述编辑

如这篇文档所述的需求,根据点击次数奇偶性排序之字符型
但是要做两个模板来实现太麻烦了,也不易于维护。下面描述如何使用一个模板解决问题。

2. 解决思路编辑

1)利用sql的order by 字段 asc | desc 来解决。

2)利用公式将字符型去重排序然后转化为对应的顺序号码进行排序。

3. 解决步骤编辑

3.1 利用sql解决

1)新建数据集,sql:SELECT * FROM 销量 where 地区='华北' order by 销售员 ${a}

222

2)报表设计如下,将字段拖到相应单元格中:

222

3)选中B1单元格,添加超级链接-动态参数a,值类型为公式:if(a="asc","desc","asc")

222

4)保存预览,可看到如下效果:


222

在线查看模板效果请点击:Order_7.cpt
已完成模板,可参考:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\字符型动态排序-动参.cpt
3.2 利用公式解决

1)创建数据集,sql:SELECT * FROM 销量 where 地区='华北'

222

报表设计与上面一致。

2)选中B1单元格,添加超级链接-动态参数a,值类型为公式:if(a=0,1,0)

222

3)选中A1单元格,设置扩展后排序

222

具体排序公式如下:

if(a=0,EVAL("INDEX(\"" + B2 + "\",\"" + JOINARRAY(SORTARRAY(UNIQUEARRAY(B2[!0;!0])), "\",\"") + "\")"),EVAL("INDEX(\"" + B2 + "\",\"" + JOINARRAY(SORTARRAY(UNIQUEARRAY(B2[!0;!0])), "\",\"") + "\")")*-1)

公式的基本思路是:

先将B2扩展出来的所有数据进行去重

再将去重后的数据进行排序

将排序后的数据输出成字符串

最后通过index函数获取当前B2单元格的值在上一步字符串中的位置

4)保存预览,效果与上面一致

在线查看模板效果请点击:Order_8.cpt
已完成模板,可参考:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\字符型动态排序-公式.cpt

4. 移动端效果编辑

1)app效果

222

2)h5效果

222



附件列表


主题: 设计思路
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?只是浏览 [ 去社区提问 ]