跳转至

视图确认脚本的简单代码

视图确认脚本示例代码:

(function(){
    var relate = getRelateDocument();
    var selectId = getParameterAsText("_selects");
    var sel=selectId.replace(";","','");
    if(sel !=null && sel.trim().length>0){
        var relateId = relate.getId();
        var curDoc = getCurrentDocument();
        var docProcess = getDocumentProcess();
        var formProcess = getFormProcess();
        var newForm = formProcess.doViewByFormName("明细表单",getApplication());
        sel="('"+sel+"')";
        var sql="select domainid,item_string类型,item_double类型 from tlk_表单 where 条件 in "+sel;
        var datas = queryBySQL(sql);
        if(datas!=null || datas.size()>0){
            for(var it = datas.iterator();it.hasNext(); ){
                var data = it.next();
                var dataId = data.getId();
                var newDoc = docProcess.doNew(newForm,getWebUser(),createParamsTable());
                //检测是否存在.一般都写在视图内这块不用
                var isExistSql = "select domainid from tlk_明细表单 where parent='"+relateId+"' and item_.... ='"+dataId+"'";
                var isExistData = countBySQL(isExistSql);
                if(isExistData <=0){
                    var sproNum = data.getItemValueAsString("单项编号");
                    var contractNum = data.getItemValueAsString("合同编号");
                    var invoiceNum = data.getItemValueAsString("发票号");
                    var projectNumber=getProNumBySProNum(sproNum);
                    newDoc.setParent(relateId);
                    newDoc.setAuthor(getWebUser().getId());
                    newDoc.setIstmp(false);
                    newDoc.setApplicationid(getApplication());
                    newDoc.setDomainid(getWebUser().getDomainid());
                    newDoc.addStringItem("string类型",data.getItemValueAsString("string类型"));
                    newDoc.addDoubleItem("double类型",data.getItemValueAsDouble("double类型"));
                    docProcess.doCreate(newDoc);
                }
            }
        }
    }
})();

脚本说明

该脚本实现了视图确认功能,主要流程如下:

  1. 获取关联文档和选中项
  2. 通过 getRelateDocument() 获取关联文档
  3. 通过 getParameterAsText("_selects") 获取视图中选中的记录ID

  4. 处理选中项

  5. 将选中项ID字符串中的分号替换为单引号分隔格式
  6. 构建SQL查询条件

  7. 查询数据

  8. 根据选中项ID查询对应的表单数据
  9. 使用 queryBySQL() 执行查询

  10. 创建子文档

  11. 遍历查询结果
  12. 检查是否已存在(避免重复创建)
  13. 创建新的明细表单文档
  14. 设置文档属性(父文档、作者、应用ID、域ID等)
  15. 复制数据字段到新文档
  16. 保存新文档

关键函数说明

  • getRelateDocument(): 获取关联的父文档
  • getParameterAsText("_selects"): 获取视图中选中的记录ID
  • formProcess.doViewByFormName(): 根据表单名称获取表单对象
  • queryBySQL(): 执行SQL查询
  • docProcess.doNew(): 创建新文档
  • countBySQL(): 统计查询结果数量
  • docProcess.doCreate(): 保存文档

使用场景

  • 视图批量确认操作
  • 从视图选择数据创建子表记录
  • 主子表单数据关联

注意事项

  • 需要根据实际表单名称和字段名称修改脚本中的占位符
  • 注意检查重复数据,避免重复创建
  • 确保有足够的权限创建和保存文档

本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f1a4gp7u9qm2
文档更新时间: 2023-09-16 06:50 作者:admin