跳转至

更改表单字段值

更改表单字段值示例代码:

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