筛选控件

where  

1=1 ${if(len(zt)=0,"","and ht.C_Status in ('"+ zt "')")}  

and (zc.id=${zc} or ${zc}=-1) 

and ((ht.C_contractbegindate <='${jssj}' 

and ht.C_contractenddate>='${kssj}'))

and ht.ZCMC in (2,29) 

and ys.C_Type='rent' 

and ht.C_Status in (2,3,4,5) 

自定义筛选,网页中想筛选出来全部的,应该怎么做;使用复选框后,选择全选报错image.pngimage.pngimage.pngimage.pngimage.png

FineReport LL 发布于 2022-2-10 09:43 (编辑于 2022-2-10 13:42)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
1
CD20160914Lv8专家互助
发布于2022-2-10 09:44(编辑于 2022-2-10 13:47)

你复选框全选不就是所有的了。。

你用的是下拉框控件。。你把控件删除后。。。改用复选框控件就行了

然后sql里面的语句要改成 类似这样

where 1=1 

and ht.C_Status in ('${zt}')

and (zc.id=${zc} or ${zc}=-1) 

and ((ht.C_contractbegindate <='${jssj}' 

and ht.C_contractenddate>='${kssj}'))

and ht.ZCMC in (2,29) 

and ys.C_Type='rent' 

如果是文本设置复选框的为字符,分隔符号为','

image.png

如果合同状态是数字:

where 1=1 

and ht.C_Status in ("+ zt ")")

and (zc.id=${zc} or ${zc}=-1) 

and ((ht.C_contractbegindate <='${jssj}' 

and ht.C_contractenddate>='${kssj}'))

and ht.ZCMC in (2,29) 

and ys.C_Type='rent' 

分隔符设置为,就行了。。。

image.png

---------------单选框的处理方式------------------

或者用你的单选框控件增加一个       全部   实际值0   显示值:全部

sql语句改成

${if(len(cs2)=0,"",if(cs2=0,"","and a.表中字段名称 ='"+ cs2 + "'"))}

  • LL LL(提问者) 复选框全选报错了
    2022-02-10 13:23 
  • CD20160914 CD20160914 回复 LL(提问者) 你的复选框按我的设置分隔符没有。还有你的sql语句改没有。。。截图看一下你的sql和复选框设置
    2022-02-10 13:24 
  • CD20160914 CD20160914 回复 LL(提问者) 复选框的分隔符号你要按我图片这样设置。。。。。。还有你的sql中要使用in就是我上面类似的语句
    2022-02-10 13:25 
  • LL LL(提问者) 回复 CD20160914 cs2是什么意思
    2022-02-10 13:25 
  • CD20160914 CD20160914 回复 LL(提问者) 就是参数的名称呀。。你的是合同状态,你把cs2改成你的合同状态控件名称呀。。。
    2022-02-10 13:26 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-2-10 09:47

你是想在SQL上筛:

where ${if(len(控件名称)==0,""," 字段名 ='"+控件名称+"'")}

单元格上筛选

image.png

最佳回答
0
墨残烛Lv5初级互助
发布于2022-2-10 10:57

使用复选框,里面自带全选功能,你只需要把需要的参数导进去就好了

最佳回答
0
snrtuemcLv8专家互助
发布于2022-2-10 13:29(编辑于 2022-2-10 13:46)

最简单,你的自定义里面加一个

实际值99,显示值 全部

然后where语句改下

where 1=1 

${if(控件名称==99,"and 1=1"," and 字段名 ='"+控件名称+"'")}

==================

兄弟,不要纠结,你自己的in语句问题

image.png

================

其他没问题的话,正确写法如下,但是还可以优化下的

where  

1=1 ${if(len(zt)=0,"","and ht.C_Status in ('"+ zt "')")}  

and (zc.id=${zc} or ${zc}=-1) 

and ((ht.C_contractbegindate <='${jssj}' 

and ht.C_contractenddate>='${kssj}'))

and ht.ZCMC in ('2','29') 

and ys.C_Type='rent' 

and ht.C_Status in ('2','3','4',5') 

  • LL LL(提问者) 不能这么写吗
    2022-02-10 13:44 
  • snrtuemc snrtuemc 回复 LL(提问者) 直接写要引号引起来啊,看修改答案写法
    2022-02-10 13:45 
  • 4关注人数
  • 519浏览人数
  • 最后回答于:2022-2-10 13:47
    请选择关闭问题的原因
    确定 取消
    返回顶部