JS中通过FR.remoteEvaluate()查出来的结果,如果再作为参数传递到数据集中,并刷新

业务场景:决策报表,body中的控件S,报表块展示数据

 用户选择A,实际上是要查询 a1,a2,a3....对应的数据,现在已经通过在JS里面执行FR.remoteEvaluate()查询出了a1,a2,a3.....,并赋值给了JS中定义的参数K,那么我如何把K传给数据集ds1去执行呢,并且在报表块中展示出相应的数据

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

把参数赋值 给报表中的参数控件

参数名绑定ds1 数据集中的参数

报表中添加一个控件,做为参数,控件名和ds1数据集中参数名一致

js :

var value=this.getValue()//假定你的参数是从控件中的值获取来的

var canshu = this.options.form.getWidgetByName("参数名");

 canshu.setValue(value)

注:如果 不是在参数面板中的控件,是会自动查询的。

如果控件赋值没有执行查询 

再添加一句:this.options.form.getWidgetByName("report0").gotoPage(1,"{参数名:'"+value+"'}",true);

//report0是具体报表块名称,跟你的报表块名称要一致。

  • Rivery Rivery(提问者) 加上最后一句执行查询的语句报错,我的report0是放在tab块里的
    2022-03-01 17:37 
  • luojian0323 luojian0323 回复 Rivery(提问者) 写错啦,是value值
    2022-03-01 17:42 
  • Rivery Rivery(提问者) 回复 luojian0323 没有报错了,但是没有查出数据耶
    2022-03-01 17:50 
  • luojian0323 luojian0323 回复 Rivery(提问者) 你不能照抄我的代码,我注释不是写了吗?假定参数值是从当前控件中获取得,才用:this.getVaue() 你把参数传递给报表块之前 ,先屏幕打印一下,看看结果 。
    2022-03-02 08:29 
  • Rivery Rivery(提问者) 回复 luojian0323 前面打印都是对的,我没有照抄,就是最后一句,控件赋值后,执行查询,没有出结果
    2022-03-02 09:06 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-3-1 17:13(编辑于 2022-3-2 09:06)

image.png

赋值给单元格吧,注意不扩展,然后DS1获取这个单元格的值 用 IN()查询

另外的思路

Form3.zip

  • Rivery Rivery(提问者) 具体要怎么赋值呢
    2022-03-01 17:14 
  • Z4u3z1 Z4u3z1 回复 Rivery(提问者) 想了一下另外的思路,不晓得适合你 的使用场景不?将你的JS换成数据集来实现,然后把数据集的结果拖单元格上,另外的数据集直接取这个单元格的值
    2022-03-02 09:07 
  • 3关注人数
  • 1181浏览人数
  • 最后回答于:2022-3-2 09:06
    请选择关闭问题的原因
    确定 取消
    返回顶部