2.2.2. 表单控件
设置表单控件的值
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->表单控件->值 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:String含义:新建表单时,需要默认显示当前用户姓名 |
示例代码:
//用当前用户名填充控件默认值
(function () {
var applicant = getItemValueAsString("报销人");
if (applicant == null || applicant == "") {
applicant = getWebUser().getname();
}
return applicant;
})()
设置表单选项类控件的选项
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->表单控件->选项 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:String或Options对象含义:选项内容 |
示例代码:
//用t_user表的数据填充选项,可以返回Options对象,或者 "1:A;2:B" 或者 "A;B"格式字符串
(function () {
//创建指定类对象
var opts = createOptions();
opts.add("", "");
var sql = "select id, name from t_user";
var datas = queryByDSName("MY_DS", sql);//MY_DS为数据源
if (datas != null) {
for (var iterator = datas.iterator(); iterator.hasNext();) {
var map1 = iterator.next();//取值
var name = map1.get("name");
var value = map1.get("id");
opts.add(name, value);
}
}
return opts;
})()
对表单控件输入进行校验
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->表单控件->校验 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:String含义:校验失败时提示语 |
示例代码:
//校验控件值不能为空
(function () {
var rt = getItemValueAsString("职务");
if (rt == null || "".equals(rt)) {
return "'职务'不能为空";
}
return "";
})()
判断表单控件是否只读
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->表单控件->只读条件 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Boolean含义:true(只读)|false(可编辑) |
示例代码:
//当控件IsStartup值为“02”时,则当前字段只读
(function () {
var doc = getCurrentDocument();
var IsSartup = doc.getItemValueAsString("IsStartup");
var flag = true;
if ("02".equals(IsSartup)) {
flag = false;
}
return flag;
})()
判断表单控件是否需要隐藏
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->表单控件->隐藏条件 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Boolean含义:true(隐藏)|false(可见) |
示例代码:
//当控件IsStartup值为“02”时,则当前字段隐藏
(function () {
var doc = getCurrentDocument();
var IsSartup = doc.getItemValueAsString("IsStartup");
var flag = true;
if ("02".equals(IsSartup)) {
flag = false;
}
return flag;
})()
判断表单控件打印时是否需要隐藏
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->表单控件->打印时隐藏条件 | 点击打印按钮时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Boolean含义:true(隐藏)|false(可见) |
示例代码:
//当前用户的角色为非“系统管理员”时,则当前控件隐藏
(function () {
var roleid = getRoleIdByName("系统管理员");
var roles = getWebUser().getRoles();
var isHidden = true;
if (roles != null && roles.size() > 0) {
for (var it = roles.iterator(); it.hasNext();) {
var roleVO = it.next();
if (roleid.equals(roleVO.getId())) {
isHidden = false;
break;
}
}
}
return isHidden;
})()
表单按钮类控件动作执行前脚本
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->按钮 | 表单按钮动作执行前触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:String|Message含义:无返回值,不做处理|String(弹出警告框内容)|Message(Comfirm、Alert) |
示例代码:
//按钮触发时,弹出对话框
(function () {
return createConfirm("确定要提交文档?");
})()
表单按钮类控件动作执行后脚本
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->按钮 | 表单按钮动作执行后触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 无 |
示例代码:
//表单按钮动作执行成功后给用户发送邮件通知
(function () {
var from = getItemValueAsString("from");//发送人地址
var to = getItemValueAsString("to");//接受人地址
var host = getItemValueAsString("host");//邮件SMTP服务器地址
var user = getItemValueAsString("user");//邮件用户名
var password = getItemValueAsString("password");//用户密码
var bbc = getItemValueAsString("bbc");//秘密抄送地址
var subject = getItemValueAsString("subject");//主题
var body = getItemValueAsString("body");//内容
sendMail(from, to, subject, body, host, user, password, bbc, false);
})()
在表单视图选择框控件确定动作前触发执行脚本
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->视图选择框->确定条件 | 点击视图选择框确认按钮时触发 | WebUserCurrentDocumentRelateDocumentParentDocumentParams:”_selects” | 类型:String|Message含义:无返回值,不做处理|String(弹出警告框内容)|Message(Comfirm、Alert) |
示例代码:
//对视图中选中的值ID进行校验
(function () {
var doc = getRelateDocument();
var type = doc.getItemValueAsString("类型"); //视图选择框控件所在表单字段值
var selectId = getParameterAsText("_selects"); //视图选择框勾选记录ID
var sel = selectId.replace(";", "','");
if (null != sel && sel.trim().length() > 0) {
sel = "('" + sel + "')";
var countSql = " SELECT DOMAINID FROM TLK_DATA WHERE ID IN " + sel + " AND ITEM_TYPE <>'" + type + "' ";
var count = countBySQL(countSql);
if (null != count && count > 0) {
return "所选记录与类型不符,请重新选择!";
}
}
})()
在表单视图选择框控件确定动作后触发执行脚本
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->视图选择框->确定后执行脚本 | 点击视图选择框确认按钮时触发 | WebUserCurrentDocumentRelateDocumentParentDocumentParams:”_selects” | 无 |
示例代码:
//视图选择确认后,根据选择的ID创建记录
(function () {
var doc = getRelateDocument(); //视图选择框控件所在表单对象
var selectId = getParameterAsText("_selects"); //视图选择框勾选记录ID
var sel = selectId.replace(";", "','");
if (null != sel && sel.trim().length() > 0) {
var parentId = doc.getId();
var docProcess = getDocumentProcess();
var formProcess = getFormProcess();
//需要新建记录的表
var newForm = formProcess.doViewByFormName("DATA", getApplication());
sel = "('" + sel + "')";
var sql = " SELECT * FROM TLK_DATA WHERE ID IN " + sel + " AND ID NOT IN (SELECT ITEM_CONTENT_ID FROM TLK_DATA_DETAIL WHERE PARENT='" + parentId + "') ";
var datas = queryBySQL(sql);
if (null != datas && datas.size() > 0) {
for (var it = datas.iterator(); it.hasNext();) {
var newDoc = docProcess.doNew(newForm, getWebUser(), createParamsTable());
var data = it.next();
var dataId = data.getId();
var type = data.getItemValueAsString("METERIAL_TYPE"); newDoc.setParent(parentId);
newDoc.addStringItem("METERIAL_TYPE", type);
docProcess.doCreate(newDoc);
}
}
}
})()
表单选项卡控件设置页签选中状态
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->选项卡->页签选中脚本 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:String含义:返回的字符串为该选项卡默认选中的页签名称 |
示例代码:
//当前打开表单的人为表单作者时标签页默认选中"标签页A"
(function () {
var user = getWebUser();//获取当前对象
var userId = user.getId();//当前用户的id
var author = doc.getAuthor();//获取表单作者
var authorId = author.getId();//表单作者的id
var name = "";
if (userId.equals(authorId)) {
name = "标签页A";
} else if (isComplete()) {//判断当前文档是否审批完成
name = "标签页B";
} else {
name = "标签页C";
}
return name;
})()
表单选项卡控件页签选中时判断是否触发刷新动作
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->选项卡->页签->选中是否刷新内容 | 页签打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Boolean含义:返回输出一个布尔值,true代表刷新,false代表不刷新 |
示例代码:
//当前表单控件A的值在表单B存在时,则返回true,即标签页刷新
(function () {
var doc = getCurrentDocument();
var value = doc.getItemValueAsString("控件A");
var sql = "select * from tlk_表单B where ITEM_Value = '+value+'";
var data = findBySQL(sql);
if (data != null) {
return true;
}
return false;
})()
判断表单选项卡控件页签是否隐藏
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->选项卡->页签->隐藏条件 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Boolean含义:返回输出一个布尔值,true代表隐藏,false代表不隐藏 |
示例代码:
//根据控件"隐藏控制"的值,空值当控件是否隐藏
(function () {
var doc = getCurrentDocument();
var value = doc.getItemValueAsString("隐藏控制")
if ("不隐藏".equals(value)) {
return false;
}
return true;
})()
判断表单选项卡控件页签是否只读
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单-》选显卡->页签->只读条件 | 页签打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Boolean含义:返回输出一个布尔值,true代表只读,false代表不只读 |
示例代码:
//当用户为“张三”时可编辑,否则只读
(function () {
var userName = getWebUser().getName();
if ("张三".equals(userName)) {
return false;
}
return true;
})()
判断表单选项卡控件页签是否在打印时隐藏
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单-》选显卡->页签->打印时隐藏条件 | 页签打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Boolean含义:返回输出一个布尔值,true代表隐藏,false代表已隐藏 |
示例代码:
//当用户为“张三”时,打印时隐藏,否则可见
(function () {
var userName = getWebUser().getName();
if ("张三".equals(userName)) {
return false;
}
return true;
})()
设置调查控件问卷选项
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->调查控件->问卷脚本 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Question对象含义:问卷内容 |
示例代码:
//调查控件
(function () {
var q = createQuestion(1, "你的爱好(“多选”)");
q.addCheckboxOption("羽毛球", "羽毛球");
q.addCheckboxOption("游泳", "游泳");
var qs = new java.util.ArrayList();
qs.add(q);
return qs;
})()
设置二维码控件内容
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单->二维码控件->内容脚本 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:String含义:内容字符串,如内容为url地址,则扫码后会跳转到此url地址 |
示例代码:
//手机扫描二维码可跳转到百度搜索
(function () {
var url = "https://www.baidu.com/";
return url;
})()
2.2.3. 表单操作
通过脚本设置操作按钮的名称
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单/视图->操作->按钮->名称标签脚本 | 获取按钮时执行 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:String含义:按钮名称 |
示例代码:
//流程状态为空,则按钮的名称为“发起申请”,否则为“提交”
(function () {
var statelabel = getStateLabel();
var rtn = "提交";
if ("".equals(statelabel))
{
rtn = "发起申请";
}
return rtn;
})()
在按钮动作执行前时机触发脚本
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单/视图操作->按钮->动作执行前脚本 | 动作触发前执行 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:String|Message含义:无返回值,不做处理|String(弹出警告框内容)|Message(Comfirm、Alert) |
示例代码:
//控件值为空,不允许触发
(function () {
var val = getItemValue("控件");
if ("".equals(val))
{
rtn = "请填写控件值!";
}
return "";
})()
在按钮动作执行后时机触发脚本
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单/视图操作->按钮->动作执行后脚本 | 动作触发后执行 | WebUserCurrentDocumentRelateDocumentParentDocument | 无返回 |
示例代码:
//更新表单字段值
(function () {
var process = getDocumentProcess();
var doc = getCurrentDocument();
doc.findItem("状态").setValue("合格");
process.doUpdate(fdoc)
})()
通过脚本判断按钮是否只读
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单操作->编辑操作按钮->只读条件 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Boolean含义:true代表只读,false代表不只读 |
示例代码:
//根据表单控件"只读控制"的值,决定当前控件是否只读
(function () {
var doc = getCurrentDocument();
var value = doc.getItemValueAsString("只读控制");
if ("不只读".equals(value)) {
return false;
}
return true;
})()
通过脚本判断按钮是否隐藏
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单操作->编辑操作按钮->隐藏条件 | 表单打开时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:Boolean含义:返回输出一个布尔值,true代表隐藏,false代表不隐藏 |
示例代码:
//根据控件"名称"的值,决定当前控件是否隐藏
(function () {
var doc = getCurrentDocument();
var value = doc.getItemValueAsString("名称");
if ("1".equals(value)) {
return false;
}
return true;
})()
2.2.4. 表单摘要
通过脚本设置摘要内容
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
表单摘要->类型->脚本 | 生成摘要时触发 | WebUserCurrentDocumentRelateDocumentParentDocument | 类型:String含义:摘要的内容文本 |
示例代码:
//根据控件"名称"的值,决定当前控件是否隐藏
(function () {
var doc = getCurrentDocument();
var value = doc.getItemValueAsString("名称");
return "用户名称为:" + value;
})()
文档更新时间: 2022-11-02 13:36 作者:admin