跳转至

表单名称

表单名称和表单ID之间的相互获取方法。

表单名称获取表单ID

(function () {
    var formProcess = getFormProcess();
    var form1 = formProcess.doViewByFormName("Task", getApplication());
    var formId = form1.getId();
    println("formId===>" + formId);
})()

表单ID获取表单名称

var name = getFormProcess().findById(applicationId, formId).getName()

脚本说明

该脚本提供了表单名称和表单ID之间相互转换的方法。

表单名称 → 表单ID

通过表单名称查找表单对象,然后获取表单ID。

表单ID → 表单名称

通过表单ID查找表单对象,然后获取表单名称。

使用场景

  • 根据表单名称获取表单ID
  • 根据表单ID获取表单名称
  • 表单名称和ID的相互转换
  • 动态获取表单信息

扩展示例

示例1:表单名称获取表单ID(完整版)

(function(){
    var formName = "表单名称";
    var formProcess = getFormProcess();
    var form = formProcess.doViewByFormName(formName, getApplication());

    if(form != null){
        var formId = form.getId();
        println("表单名称:" + formName);
        println("表单ID:" + formId);
        return formId;
    }else{
        println("未找到表单:" + formName);
        return null;
    }
})();

示例2:表单ID获取表单名称(完整版)

(function(){
    var formId = "表单ID";
    var applicationId = getApplication();
    var formProcess = getFormProcess();
    var form = formProcess.findById(applicationId, formId);

    if(form != null){
        var formName = form.getName();
        println("表单ID:" + formId);
        println("表单名称:" + formName);
        return formName;
    }else{
        println("未找到表单ID:" + formId);
        return null;
    }
})();

示例3:获取当前文档的表单名称和ID

(function(){
    var doc = getCurrentDocument();
    if(doc != null){
        var formId = doc.getFormid();
        var formName = doc.getFormname();

        println("当前表单ID:" + formId);
        println("当前表单名称:" + formName);

        return "表单ID:" + formId + ",表单名称:" + formName;
    }
})();

示例4:根据表单名称创建文档

(function(){
    var formName = "目标表单名称";
    var formProcess = getFormProcess();
    var form = formProcess.doViewByFormName(formName, getApplication());

    if(form != null){
        var formId = form.getId();
        var docProcess = getDocumentProcess();
        var newDoc = docProcess.doNew(form, getWebUser(), createParamsTable());

        // 设置文档字段值
        newDoc.findItem("字段名").setValue("值");

        // 保存文档
        docProcess.doCreate(newDoc);

        return "已创建文档,表单ID:" + formId;
    }else{
        return "未找到表单:" + formName;
    }
})();

示例5:批量获取多个表单的ID

(function(){
    var formNames = ["表单1", "表单2", "表单3"];
    var formProcess = getFormProcess();
    var result = {};

    for(var i = 0; i < formNames.length; i++){
        var formName = formNames[i];
        var form = formProcess.doViewByFormName(formName, getApplication());
        if(form != null){
            result[formName] = form.getId();
        }
    }

    return result;
})();

关键函数说明

表单名称获取表单ID

  • getFormProcess(): 获取表单处理对象
  • formProcess.doViewByFormName("表单名称", applicationId): 根据表单名称获取表单对象
  • 参数1: 表单名称(字符串)
  • 参数2: 应用ID
  • form.getId(): 获取表单ID

表单ID获取表单名称

  • getFormProcess(): 获取表单处理对象
  • formProcess.findById(applicationId, formId): 根据表单ID获取表单对象
  • 参数1: 应用ID
  • 参数2: 表单ID
  • form.getName(): 获取表单名称

其他相关函数

  • getApplication(): 获取当前应用ID
  • getCurrentDocument(): 获取当前文档对象
  • doc.getFormid(): 获取文档的表单ID
  • doc.getFormname(): 获取文档的表单名称

注意事项

  • ⚠️ 表单名称必须完全匹配: 使用 doViewByFormName() 时,表单名称必须与实际表单名称完全一致(区分大小写)
  • ⚠️ 表单ID必须正确: 使用 findById() 时,确保表单ID正确
  • ⚠️ 应用ID必须正确: 两个方法都需要提供正确的应用ID
  • 表单不存在时,doViewByFormName()findById() 可能返回 null,需要判断
  • 表单名称可能包含路径,如 "应用/模块/表单名"
  • 建议在使用前先判断表单对象是否为 null,避免空指针异常

表单名称格式

表单名称可能有以下几种格式:

  • 简单名称: "表单名"
  • 带路径名称: "应用/模块/表单名"
  • 完整路径: "应用/子应用/模块/表单名"

使用 doViewByFormName() 时,需要提供完整的表单名称路径。

常见应用

  1. 动态表单操作: 根据表单名称动态获取表单ID进行操作
  2. 表单信息获取: 获取表单的详细信息
  3. 表单验证: 验证表单是否存在
  4. 文档创建: 根据表单名称创建文档
  5. 表单关联: 在不同表单之间建立关联

本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f32prsbq0d34
文档更新时间: 2023-10-09 05:41 作者:john