填报

设了一个提交按钮,他自己本身也带有一个提交入库事件,然后又加了一个点击事件,如果校验成功,才会二次确认,调用另一个提交入库按钮,但现在校验成功后,后面部分的模拟点击没有起作用,包括这个按钮自身的提交事件也没有用

// 1. 找复选框 & 遍历选中的

var boxes = _g().getWidgetsByName("box");

for (let i = 0; i < boxes.length; i++) {

  if (boxes[i].getValue()) { // 只处理选中的复选框

    // 2. 算当前行的 AB5 单元格

    var cell = boxes[i].options.location; 

    var cr = FR.cellStr2ColumnRow(cell); 

    var ab5Cell = FR.columnRow2CellStr({ col: cr.col+27, row: cr.row }); 

    var ab5Value = _g().getCellValue(ab5Cell); 

    // 3. AB5=1 就提示,终止流程

    if (ab5Value == 1) {

      FR.Msg.alert("提示", "该计划已下发,不可以再提交");

      return; // 不走后面的提交逻辑

    }

  }

}

// 4. 其他校验(比如 verifyReport)

if (_g().verifyReport()) { 

  // 5. 二次确认弹框

  FR.Msg.confirm("警告", "确定要下发所选计划吗?", function(ok) {

    if (ok) {

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

     var cr = FR.cellStr2ColumnRow(location); 

      console.log(cr); 

     var col = cr.col;  //列号 

     var ro = cr.row;  //行号 

     //var delcell=_g().getCellValue(0,col+3,ro); 

      // 6. 模拟点击目标按钮(比如提交按钮)

      var delcell = FR.columnRow2CellStr({ col: cr.col+3, row: cr.row });

       console.log(delcell); 

      _g().getWidgetByCell(delcell).fireEvent("click"); 

      // 7. 延迟刷新表格

      setTimeout(() => {

        _g().refreshAllSheets();

      }, 100);

    }

  });

}

FineReport KennethGYD 发布于 2025-8-24 11:02 (编辑于 2025-8-24 11:02)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
Y时光Lv5见习互助
发布于2025-8-24 13:53(编辑于 2025-8-24 14:02)
把校验JS换为如下

//_g().verifyReport() 这个校验动作是没有返回值的
if (_g().verifyReport()) { 

}
//如果需要判断是否校验成功,需要在校验后写JS
if (fr_verifyinfo.success) {
	alert("校验成功");
}

image.png

  • 2关注人数
  • 32浏览人数
  • 最后回答于:2025-8-24 14:02
    请选择关闭问题的原因
    确定 取消
    返回顶部