字符串如何实现动态排序?

RC_QUERY.cpt

原模版

RC_QUERY.cpt


FineReport 小八路小八路 发布于 2020-7-30 10:00 (编辑于 2020-7-30 13:30)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
shirokoLv6资深互助
发布于2020-7-30 10:17(编辑于 2020-7-30 14:14)

尽量使用sql排序

如果要用帆软排序,一定要设置在最左父格


image.png

用这个公式挺好的啊

image.png为什么你那个公式那么复杂,没看懂啥意思


-------


用sql的模式,例子

12.cpt


  • 小八路小八路 小八路小八路(提问者) 我是这样设置的
    2020-07-30 10:29 
  • shiroko shiroko 回复 小八路小八路(提问者) 我试了一下你这个是可以的把,但是公式效率太差了,建议用sql
    2020-07-30 11:12 
  • 小八路小八路 小八路小八路(提问者) 我用的就是你截屏的那个公式
    2020-07-30 11:15 
  • shiroko shiroko 回复 小八路小八路(提问者) 我看过你这个公式了,主要是为了字符串也能排序所以才用sortarray的公式,但是这种模式排序效率太低了,我2000行排一次就得三四秒,改用sql的方式吧
    2020-07-30 14:07 
最佳回答
0
孤陌Lv6资深互助
发布于2020-7-30 10:04

你同一个问题 问了3次了 前2个你都采纳了

  • 小八路小八路 小八路小八路(提问者) 后面发现对我来说问题还是没有解决
    2020-07-30 10:09 
  • 孤陌 孤陌 回复 小八路小八路(提问者) 建议你把设计器关了 重新 打开 再把人家的发你的模板 内置数据集删了 然后建立数据集 写SQL就好了
    2020-07-30 10:17 
  • 小八路小八路 小八路小八路(提问者) 回复 孤陌 重启、换内置数据集,我都试过了
    2020-07-30 10:18 
最佳回答
0
zjc@Lv3初级互助
发布于2020-7-30 10:11

把排序的sql贴出来看看

  • 小八路小八路 小八路小八路(提问者) SELECT DISTINCT SHOW_LOT_ID, PRODUCT_ID, LOT_TYPE, PRIORITY, LOT_STATUS, RECIPE_ID, EQPT_ID, QTY, RUNCARD_ID, OPERATION_ID, CHECK_RCP, B.AREA, A.EQPGROUP,A.STEP_NO FROM (SELECT B.SHOW_LOT_ID,A.PRODUCT_ID,A.LOT_TYPE,A.HOT_FLAG||\'-\'||A.LOT_PRIORITY PRIORITY,A.LOT_STATUS,B.RECIPE_ID,B.EQPT_ID,TO_NUMBER(A.LOT_QTY1) QTY,RUNCARD_ID, B.OPERATION_ID, B.CHECK_RCP, B.WORK_AREA,B.EQPGROUP,B.STEP_NO FROM P1ODSDA1.LOT_MASTER A, (SELECT RUNCARD_ID,S.MAIN_LOT_ID,S.SHOW_LOT_ID,S.LOT_RRN,S.LOT_ID,S.STATUS,L.EQPT_ID,L.RECIPE_ID,L.CHECK_RCP,S.OPERATION_ID, L.WORK_AREA ,L.EQPT_GROUP_ID EQPGROUP, L.STEP_NO FROM P1RPTDA1.SRC_LOT_STORE S,P1RPTDA1.SRC_LOT_SPECIAL_STEP L WHERE S.RUNCARD_RRN <> 0 AND S.LOT_RRN =L.LOT_RRN AND S.RUNCARD_RRN = L.RUNCARD_RRN AND S.STEP_SEQUENCE = L.STEP_SEQUENCE)B WHERE B.LOT_RRN = A.LOT_RRN(+) AND A.LOT_STATUS <> \'TERMINATED\') A, (SELECT DISTINCT SELFGROUP, A.EQPGROUP, AREA, EQPID FROM SXRPTUSER.MFG_TB_SELFGROUP_EQPGROUP A,SXRPTUSER.MFG_TBL_KEYEQP_GROUP_N B WHERE A.SELFGROUP = B.EQPGROUP) B WHERE (A.EQPT_ID = B.EQPID OR A.EQPGROUP = B.EQPGROUP) ${if(len(SHOW_LOT_ID) == 0,\"\",\"and SHOW_LOT_ID in (\'\" + SHOW_LOT_ID + \"\')\")} ${if(len(area) == 0,\"\",\"and area = (\'\" + area + \"\')\")}
    2020-07-30 10:19 
  • zjc@ zjc@ 回复 小八路小八路(提问者) 你用的oracle数据库吧,你确定你这sql健壮吗; 当传入的参数SHOW_LOT_ID为空时,这个sql 会报错的
    2020-07-30 10:49 
  • 小八路小八路 小八路小八路(提问者) 回复 zjc@ 是Oracle
    2020-07-30 11:15 
  • 小八路小八路 小八路小八路(提问者) 我排序用的是公式,这个是sql取数据集的代码
    2020-07-30 11:16 
  • zjc@ zjc@ 回复 小八路小八路(提问者) 我试了,你这个确实不报错,但是这样写在帆软添加参数SHOW_LOT_ID的时候看不见呀呀
    2020-07-30 11:33 
  • 4关注人数
  • 515浏览人数
  • 最后回答于:2020-7-30 14:14
    请选择关闭问题的原因
    确定 取消
    返回顶部