数据库查询可以根据报表页面上的查询条件或者其他交互来动态改变sql吗?

1716944814942.jpg

FineReport Ander 发布于 2024-5-29 09:21
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
yzmY7r2d6462368Lv3初级互助
发布于2024-5-29 09:23

通过控件给sql 传参,设置对应where 可以根据条件筛选内容。

  • Ander Ander(提问者) 这个是用什么插件? 有文档或者demo吗
    2024-05-29 09:30 
  • yzmY7r2d6462368 yzmY7r2d6462368 回复 Ander(提问者) 看你想实现什么效果,你是要展示的数据都在payment这张表里面吗,select * from payment where 某个字段=参数 你是想根据上面的下拉框来匹配数据吗我选在到期应付金额就只查询到期应付金额的数据,不选默认查询全部数据。
    2024-05-29 09:36 
  • Ander Ander(提问者) 回复 yzmY7r2d6462368 差不多 并且要把上面筛选的值传过去查询数据库
    2024-05-29 09:42 
  • yzmY7r2d6462368 yzmY7r2d6462368 回复 Ander(提问者) 在你这个sql上加where条件 where 你的筛选字段=${控件名称} 拓展一下就是 where 1=1 ${if(len(控件名称)=0,""," and 你的筛选字段='"+控件名称+"'")}
    2024-05-29 09:47 
  • yzmY7r2d6462368 yzmY7r2d6462368 回复 Ander(提问者) 你上方的参数面板用起来了吗,如果没有的话我建议你把你的筛选下拉框挪到上面去。
    2024-05-29 09:50 
最佳回答
0
snrtuemcLv8专家互助
发布于2024-5-29 09:26

可以

类似这个语句

${if(参数="1","sql1",if(参数="2","sql2","sql3"))}

  • Ander Ander(提问者) 那sql那边怎么取到这个 sql1
    2024-05-29 09:30 
  • snrtuemc snrtuemc 回复 Ander(提问者) 这个不用你管,帆软自动会把sql1这个你得语句给数据库的
    2024-05-29 09:32 
  • Ander Ander(提问者) 回复 snrtuemc ${if(参数="1","sql1",if(参数="2","sql2","sql3"))} 你是说这个写在数据库查询那里是吗? 那sql1的内容定义在哪里?
    2024-05-29 09:41 
  • snrtuemc snrtuemc 回复 Ander(提问者) 写在帆软数据集中,sql1改成你的sql语句就可以
    2024-05-29 09:43 
  • Ander Ander(提问者) 回复 snrtuemc 数据集查询就是这样写对吧 ${if(C1="1","SELECT * FROM `contract`",if(C1="2","SELECT * FROM `contract11`","SELECT * FROM `contract333`"))}
    2024-05-29 09:47 
  • 3关注人数
  • 172浏览人数
  • 最后回答于:2024-5-29 09:26
    请选择关闭问题的原因
    确定 取消
    返回顶部