如何在组件中实现多个条件既可以独立查询,也可以多条件查询

微信图片_20200804103036.png

FineReport Zod1ac 发布于 2020-8-4 10:32
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
LSQ000Lv5中级互助
发布于2020-8-4 10:40

数据集这样修改
where 1=1
${if(len(科室编码)==0,"","and 科室编码 = '"+科室编码+"'")}
${if(len(科室名称)==0,"","and 科室名称 = '"+科室名称+"'")}

${if(len(科室类型)==0,"","and 科室类型 in ('"+科室类型+"')")}
${if(len(科室类)==0,"","and 科室类 in ('"+科室类别+"')")}

${if(len(服务对象)==0,"","and 服务对象 in ('"+服务对象+"')")}

  • Zod1ac Zod1ac(提问者) 请问下可以在这里嵌套模糊查询么
    2020-08-04 14:36 
  • LSQ000 LSQ000 回复 Zod1ac(提问者) ${if(len(科室编码)==0,\"\",\"and 科室编码 like \'%\"+科室编码+\"%\'\")}
    2020-08-04 15:11 
最佳回答
0
孤陌Lv6资深互助
发布于2020-8-4 10:33

帮助文档搜 参数为空 查询全部 按照里面的方法就就可以了

最佳回答
0
zjc@Lv3初级互助
发布于2020-8-4 10:38

用if做判断,具体像下面这样的sql

SELECT 使用单位,使用方向,财政分类,资产入账年份,资产类型,经费来源

  FROM V_ZC_TS_RJ_SB

 WHERE 1=1

 ${IF(LEN(使用单位) == 0,"","AND 使用单位 IN('" + JOINARRAY(使用单位, "','") + "')")}

 ${IF(LEN(使用方向) == 0,"","AND 使用方向 IN('" + JOINARRAY(使用方向, "','") + "')")}

 ${IF(LEN(财政分类) == 0,"","AND 财政分类 IN('" + JOINARRAY(财政分类, "','") + "')")}

 ${IF(LEN(资产类型) < 1,"","AND 资产类型='"+资产类型+"'")}

 ${IF(LEN(总价MIN) != 0 || LEN(总价MAX) != 0,"AND 总价 BETWEEN NVL(" + 总价MIN + ",0) AND NVL(" + 总价MAX +",99999999999)","")}

${IF(LEN(经费来源) < 1, "", "AND 经费来源 LIKE '%" + 经费来源 + "%'")}

最佳回答
0
豆豆小可爱Lv5中级互助
发布于2020-8-4 10:38

下拉框参数为空选择全部-https://help.finereport.com/doc-view-2394.html


最佳回答
0
吾姓独孤Lv6高级互助
发布于2020-8-4 10:40

${if(len(参数)=0,"","AND 字段 = '" + 参数 + "'")}

这样你条件不设置的话就是不过滤这个字段,设置就过滤

最佳回答
0
誓言无悔Lv6初级互助
发布于2020-8-4 10:41

https://help.finereport.com/doc-view-2394.html   下拉框参数为空,选择全部

  • 7关注人数
  • 617浏览人数
  • 最后回答于:2020-8-4 10:41
    请选择关闭问题的原因
    确定 取消
    返回顶部