想根据下拉框的选项值决定是否显示相应的报表块,但下面的JS语句无法实现,两个报表块都会一直显示。

求问大家,非常感谢!

根据参数查看不同报表_报表块.frm

image.png

var cptName = this.options.form.getWidgetByName("cptName").getValue();

if (cptName=='订单表') {

_g().getWidgetByName('订单表').visible(); //显示  

_g().getWidgetByName('订单明细').invisible(); //隐藏  

};

if(cptName=='订单明细'){

_g().getWidgetByName('订单明细').visible();

_g().getWidgetByName('订单表').invisible();

};

if (cptName=='') {

_g().getWidgetByName('订单明细').visible();

_g().getWidgetByName('订单表').visible();

};


增加下面一句就可以了:

//

_g().parameterCommit();

var cptName = this.options.form.getWidgetByName("cptName").getValue();

if (cptName=='订单表') {

_g().getWidgetByName('订单表').visible(); //显示  

_g().getWidgetByName('订单明细').invisible(); //隐藏  

return false;

};

if(cptName=='订单明细'){

_g().getWidgetByName('订单明细').visible();

_g().getWidgetByName('订单表').invisible();

return false;

};

if (cptName=='') {

_g().getWidgetByName('订单明细').visible();

_g().getWidgetByName('订单表').visible();

return false;

};



FineReport alu 发布于 2020-9-24 13:35 (编辑于 2020-9-24 14:46)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2020-9-24 13:38(编辑于 2020-9-24 14:11)

1600925718626234.frm

解决了,不能写在查询按钮里面,这个先执行js代码,然后在查询,等于刷新下页面,隐藏就失效了,需要直接拖拽一个按钮,在写就是代码

_g().parameterCommit();

var cptName = this.options.form.getWidgetByName("cptName").getValue();

if (cptName == '订单表') {

_g().getWidgetByName('订单表').visible(); //显示  

_g().getWidgetByName('订单明细').invisible(); //隐藏  

} else if (cptName == '订单明细') {

_g().getWidgetByName('订单明细').visible();

_g().getWidgetByName('订单表').invisible();

} else {

_g().getWidgetByName('订单明细').visible();

_g().getWidgetByName('订单表').visible();

}


  • alu alu(提问者) 多谢回答!但是提示:SyntaxError: Unexpected token \'{\'
    2020-09-24 14:43 
  • alu alu(提问者) 你的代码还是有问题,这样才行: _g().parameterCommit(); var cptName = this.options.form.getWidgetByName(\"cptName\").getValue(); if (cptName==\'订单表\') { _g().getWidgetByName(\'订单表\').visible(); //显示 _g().getWidgetByName(\'订单明细\').invisible(); //隐藏 return false; }; if(cptName==\'订单明细\'){ _g().getWidgetByName(\'订单明细\').visible(); _g().getWidgetByName(\'订单表\').invisible(); return false; }; if (cptName==\'\') { _g().getWidgetByName(\'订单明细\').visible(); _g().getWidgetByName(\'订单表\').visible(); return false; };
    2020-09-24 14:53 
  • snrtuemc snrtuemc 回复 alu(提问者) 我更新答案了,参考下,你的原来代码没问题,出问题在,不能用查询按钮,需要自己拉一个按钮,写查询和js代码
    2020-09-24 14:55 
  • alu alu(提问者) 回复 snrtuemc 一个很奇怪的现象:当再次点击按钮后,被隐藏的报表块会再次出现;再次点击按钮后又被隐藏,好像这个按钮是一个切换按钮一样。有时间帮我看看吧,非常感谢!
    2020-09-24 17:08 
最佳回答
0
krystal033Lv7高级互助
发布于2020-9-24 13:38

你用条件属性设置不行么  比如你要看明细表的时候  就设置如果参数为明细表 订单表的那几列列宽为0 反之也一样 不就好了

  • 4关注人数
  • 517浏览人数
  • 最后回答于:2020-9-24 14:46
    请选择关闭问题的原因
    确定 取消
    返回顶部