填报

在提交前,我如果新增或修改了设备编码,我想任务编码会自动生成一个由输入的设备编码+当天日期+序号的默认值,然后再点击提交存到数据库中(之所以没有直接写公式在单元格,是因为他在提交后才生效,就导致每次插入数据库的时候都会有一条空的任务编号的数据)。

求求各位大佬说详细点,用了各种方式,找了AI帮忙写代码,但没什么用,主要是没有JS基础 就很难受,下面是ai生成的  放在了设备编码单元格-文本控件-时间-编辑结束后

// 设备编码单元格编辑结束事件

计划初版-测试.zip

// 假设设备编码所在单元格为B4,任务编码所在单元格为G4

var deviceCodeCell = contentPane.getCell("B4");

var taskCodeCell = contentPane.getCell("G4");

// 生成唯一序号的方法(简化版,实际应用中可能需要更复杂的逻辑)

var generateSequence = function() {

    // 这里可以使用更复杂的逻辑,比如从数据库获取当前最大序号

    // 暂时返回固定值,您可以根据需要修改

    return "001";

};

// 给设备编码单元格绑定编辑结束事件

deviceCodeCell.on("afterEdit", function() {

    // 获取设备编码单元格的值

    var deviceCode = this.getValue();

    

    // 如果设备编码不为空才生成任务编码

    if (deviceCode && deviceCode !== "") {

        // 获取当前日期并格式化为yyyyMMdd格式

        var today = new Date();

        var year = today.getFullYear();

        var month = today.getMonth() + 1; // 月份从0开始,所以加1

        var day = today.getDate();

        

        // 补全月份和日期为两位数

        month = month < 10 ? "0" + month : month;

        day = day < 10 ? "0" + day : day;

        

        var dateStr = year + "" + month + "" + day;

        

        // 获取序号

        var sequence = generateSequence();

        

        // 拼接任务编码

        var taskCode = deviceCode + "-" + dateStr + "-" + sequence;

        

        // 设置任务编码到对应单元格

        taskCodeCell.setValue(taskCode);

        

        // 刷新单元格显示

        taskCodeCell.refresh();

    } else {

        // 如果设备编码为空,清空任务编码

        taskCodeCell.setValue("");

        taskCodeCell.refresh();

    }

});

// 页面加载完成后,如果设备编码已有值,初始化任务编码

contentPane.on("afterLoad", function() {

    var deviceCode = deviceCodeCell.getValue();

    if (deviceCode && deviceCode !== "") {

        // 触发一次编辑结束事件来生成任务编码

        deviceCodeCell.fireEvent("afterEdit");

    }

});

微信图片_2025-08-20_222812_052.png

FineReport KennethGYD 发布于 2025-8-20 22:35
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
华莉星宸Lv7专家互助
发布于2025-8-20 22:54

建议直接在数据库写个行级触发器来生成你需要的编号

提交数据后 显示出来就好了

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

也可参考

关于流水号解决-自动编号方案https://bbs.fanruan.com/thread-94635-1-1.html

关于自动编号的实现https://bbs.fanruan.com/thread-107102-1-1.html

呕心沥血整理的一个自动编号解决方案https://bbs.fanruan.com/thread-72420-1-1.html

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