选中单元格的复选框,把选中数据的id传给另一个数据库查询中

image.png

FineReport 用户X1027784 发布于 2022-1-4 19:01 (编辑于 2022-1-4 19:26)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
luojian0323Lv7资深互助
发布于2022-1-4 19:07

你可以这样理解 ,把选中的复选框的值 传递给参数面板上的参数,然后执行查询操作

具体做法,先在另外一个数据集里添加查询 参数具体做法见帮助文档。

然后在参数面板添加另一个数据集里相同参数名的控件。

这时候如果 不想在报表中显示参数面板,只需要两步:第一步,编辑参数面板,然后取消勾选这两项

image.png

第二步,把参数面板高度设置为:0

image.png

这时候你可以在你的复选框的事件中写上js

var  value =this.getValue();

_g().parameterEl.getWidgetByName("参数面板上的控件名,也是另外一个数据集里的参数名").setValue(value);

_g().parameterCommit();//执行查询 操作。

  • 用户X1027784 用户X1027784(提问者) 选中这条数据 输出的true 我想获取到这条数据的id
    2022-01-04 19:26 
  • luojian0323 luojian0323 回复 用户X1027784(提问者) id在H列是吧 在这个复选框js 编辑器右上方添加行号参数:row 参数值为公式:row()-1 获取 h列的值 是contentPane.getCellValue(7,row) 把这个值再赋值给参数面板上的控件,再进行查询。
    2022-01-05 08:25 
最佳回答
0
啊嘞嘞Lv5见习互助
发布于2022-1-4 19:12(编辑于 2022-1-4 19:14)

复选框返回的是数组,所以查询的时候可以用in来查询,只不过拼接的时候要注意,要用到substitute函数比如,select * from table where ${"id in ('"+SUBSTITUTE(ID,",","','")+"')"}函数的意思是把","换成"','",两边括号要拼接一下。(其中ID是你传进去的复选数组)

传到另一个报表一是一样的方式来处理

最佳回答
0
飞段Lv6初级互助
发布于2022-1-5 09:04

你参考一下,帆软自带一个demo案例你就知道了8dadfef428242bb9c5729147b711ad2.png

  • 5关注人数
  • 420浏览人数
  • 最后回答于:2022-1-5 09:04
    请选择关闭问题的原因
    确定 取消
    返回顶部