跳转至

表单脚本(FORM)

配套:generate-form-file。JsonTemplate 字段键一律**小写**;Form 元数据多为**小写脚本字段名**或 camelCase(见各卡)。


表单级开关

是否可打开

内容
Label FORM:OPEN
属性 isopenablescript
触发 打开表单
返回 Boolean;true=允许打开,false=禁止(空≈允许)
(function () {
  return getWebUser().getName() !== "smart";
})()

是否可编辑

内容
Label FORM:EDIT
属性 iseditablescript
触发 打开表单
返回 Boolean;true=可编辑
(function () {
  return getWebUser().getName() !== "smart";
})()

水印

内容
Label FORM:WATERMARK
属性 waterMarkScript
触发 打开表单(开启水印时)
返回 String;水印文案
(function () {
  return getWebUser().getName();
})()

留痕模式脚本

内容
Label FORM:LOG
属性 recordModeScriptrecordMode=script
触发 按留痕逻辑求值
返回 依产品约定(常为模式相关布尔/串)

评论

场景 Label 属性 返回
隐藏评论 FORM:COMMENT_HIDE commentHiddenScrtipt(历史拼写 Scrtipt) Boolean;true=隐藏
评论执行 FORM:COMMENT_REPLAY commentExecuteScript 依产品
评论标题 FORM:COMMENT_TITLE commentTitleScript String
评论标签 FORM:COMMENT_TAG commentFlagScript String/标记

值脚本

字段值

内容
Label FORM:FIELD_VALUE
属性 XML/API:valueScript;JsonTemplate:valuescript;常配 editmode=01 / calculateonrefresh
触发 打开表单 / 刷新计算
返回 控件显示或存值(类型随控件;多为 String)
(function () {
  var v = getItemValueAsString("报销人");
  if (v == null || v === "") {
    v = getWebUser().getName();
  }
  return v;
})()

计算文本等不落库控件同 Label,属性仍为 valuescript


选项脚本

选项类控件选项

内容
Label FORM:FIELD_OPTION
属性 JsonTemplate:optionsscriptoptionseditmode=01
触发 打开表单
返回 Options,或 "1:A;2:B" / "A;B"
(function () {
  var opts = createOptions();
  opts.add("", "");
  var datas = queryByDSName("MY_DS", "select id, name from t_user");
  if (datas != null) {
    for (var it = datas.iterator(); it.hasNext();) {
      var row = it.next();
      opts.add(row.get("name"), row.get("id"));
    }
  }
  return opts;
})()

适用于 Select / Radio / Checkbox / Suggest / SelectAbout 等。


校验脚本

字段校验

内容
Label FORM:FIELD_VALIDATE
属性 校验脚本字段 / JsonTemplate 校验相关键
触发 保存/校验时
返回 失败=提示 String;成功=""
(function () {
  var rt = getItemValueAsString("职务");
  if (rt == null || rt === "") {
    return "'职务'不能为空";
  }
  return "";
})()

隐藏脚本

控件隐藏

内容
Label FORM:FIELD_HIDE
属性 hiddenScript / hiddenscript
触发 打开表单
返回 Boolean;true=隐藏
(function () {
  return getCurrentDocument().getItemValueAsString("IsStartup") === "02";
})()

打印时隐藏

内容
Label FORM:FIELD_PRINT_HIDE
属性 hiddenPrintScript / hiddenprintscript
触发 打印
返回 Boolean;true=打印时隐藏
(function () {
  return false;
})()

Tab 页签、包含元素等同类属性:hiddenScript / hiddenPrintScript(Tab 子项常为 camelCase)。


只读脚本

控件只读

内容
Label FORM:FIELD_READONLY
属性 readonlyScript / readonlyscript;Tab:readOnlyScript
触发 打开表单
返回 Boolean;true=只读
(function () {
  return getCurrentDocument().getItemValueAsString("IsStartup") === "02";
})()

描述 / 问卷 / 二维码

字段描述

内容
Label FORM:FIELD_DESCRIPTION
属性 discript(描述脚本)
触发 打开表单
返回 String;描述文案

调查问卷

内容
Label FORM:FIELD_QUESTION
属性 questionscript
触发 打开表单
返回 Question 列表
(function () {
  var q = createQuestion(1, "你的爱好(多选)");
  q.addCheckboxOption("羽毛球", "羽毛球");
  var qs = new java.util.ArrayList();
  qs.add(q);
  return qs;
})()

二维码内容

内容
Label FORM:FIELD_QR_CONTENT
属性 二维码内容脚本
触发 打开表单
返回 String(可为 URL)
(function () {
  return "https://www.baidu.com/";
})()

按钮与确认

表单工具栏 .activity 脚本见 activity.md。按钮**字段** JsonTemplate 常用:

场景 Label 属性
执行前 (同 ACTIVITY 前置语义) beforeactionscript
动作 actionscript
执行后 afteractionscript
跳转 URL ACTIVITY:DISPATCHERURL 语义 actiondispatcherurlscript
文件名 ACTIVITY:FILENAME 语义 filenamescript
签章位置 FORM:FIELD_SIGN_POSITION signaturePosScript
视图选择确认 FORM:FIELD_OK okscript
确认回调 FORM:FIELD_OK_CALLBACK callbackscript

按钮执行前(示例)

(function () {
  return createConfirm("确定要提交文档?");
})()

返回:无 / 警告 String / Message(Confirm、Alert)。

按钮执行后(示例)

(function () {
  sendMail(getItemValueAsString("from"), getItemValueAsString("to"),
    getItemValueAsString("subject"), getItemValueAsString("content"));
})()

无强制返回值。


Tab / HTML / 上传 / 签名 / 摘要

场景 Label 属性 返回
Tab 标题 FORM:FIELD_TAB_TITLE titleScript String
Tab 选中 FORM:FIELD_TAB_SELECTED selectedscript Boolean/选中逻辑
Tab 刷新检查 FORM:FIELD_TAB_CHECK_REFRESH selectRefreshScript Boolean
HTML 内容 FORM:FIELD_HTML HTML 脚本属性 String HTML
签名 FORM:FIELD_SIGNATURE 签章相关 依控件
上传下载权限 FORM:FIELD_UPLOAD_DOWNLOAD downloadscript Boolean/权限
上传删除 FORM:FIELD_UPLOAD_REMOVE deletescript Boolean
上传重命名 FORM:FIELD_UPLOAD_RENAME renamescript Boolean
上传预览 FORM:FIELD_UPLOAD_PREVIEW previewscript Boolean
在线编辑 FORM:FIELD_UPLOAD_ONLINEEDIT editscript Boolean
新版本 FORM:FIELD_UPLOAD_VERSION_RENEW newversionscript Boolean
版本比较 FORM:FIELD_UPLOAD_VERSION_COMPARE versioncomparescript Boolean
版本还原 FORM:FIELD_UPLOAD_VERSION_REVERT restorescript Boolean
上传水印 FORM:FIELD_UPLOAD_WATERMARK watermarkscript String/水印
摘要 FORM:SUMMARY 摘要脚本 String
打印 HTML FORM:TOHTML 打印转换脚本 String HTML

上传权限类最短例:

(function () {
  return true;
})()

跳过

Label 说明
FORM:UNKNOW 运行时兜底,不写入业务定义
FORM:ACTIVITY 表单关联操作标签;工具栏脚本写在 .activity,见 activity.md
FORM:FIELD_CACULATE 源码已注释,不使用