更改表单字段值¶
更改表单字段值示例代码:
var updateSql = "update tlk_开票计划 set item_计划已开票额 = '"+mon+"' where ITEM_计划开票日期='"+startTime+"'";
updateSql+=" and item_合同编号='"+contractNum+"'";
updateByDSName("数据源",updateSql);
脚本说明¶
该脚本用于通过 SQL 语句直接更新表单中的字段值。使用 updateByDSName 函数执行更新操作,可以根据条件更新指定表单的字段值。
脚本功能¶
- 通过 SQL UPDATE 语句更新表单字段
- 支持多条件更新
- 可以更新指定数据源中的表单数据
使用场景¶
- 批量更新表单字段值
- 根据条件更新表单数据
- 跨表单数据同步
- 数据修复和更新
扩展示例¶
示例1:单条件更新¶
(function(){
var fieldValue = "新值";
var conditionValue = "条件值";
var updateSql = "update tlk_表单名 set item_字段名 = '"+fieldValue+"' where item_条件字段='"+conditionValue+"'";
updateByDSName("数据源名称",updateSql);
})();
示例2:多条件更新¶
(function(){
var newValue = "新值";
var condition1 = "条件1";
var condition2 = "条件2";
var updateSql = "update tlk_表单名 set item_字段名 = '"+newValue+"'";
updateSql += " where item_条件字段1='"+condition1+"'";
updateSql += " and item_条件字段2='"+condition2+"'";
updateByDSName("数据源名称",updateSql);
})();
示例3:更新多个字段¶
(function(){
var value1 = "值1";
var value2 = "值2";
var condition = "条件值";
var updateSql = "update tlk_表单名 set item_字段1 = '"+value1+"', item_字段2 = '"+value2+"'";
updateSql += " where item_条件字段='"+condition+"'";
updateByDSName("数据源名称",updateSql);
})();
示例4:根据当前文档更新¶
(function(){
var doc = getCurrentDocument();
var docId = doc.getId();
var newValue = doc.getItemValueAsString("源字段");
var updateSql = "update tlk_表单名 set item_目标字段 = '"+newValue+"' where id='"+docId+"'";
updateByDSName("数据源名称",updateSql);
})();
示例5:批量更新¶
(function(){
var sql = "select domainid,id from tlk_表单名 where item_条件字段='条件值'";
var datas = queryBySQL(sql);
if(datas != null && datas.size() > 0){
for(var it = datas.iterator(); it.hasNext(); ){
var data = it.next();
var docId = data.getId();
var updateSql = "update tlk_表单名 set item_字段名 = '新值' where id='"+docId+"'";
updateByDSName("数据源名称",updateSql);
}
}
})();
关键函数说明¶
updateByDSName("数据源名称", sql): 在指定数据源中执行 SQL 更新语句- 参数1:数据源名称
- 参数2:SQL UPDATE 语句
SQL 语句说明¶
- 表名格式:
tlk_表单名(tlk_ 前缀 + 表单名称) - 字段名格式:
item_字段名(item_ 前缀 + 字段名称) - 条件字段: 使用
where子句指定更新条件 - 多条件: 使用
and连接多个条件
注意事项¶
- 数据源名称必须正确,确保有访问权限
- SQL 语句中的字段名需要与实际数据库字段名匹配
- 注意 SQL 注入风险,对用户输入进行验证和转义
- 更新操作会直接修改数据库,请谨慎使用
- 建议在更新前先查询确认要更新的记录
- 注意字段类型匹配,字符串值需要用单引号包裹
- 批量更新时注意性能影响
- 更新操作不可恢复,建议先备份数据
与原文档更新方法的区别¶
- updateByDSName: 直接通过 SQL 更新数据库,不经过文档对象
- doc.findItem().setValue(): 通过文档对象更新,需要先获取文档
本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f1a40544ik3q
文档更新时间: 2023-09-16 04:55 作者:admin