更新当前文档的字段值¶
本文档内容来源于 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")
注意事项¶
- 需要根据实际业务需求调整更新逻辑
- 注意字段类型匹配,确保设置的值类型正确
- 考虑数据权限和验证,确保有更新权限
- 更新前建议检查字段是否存在
- 注意更新时机,可以在保存前、提交前等不同时机更新
- 批量更新时注意性能影响
- 更新子表字段时注意索引和循环处理
如需查看完整脚本代码,请访问源文档链接。