跳转至

更新当前文档的字段值

本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f1a44h2a3ldh

脚本说明

该脚本用于更新当前文档的字段值。可以根据不同的条件和逻辑更新文档中的字段。

脚本代码

// 脚本代码待补充
// 请访问源文档链接获取完整代码

常见更新脚本示例

示例1:直接更新字段值

(function(){
    var doc = getCurrentDocument();
    if(doc != null){
        // 更新字符串类型字段
        doc.findItem("字段名").setValue("新值");

        // 更新数字类型字段
        doc.findItem("数字字段").setValue(100);

        // 更新日期类型字段
        doc.findItem("日期字段").setValue(format(new Date(), "yyyy-MM-dd"));
    }
})();

示例2:根据条件更新字段值

(function(){
    var doc = getCurrentDocument();
    if(doc != null){
        var conditionValue = doc.getItemValueAsString("条件字段");
        if(conditionValue != null && conditionValue === "条件值"){
            doc.findItem("目标字段").setValue("更新后的值");
        }
    }
})();

示例3:根据其他字段计算更新

(function(){
    var doc = getCurrentDocument();
    if(doc != null){
        var field1 = doc.getItemValueAsDouble("字段1");
        var field2 = doc.getItemValueAsDouble("字段2");
        var result = field1 + field2;
        doc.findItem("合计字段").setValue(result);
    }
})();

示例4:从数据库查询更新

(function(){
    var doc = getCurrentDocument();
    if(doc != null){
        var keyValue = doc.getItemValueAsString("关键字段");
        var sql = "select domainid,item_字段名 from tlk_表单名 where item_关键字段 = '"+keyValue+"'";
        var data = findBySQL(sql);
        if(data != null){
            var updateValue = data.getItemValueAsString("字段名");
            doc.findItem("目标字段").setValue(updateValue);
        }
    }
})();

示例5:批量更新多个字段

(function(){
    var doc = getCurrentDocument();
    if(doc != null){
        // 更新多个字段
        doc.findItem("字段1").setValue("值1");
        doc.findItem("字段2").setValue("值2");
        doc.findItem("字段3").setValue("值3");

        // 保存文档
        var docProcess = getDocumentProcess();
        docProcess.doUpdate(doc);
    }
})();

示例6:更新子表字段

(function(){
    var doc = getCurrentDocument();
    if(doc != null){
        var subTable = doc.getSubTable("子表名");
        if(subTable != null && subTable.size() > 0){
            for(var i = 0; i < subTable.size(); i++){
                var row = subTable.get(i);
                row.findItem("子表字段").setValue("新值");
            }
        }
    }
})();

使用场景

  • 根据条件更新文档字段
  • 批量更新字段值
  • 字段值联动更新
  • 根据计算更新字段
  • 从其他数据源更新字段
  • 表单保存前自动更新字段

关键函数说明

  • getCurrentDocument(): 获取当前文档对象
  • doc.findItem("字段名"): 查找文档中的字段
  • setValue(value): 设置字段值
  • getItemValueAsString("字段名"): 获取字符串类型字段值
  • getItemValueAsDouble("字段名"): 获取数字类型字段值
  • docProcess.doUpdate(doc): 更新并保存文档

字段类型更新方法

  • 字符串字段: doc.findItem("字段名").setValue("字符串值")
  • 数字字段: doc.findItem("字段名").setValue(数字值)
  • 日期字段: doc.findItem("字段名").setValue("2024-01-01") 或日期对象
  • 选择框字段: doc.findItem("字段名").setValue("选项值")
  • 用户字段: doc.findItem("字段名").setValue("用户ID")

注意事项

  • 需要根据实际业务需求调整更新逻辑
  • 注意字段类型匹配,确保设置的值类型正确
  • 考虑数据权限和验证,确保有更新权限
  • 更新前建议检查字段是否存在
  • 注意更新时机,可以在保存前、提交前等不同时机更新
  • 批量更新时注意性能影响
  • 更新子表字段时注意索引和循环处理

如需查看完整脚本代码,请访问源文档链接。