如何在报表展示之前改变模板参数的值?

使用普通报表

定义了一个模板参数str

通过浏览器地址http://192.168.1.1/webroot/ReportServer?reportlet=/demo.cpt&str=123

访问报表

想在报表展示之前,改变str的值为:456

我的设计方式:

做一个文本控件,与模板参数同名str,设置隐藏

然后给报表添加 加载起始 事件,想通过代码动态改变参数值

image.png

然后提示错误(我在想是不是这事件在控件加载出来之前就运行了,导致获取控件失败)

image.png

帆友大神们求支支招!

FineReport KIMINOKAGE 发布于 2021-6-18 09:57
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
snrtuemcLv8专家互助
发布于2021-6-18 10:00(编辑于 2021-6-18 10:56)

加载起始,控件还没出来,,你就取控件了,不报错才怪,

要么加载结束事件,要么不要给默认值

================

var th=this;

setTimeout(function() {

     th.options.form.getWidgetByName("你的控件名").setValue("你的值");

    _g().parameterCommit();

}, 100);

  • KIMINOKAGE KIMINOKAGE(提问者) 参数必须从浏览器传递进来,然后又必须在报表展示之前改变参数值。 有什么办法通过js改变模板参数值?
    2021-06-18 10:04 
  • snrtuemc snrtuemc 回复 KIMINOKAGE(提问者) 加载结束事件,写你的js代码,然后在加一句代码,重新查询一次,查询代码_g().parameterCommit();
    2021-06-18 10:06 
  • KIMINOKAGE KIMINOKAGE(提问者) 回复 snrtuemc 没有效果,还是报同样错误
    2021-06-18 10:51 
  • snrtuemc snrtuemc 回复 KIMINOKAGE(提问者) 加载结束事件,做一个延迟函数,代码参考修改答案
    2021-06-18 10:56 
  • KIMINOKAGE KIMINOKAGE(提问者) 回复 snrtuemc 感谢大神
    2021-06-18 11:17 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-6-18 10:01

image.png

话说居然你要改变这个值那就不传呗或者直接传默认值456呗

  • KIMINOKAGE KIMINOKAGE(提问者) 参数必须从浏览器传递进来,然后又必须在报表展示之前改变参数值。 有什么办法通过js改变模板参数值?
    2021-06-18 10:04 
最佳回答
0
杨朝健Lv5中级互助
发布于2021-6-18 10:09(编辑于 2021-6-18 10:57)

js放到控件的初始化后

if("${str}"=="123"){

    this.options.form.getWidgetByName("str").setValue("456");

} else {

    this.options.form.getWidgetByName("str").setValue("other");

}

image.png

  • KIMINOKAGE KIMINOKAGE(提问者) 按你说的做,添加控件的初始化后事件 alert(\"${str}\"); if(\"${str}\"==\"123\"){ this.options.form.getWidgetByName(\"str\").setValue(\"456\"); } else { this.options.form.getWidgetByName(\"str\").setValue(\"other\"); } alert失败
    2021-06-18 10:51 
  • 杨朝健 杨朝健 回复 KIMINOKAGE(提问者) 这边可以,alert失败具体是什么样
    2021-06-18 10:57 
最佳回答
0
祈LLv6中级互助
发布于2021-6-18 10:50

这是什么需求,你这样相当于传了一次123,又再传一次456,实际场景有什么意义吗

  • KIMINOKAGE KIMINOKAGE(提问者) 就是有这种需求...
    2021-06-18 10:53 
  • 祈L 祈L 回复 KIMINOKAGE(提问者) 那为什么不一开始直接在URL里传456
    2021-06-18 10:58 
  • 4关注人数
  • 418浏览人数
  • 最后回答于:2021-6-18 10:57
    请选择关闭问题的原因
    确定 取消
    返回顶部