网络报表能进行二次查询吗?比如我跳转到子表后在对应的结果再次进行过滤查询

主表根据系统名称sys_id和报表名称report_path传递参数到子表:

image.png

image.png

子表的代码:子表显示成功image.png

image.png

但是在子表进行二次查询之后,查询为空,看了下代码,第一次查询(点击主表下钻的时候)的条件还在所以结果为空,请问我要怎么改?

image.png

image.png

更新-----------------------------------------

image.pngimage.png

FineReport 帆软用户fsQZFgE6mk 发布于 2024-7-19 10:22 (编辑于 2024-7-19 11:20)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
ID1208Lv6高级互助
发布于2024-7-19 10:27(编辑于 2024-7-19 10:28)

如果是子报表二次查询时不需要主表传过来的参数值,可以JS按钮点击事件,先把原来的参数值清空

JS清空控件内容--https://help.fanruan.com/finereport/doc-view-1196.html

最佳回答
0
华莉星宸Lv7资深互助
发布于2024-7-19 10:27

你第二次查询的时候,传入的参数是界面上选择的?

最佳回答
0
快乐星光Lv5中级互助
发布于2024-7-19 10:39(编辑于 2024-7-19 10:39)

1、首先,你的子表查询条件逻辑写的不对,需要把 and *** 的内容全部写到${}里面,像这样:${if(len(wlbm)=0,""," and invcode = '"+wlbm+"'")}。

2、然后,你需要在参数面板把主表传进来的参数的控件都添加上,可以隐藏控件,但一定要添加。

3、查询按钮换成普通的按钮控件,在里面写ds:

//首先清空本次查询不需要的参数控件值(主表传进来的)

_g().getParameterContainer().getWidgetByName("参数1").setValue('');

_g().getParameterContainer().getWidgetByName("参数2").setValue('');

//然后查询

_g().parameterCommit();

  • 帆软用户fsQZFgE6mk 帆软用户fsQZFgE6mk(提问者) 你好,我的问题已经更新,按照你的步骤我试了下JS出错了,显示自定义JS错误 : _g(...).getParameterContainer is not a function
    2024-07-19 11:21 
  • 快乐星光 快乐星光 回复 帆软用户fsQZFgE6mk(提问者) 那就用自带的查询按钮,只写清空控件的js试一下
    2024-07-19 11:39 
  • 4关注人数
  • 237浏览人数
  • 最后回答于:2024-7-19 11:20
    请选择关闭问题的原因
    确定 取消
    返回顶部