决策报表中的报表块,多列排序的switch写法怎么写

if($flag = 1, if($a = 1, A3, -A3), if($b = 1, D3, -D3))

我在最左父格添加的  公式是这样写的   (文档中说这是只有两列时的写法)

有没有大神帮忙指导一下,多列动态排序时  switch  怎么写

https://help.fanruan.com/finereport/doc-view-1894.html

这事我借鉴的文档的链接,烦请大神指导

image.png

image.png

image.png

image.png

image.png

FineReport 唐流雨 发布于 2021-11-9 17:41 (编辑于 2021-11-9 18:38)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
杨朝健Lv5中级互助
发布于2021-11-9 17:54(编辑于 2021-11-9 18:28)

1.新建2个模板参数,a和asc,a默认值1,asc默认要排序的单元格,如A3

2.每个要排序的表头增加动态参数超链,动态参数如下:

a: 

if($asc = if(col() <= 26, CONCATENATE(char(col() + 64), 3), CONCATENATE(char(int((col() - 1) / 26) + 64), char((col() - 1) % 26 + 65), 3)), if($a = 1, 0, 1), 1)

asc:

if(col() <= 26, CONCATENATE(char(col() + 64), 3), CONCATENATE(char(int((col() - 1) / 26) + 64), char((col() - 1) % 26 + 65), 3))

3.在最左的父格设置拓展后排序,升序,=if($a = 0, eval($asc), eval($asc) * -1)

image.png

image.png

image.png

image.png

  • 唐流雨 唐流雨(提问者) 我大概有11列需要实现点击表头就排序这种功能,而且是在决策报表中(.FRM),您这种方法中么?
    2021-11-09 18:00 
  • 杨朝健 杨朝健 回复 唐流雨(提问者) 可以的,看截图
    2021-11-09 18:03 
  • 杨朝健 杨朝健 回复 唐流雨(提问者) 表单对象选要排序的报表块
    2021-11-09 18:04 
  • 杨朝健 杨朝健 回复 唐流雨(提问者) FRM的话用当前决策报表对象,不是动态参数
    2021-11-09 18:06 
  • 唐流雨 唐流雨(提问者) 回复 杨朝健 那默认的模板参数的值要写在哪里呢?
    2021-11-09 18:11 
  • 2关注人数
  • 488浏览人数
  • 最后回答于:2021-11-9 18:38
    请选择关闭问题的原因
    确定 取消
    返回顶部