下拉框选择后,根据值,改变后面单元格样式,在插入行时,单元格公式不起作用问题

图片.png目前已实现,选择cms,后面两个单元格禁止输入,后面第三个单元格改变为灰色、并且手输,,选择单量罐时,后面两个单元格可以输入,后面第三个单元格改变为黄色、并且自动计算,不能手输、、、但是在插入新的一行时,再次选择单量罐时,后面第三个单元格公式不起作用,,在插入一行时,上面的公式才起效果     请问各位大神怎么解决  卡了一天了,,附上js 和设置    

下拉框编辑后js: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.getWidgetByName("dlkj");
// var e = contentPane.getWidgetByName(FR.columnRow2CellStr({col: col+5, row: ro}));
var e = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+5, row: ro}));

var f = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+3, row: ro}));
var g = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+4, row: ro}));
//var h = contentPane.getCellValue(21, 4);
//var qyw = contentPane.getCellValue(col+3,ro);

//var hyw = contentPane.getCellValue(col+4,ro);

//var zhi4 = (hyw - qyw ) *h;
//alert(h);
//alert(qyw);
//alert(hyw);
//alert(zhi4);
//根据单元格获取控件
var d = FR.columnRow2CellStr({col: col+5, row: ro});

if(a=='90.02'){
                                    e.setVisible(false);
                                    e.setEnable(false);
                                    // e.setCellValue("E2",null,"2")
                                    $("td[id^="+d+"]").css({"background-color":"ffffc8"})
                             }else if(a.length==0){
                                    e.setVisible(false);
                                    e.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"ffffc8"})                            
                            
                             }else if(a=='90.01'){                            
                                    e.setVisible(true);                                    
                                    e.setEnable(true);    
                                    f.setVisible(false);
                                    g.setVisible(false);
                                    f.setEnable(false);
                                    g.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"grey"})                            
                            
                             }else if(a=='90.03'){                            
                                    e.setVisible(true);                                    
                                    e.setEnable(true);    
                                    f.setVisible(false);
                                    g.setVisible(false);
                                    f.setEnable(false);
                                    g.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"grey"})                    
                            
                             }else if(a=='90.04'){                            
                                    e.setVisible(true);                                    
                                    e.setEnable(true);
                                    f.setVisible(false);
                                    g.setVisible(false);
                                    f.setEnable(false);
                                    g.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"grey"})                    
                            
                             }else{                            
                                    e.setVisible(true);
                                    
                                    e.setEnable(true);
                                    f.setVisible(false);
                                    g.setVisible(false);
                                    f.setEnable(false);
                                    g.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"grey"})                                
                             }

下拉框初始化后js: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.getWidgetByName("dlkj");
// var e = contentPane.getWidgetByName(FR.columnRow2CellStr({col: col+5, row: ro}));

setTimeout(function(){
    var e = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+5, row: ro}));
    var f = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+3, row: ro}));
  var g = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+4, row: ro}));
//根据单元格获取控件
  var d = FR.columnRow2CellStr({col: col+5, row: ro});

                                if(a=='90.02'){
                                    e.setVisible(false);
                                    e.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"ffffc8"})
                             }else if(a.length==0){
                                    e.setVisible(false);
                                    e.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"ffffc8"})                            
                            
                             }else if(a=='90.01'){                            
                                    e.setVisible(true);                                    
                                    e.setEnable(true);    
                                    f.setVisible(false);
                                    g.setVisible(false);
                                    f.setEnable(false);
                                    g.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"grey"})                            
                            
                             }else if(a=='90.03'){                            
                                    e.setVisible(true);                                    
                                    e.setEnable(true);    
                                    f.setVisible(false);
                                    g.setVisible(false);
                                    f.setEnable(false);
                                    g.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"grey"})                    
                            
                             }else if(a=='90.04'){                            
                                    e.setVisible(true);                                    
                                    e.setEnable(true);
                                    f.setVisible(false);
                                    g.setVisible(false);
                                    f.setEnable(false);
                                    g.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"grey"})                    
                            
                             }else{                            
                                    e.setVisible(true);
                                    
                                    e.setEnable(true);
                                    f.setVisible(false);
                                    g.setVisible(false);
                                    f.setEnable(false);
                                    g.setEnable(false);
                                    $("td[id^="+d+"]").css({"background-color":"grey"})                                
                             }
                            
                             },100)
第三个单元格设置:图片.png,设置原值、  单元格里面公式:图片.png

插入第二行时公式不起作用:图片.png

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

公式跟js基本不相关。请检查两件事:

一,公式会不会计算到有空值的单元格。

二,公式的插入行策略有没有选择:原值

  • rushwei rushwei(提问者) 插入行策略就是原值 ,没有空值
    2020-06-02 14:55 
  • luojian0323 luojian0323 回复 rushwei(提问者) 方便的话上传模板看一下
    2020-06-02 15:23 
  • luojian0323 luojian0323 回复 rushwei(提问者) 公式在加载的时候遇到null值。就会计算失败
    2020-06-02 15:23 
  • 2关注人数
  • 640浏览人数
  • 最后回答于:2020-6-2 11:10
    请选择关闭问题的原因
    确定 取消
    返回顶部