js实现提报扩展控件控制

各位老师好,我希望通过省份单元格的值控制城市单元格控件是否可用,比如省份单元格等于1时,城市单元格控件可用,省份单元格等于2时,城市单元格控件不可用,同时保证向下扩展依然有效,但是一直没有成功,希望等到各位老师的帮助,谢谢!

目前的模板为:

image.png

目前的效果为:

image.png

目前模板WEB属性提报页面设置中使用的加载结束事件为:

var a = 1;

var b = contentPane.curLGP.getCellValue("A1");

while(a<=b){

    var c = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: 1, row: a}));

    var e = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: 2, row: a}));

    var d = c.getValue();

     if(c==1)

     {

        e.setVisible(true);

        e.setEnable(true);

     }

     else{

            e.setVisible(false);

            e.setEnable(false);

     }

     a++;

     }

附件为具体模板

js控件多行控制001.cpt


FineReport gaohongbo316 发布于 2019-4-30 13:35
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
孤陌Lv6资深互助
发布于2019-4-30 13:43(编辑于 2019-4-30 14:23)

JS获取填报扩展单元格控件的值-http://help.finereport.com/doc-view-1793.html 用这个里面的方法 就好了

var a=this.getValue();

var location = this.options.location;  //获取当前控件的位置

var cr = FR.cellStr2ColumnRow(location);

var col = cr.col;  //列号

var ro = cr.row;  //行号

var e = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col-1, row: ro}));

//根据单元格获取控件

if(a==1)

     {

        e.setVisible(true);

        e.setEnable(true);

     }

     else{

            e.setVisible(false);

            e.setEnable(false);

     }


1556602536693506 (1).cpt


  • gaohongbo316 gaohongbo316(提问者) 老师您好,这个方法的确可行,但是存在一个问题,就是一旦增加记录(向下扩展)后,城市单元格的值都会被清空,这个能否解决呢?
    2019-04-30 14:03 
  • 孤陌 孤陌 回复 gaohongbo316(提问者) 没有测试 你的JS不应该写在加载结束事件里
    2019-04-30 14:06 
  • gaohongbo316 gaohongbo316(提问者) 回复 孤陌 我已经放在了控件的编辑结束事件里了,遇到的问题就是增加记录,城市单元格数值就会被清空
    2019-04-30 14:07 
  • 孤陌 孤陌 回复 gaohongbo316(提问者) 我怎么就没有呢?
    2019-04-30 14:21 
  • 孤陌 孤陌 回复 gaohongbo316(提问者) 你把你加载结束事件删了再说
    2019-04-30 14:21 
最佳回答
0
PoseidonLv5高级互助
发布于2019-4-30 13:38

这个不用写JS啊,直接原值,然后填报下拉框联动啊


image.png

  • gaohongbo316 gaohongbo316(提问者) 老师好,我这个需求不是联动,而是根据值的结果控制其他单元格的控件是否可用,可能是我使用省份和城市举例误导了您,不好意思! 我的需求是,如果A1单元格=集团,B1单元格=大区,C1单元格可以编辑,而如果A1单元格=集团,B1单元格等于渠道,C1单元格不允许编辑,大概是这么个需求
    2019-04-30 14:06 
  • 3关注人数
  • 816浏览人数
  • 最后回答于:2019-4-30 14:23
    请选择关闭问题的原因
    确定 取消
    返回顶部