配套: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 |
| 属性 |
recordModeScript(recordMode=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:optionsscript(optionseditmode=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 |
源码已注释,不使用 |