手机端参数根据参数控制后面控件是否可见(setVisible)不可用

这是代码。手机端选择的时候无法使用

var a = this.options.form.getWidgetByName("Labeltime_month");

var b = this.options.form.getWidgetByName("month");

var c = this.options.form.getWidgetByName("Search_month");


var d = this.options.form.getWidgetByName("Labeltime_weekbegin");

var e = this.options.form.getWidgetByName("sat");

var f = this.options.form.getWidgetByName("Labeltime_weekend");

var g = this.options.form.getWidgetByName("fri");

var h = this.options.form.getWidgetByName("Search_week");


var j = this.options.form.getWidgetByName("Labeltime_year");

var k = this.options.form.getWidgetByName("comboBox_year");

var l = this.options.form.getWidgetByName("Labeltime_halfyear");

var m = this.options.form.getWidgetByName("comboBox_halfyear");


var i = this.options.form.getWidgetByName("formstype");

var thislen = i.getValue();


if(thislen == 1) {

    a.setVisible(false);

    b.setVisible(false);

    c.setVisible(false);

    

    d.setVisible(true);

    e.setVisible(true);

    f.setVisible(true);

    g.setVisible(true);

    h.setVisible(true);

    

    j.setVisible(false);

    k.setVisible(false);

    l.setVisible(false);

    m.setVisible(false);

} else if(thislen == 2){    

    a.setVisible(true);

    b.setVisible(true);

    c.setVisible(true);

    

    d.setVisible(false);

    e.setVisible(false);

    f.setVisible(false);

    g.setVisible(false);

    h.setVisible(false);


    j.setVisible(false);

    k.setVisible(false);

    l.setVisible(false);

    m.setVisible(false);

}else if(thislen == 3){

a.setVisible(false);

    b.setVisible(false);

    c.setVisible(false);

    

    d.setVisible(false);

    e.setVisible(false);

    f.setVisible(false);

    g.setVisible(false);

    h.setVisible(true);


    j.setVisible(true);

    k.setVisible(true);

    l.setVisible(true);

    m.setVisible(true);

}else{

    a.setVisible(false);

    b.setVisible(false);

    c.setVisible(true);

    

    d.setVisible(false);

    e.setVisible(false);

    f.setVisible(false);

    g.setVisible(false);

    h.setVisible(false);


    j.setVisible(true);

    k.setVisible(true);

    l.setVisible(false);

    m.setVisible(false);

}


这是报错信息,在移动端选的是预览,在手机上选择报表类型后(下图为选择的周报),就报错.在PC端好好的。

ba86ff70f4ab1837e6669ecc0b3964c.jpg

简道云 pakhoxixi 发布于 2020-9-14 13:51 (编辑于 2020-9-14 15:40)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axingLv6专家互助
发布于2020-9-14 14:21(编辑于 2020-9-14 15:13)

改成这样

var a = _g().parameterEl.getWidgetByName("Labeltime_month");

image.png


--------------

移动端的标签名来自这里,没有单独的Label标签控件,所以获取不了,会报异常

image.png

但是pc端又要用到,所以在引用label控件的时候判断一下

if(a){
alert(a.getValue());
}else{
alert("Labela不存在")
}


  • pakhoxixi pakhoxixi(提问者) var a = _g().parameterEl.getWidgetByName(\"Labeltime_month\"); var b = _g().parameterEl.getWidgetByName(\"month\"); var c = _g().parameterEl.getWidgetByName(\"Search_month\"); var d = _g().parameterEl.getWidgetByName(\"Labeltime_weekbegin\"); var e = _g().parameterEl.getWidgetByName(\"sat\"); var f = _g().parameterEl.getWidgetByName(\"Labeltime_weekend\"); var g = _g().parameterEl.getWidgetByName(\"fri\"); var h = _g().parameterEl.getWidgetByName(\"Search_week\"); var j = _g().parameterEl.getWidgetByName(\"Labeltime_year\"); var k = _g().parameterEl.getWidgetByName(\"comboBox_year\"); var l = _g().parameterEl.getWidgetByName(\"Labeltime_halfyear\"); var m = _g().parameterEl.getWidgetByName(\"comboBox_halfyear\"); var thislen = _g().parameterEl.getWidgetByName(\"formstype\").getValue(); if(thislen == \"1\") { a.setVisible(false); b.setVisible(false); c.setVisible(false); d.setVisible(true); e.setVisible(true); f.setVisible(true); g.setVisible(true); h.setVisible(true); j.setVisible(false); k.setVisible(false); l.setVisible(false); m.setVisible(false); } else if(thislen == \"2\"){ a.setVisible(true); b.setVisible(true); c.setVisible(true); d.setVisible(false); e.setVisible(false); f.setVisible(false); g.setVisible(false); h.setVisible(false); j.setVisible(false); k.setVisible(false); l.setVisible(false); m.setVisible(false); }else if(thislen == \"3\"){ a.setVisible(false); b.setVisible(false); c.setVisible(false); d.setVisible(false); e.setVisible(false); f.setVisible(false); g.setVisible(false); h.setVisible(true); j.setVisible(true); k.setVisible(true); l.setVisible(true); m.setVisible(true); }else{ a.setVisible(false); b.setVisible(false); c.setVisible(true); d.setVisible(false); e.setVisible(false); f.setVisible(false); g.setVisible(false); h.setVisible(false); j.setVisible(true); k.setVisible(true); l.setVisible(false); m.setVisible(false); }
    2020-09-14 14:41 
  • pakhoxixi pakhoxixi(提问者) 还是报错 evaluating a.setVisible
    2020-09-14 14:42 
  • pakhoxixi pakhoxixi(提问者) 应该还是没有获取到 Labeltime_month 对应的a
    2020-09-14 14:45 
  • axing axing 回复 pakhoxixi(提问者) 你直接把模板放上来吧
    2020-09-14 14:45 
  • pakhoxixi pakhoxixi(提问者) 在移动端选的是预览
    2020-09-14 14:46 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-9-14 13:55

APP端支持这个函数的

App 端的 JS 接口-https://help.finereport.com/doc-view-586.html

应该是其他js有问题

image.png

  • pakhoxixi pakhoxixi(提问者) 我看了这个文档的,我就是看到支持才这么写的,可是我写了以后又报错了,很烦
    2020-09-14 13:59 
最佳回答
0
孤陌Lv6资深互助
发布于2020-9-14 14:09(编辑于 2020-9-14 14:11)

var i = this.options.form.getWidgetByName("formstype");

var thislen = i.getValue();


修改成

var U=  this.options.form.getWidgetByName("formstype").getValue(); 应该就没有问题

  • pakhoxixi pakhoxixi(提问者) 还是报错 evaluating a.setVisible
    2020-09-14 14:15 
  • 孤陌 孤陌 回复 pakhoxixi(提问者) 值加上双引号
    2020-09-14 14:17 
  • 孤陌 孤陌 回复 pakhoxixi(提问者) 就是你的判断条件里
    2020-09-14 14:17 
  • pakhoxixi pakhoxixi(提问者) 回复 孤陌 哥,还是一样的,我都按找您说的试了
    2020-09-14 14:39 
  • pakhoxixi pakhoxixi(提问者) 在移动端选的是预览
    2020-09-14 14:46 
  • 4关注人数
  • 625浏览人数
  • 最后回答于:2020-9-14 15:40
    请选择关闭问题的原因
    确定 取消
    返回顶部