实际值与显示值的问题



参数下拉框会显示多个已确认,怎么把3、4、5、6、7都显示成已确认,然后参数下拉框只显示一个已确认呢image.png

FineReport 18730286872 发布于 2020-3-27 13:29
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
1
axingLv6专家互助
发布于2020-3-27 14:10

数据字典改成这样,如果实际值是字符串分隔符可以改成',',然后sql里的条件筛选用in语句

image.png

最佳回答
0
孤陌Lv6资深互助
发布于2020-3-27 13:45

还真无法做到 因为实际值不同 这样多个已确认可以对应 不同的实际值

最佳回答
0
shirokoLv6资深互助
发布于2020-3-27 13:45(编辑于 2020-3-27 14:24)

那么我请问你,现在我是用户,我选择了已确认,最后这个单元格内的实际值是什么?

是3还是4?还是34567


如果是34567还能有办法解决,如果你回答不上来。。那这个需求就是个傻需求


----

如果是34567也就是意味着你这个是用复选框,返回值是间隔符用的','吧。

这样的话就好解决,合并成一个,实际值是3','4','5','6','7 显示值是已确认

测试.cpt


最佳回答
0
luojian0323Lv7资深互助
发布于2020-3-27 13:51

建议设置一个表,下拉框中的字段设置为表中的显示值,

如果要用实际值去过滤,只需要把你的主表关联这个表就行。

image.png

最佳回答
0
cherry团子Lv6中级互助
发布于2020-3-27 13:54(编辑于 2020-3-27 14:16)

如果在sql的话,你可以用case when 给他们分类(0-新建,1-已取货,2-已交付,[3,4,5,6,7] 是已确认) 形成一个新的字段,用来做过滤,然后你的下拉框内容实际值和显示值就用一样的


       SELECT SS.* FROM    
          
      (    SELECT A,B,C 
                 ,CASE WHEN A=0 THEN '新建' 
                       WHEN A=1 THEN '已取货'
                       WHEN A=2 THEN '已交付'
                       WHEN (A=3 OR A=4 OR A=5 OR A=6 OR A=7) THEN '已确认' ELSE '其它' AND  AS 新字段
          FROM 表名
          
          ) SS
          
          WHERE 1=1  ${if(len(新字段)==0,""," and 新字段 ='"+新字段+"'")}/* 如果A字段是字符,加上''


  • 6关注人数
  • 394浏览人数
  • 最后回答于:2020-3-27 14:24
    请选择关闭问题的原因
    确定 取消
    返回顶部