天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 37359|回复: 19

[已解决] 请教大伙,关于表单中实时睇视图并对其操作可以的吗?

[复制链接]
网络菜菜 发表于 2025-10-13 15:41:55 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.1- F社区版
【浏览器类型】:Chrome/其他
【联系方式-QQ】:260217944
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:我想建一个会议室预约的表单。假如有申请人在对四个会议室进行预约,表单最好支持手机申请的形式。在会议室预约时,能直观看到月视图中哪天会议室上午或者下午已被预约,然后申请空闲的会议室,审批人根据申请,可以操作会议室及时间的占用,然后知会申请人是否预约成功。不知大伙有成功的案例吗?



1、问题描述最好图文并茂,如有视频/脚本可直接放出,这样技术同事在处理该问题时效率更加高效哦~
2、如果该问题已得到解决,请在该帖子下回复\\\\\\\"已解决可结帖\\\\\\\"
 楼主| 网络菜菜 发表于 2025-10-28 10:55:45 | 显示全部楼层
有两个疑问,当控件选日历视图时,电脑端的月视图不显示(电脑端在周视图里会有记录),但手机端会有显示;而且选择这个控件时,如果是日历视图,是无法选择的,只能列表时才能入选

第二个问题,是如何通过下一审批环节两个下拉控件写入这里的日历视图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2025-10-29 16:34:56 来自手机 | 显示全部楼层
视图列设置中:是否在月视图中显示勾选上
来自: 微社区
 楼主| 网络菜菜 发表于 2025-11-3 18:13:25 | 显示全部楼层
本帖最后由 网络菜菜 于 2025-11-3 18:14 编辑

假如我申请单上,有一个如下 视图,是否可以选中其中一行记录,然后返回到原视图那栏,假如选择了联想笔记本,返回到里面显示联想笔记本XXXX;还有就是如果归还日期这里如果为空,选择了就提示不能选

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2025-11-4 14:40:59 | 显示全部楼层
网络菜菜 发表于 2025-11-3 18:13
假如我申请单上,有一个如下 视图,是否可以选中其中一行记录,然后返回到原视图那栏,假如选择了联想笔记 ...

视图选择框设置映射,在视图选择框的确认脚本中判断选择的记录中的日期字段
 楼主| 网络菜菜 发表于 2025-11-21 18:30:23 | 显示全部楼层
在论坛里抄了段代码如下
  1. //视图选择确认后,根据选择的ID创建记录
  2. (function () {
  3. var doc = getRelateDocument();    //视图选择框控件所在表单对象
  4. var selectId = getParameterAsText("_selects");    //视图选择框勾选记录ID
  5. var sel = selectId.replace(";", "','");
  6. if (null != sel && sel.trim().length() > 0) {
  7.     var parentId = doc.getId();
  8.     var docProcess = getDocumentProcess();
  9.     var formProcess = getFormProcess();
  10.     //需要新建记录的表
  11.     var newForm = formProcess.doViewByFormName("ITEM_设备名称", getApplication());
  12.     sel = "('" + sel + "')";
  13.     var sql = " SELECT * FROM TLK_信息部设备使用记录表 WHERE ID IN " + sel + " AND ID NOT IN (SELECT ITEM_CONTENT_ID FROM TLK_设备借用申请 WHERE PARENT='" + parentId + "') ";
  14.     var datas = queryBySQL(sql);
  15.     if (null != datas && datas.size() > 0) {
  16.         for (var it = datas.iterator(); it.hasNext();) {
  17.             var newDoc = docProcess.doNew(newForm, getWebUser(), createParamsTable());
  18.             var data = it.next();
  19.             var dataId = data.getId();
  20.             var type = data.getItemValueAsString("METERIAL_TYPE"); newDoc.setParent(parentId);
  21.             newDoc.addStringItem("METERIAL_TYPE", type);
  22.             docProcess.doCreate(newDoc);
  23.         }
  24.     }
  25. }
  26. })()
复制代码



是没有勾选位,导致报错吗?
  1. org.mozilla.javascript.EcmaError: ReferenceError: "getParameterAsText" is not defined. (__3lZYSoTTRgtNAfRaCRe).设备借出清单.callbackScript#4)
  2. at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3350)
  3. at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3340)
  4. at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3413)
  5. at org.mozilla.javascript.ScriptRuntime.getNameFunctionAndThis(ScriptRuntime.java:1951)
  6. at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:95)
  7. at org.mozilla.javascript.gen.c81218._c1(Form.设备借用申请.Field(__3lZYSoTTRgtNAfRaCRe).设备借出清单.callbackScript:4)
  8. at org.mozilla.javascript.gen.c81218.call(Form.设备借用申请.Field(__3lZYSoTTRgtNAfRaCRe).设备借出清单.callbackScript)
  9. at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:57)
  10. at org.mozilla.javascript.gen.c81218._c0(Form.设备借用申请.Field(__3lZYSoTTRgtNAfRaCRe).设备借出清单.callbackScript:2)
  11. at org.mozilla.javascript.gen.c81218.call(Form.设备借用申请.Field(__3lZYSoTTRgtNAfRaCRe).设备借出清单.callbackScript)
  12. at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
  13. at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
  14. at org.mozilla.javascript.gen.c81218.call(Form.设备借用申请.Field(__3lZYSoTTRgtNAfRaCRe).设备借出清单.callbackScript)
  15. at org.mozilla.javascript.gen.c81218.exec(Form.设备借用申请.Field(__3lZYSoTTRgtNAfRaCRe).设备借出清单.callbackScript)
  16. at cn.myapps.runtime.macro.runner.JavaScriptRunner.run(JavaScriptRunner.java:178)
  17. at cn.myapps.runtime.dynaform.view.service.ViewHelperRunTimeServiceImpl.runViewDialogCallbackscriptByFieldId(ViewHelperRunTimeServiceImpl.java:73)
  18. at cn.myapps.runtime.dynaform.view.controller.ViewHelperController.runViewDialogCallbackscript(ViewHelperController.java:114)
  19. at jdk.internal.reflect.GeneratedMethodAccessor10419.invoke(Unknown Source)
  20. at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  21. at java.base/java.lang.reflect.Method.invoke(Method.java:566)
  22. at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)
  23. at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
  24. at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
  25. at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:893)
  26. at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:799)
  27. at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerM
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2025-12-3 18:03:36 | 显示全部楼层
网络菜菜 发表于 2025-11-21 18:30
在论坛里抄了段代码如下

是哪个版本的呢,视图选择框,单选前面是没有复选框的;勾选多项的话就会有的。
 楼主| 网络菜菜 发表于 2025-12-3 18:20:59 | 显示全部楼层
yaya 发表于 2025-12-3 18:03
是哪个版本的呢,视图选择框,单选前面是没有复选框的;勾选多项的话就会有的。

工程师,您好!复选的选项,我已经找到。但选定点确定就会有上面那个代码出错。我的版本是5.1F社区免费版

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
 楼主| 网络菜菜 发表于 2025-12-4 18:18:38 | 显示全部楼层
论坛里抄的代码,不知为何getParameterAsText会提示未定义,但可以改成getParameter往下跑
  1. //视图选择确认后,根据选择的ID创建记录
  2. (function () {
  3. var doc = getRelateDocument();    //视图选择框控件所在表单对象
  4. //var selectId = getParameterAsText("_selects");    //视图选择框勾选记录ID    ##这里会提示getParameterAsText没有定义
  5. var selectId = getParameter("_selects");
  6. println(selectld);
  7. var sel = selectId.replace(";", "','");
  8. if (null != sel && sel.trim().length() > 0) {
  9.     var parentId = doc.getId();
  10.     var docProcess = getDocumentProcess();
  11.     var formProcess = getFormProcess();
  12.     //需要新建记录的表
  13.     var newForm = formProcess.doViewByFormName("ITEM_设备名称", getApplication());
  14.     sel = "('" + sel + "')";
  15. //    var sql = " SELECT * FROM TLK_信息部设备使用记录表 WHERE ID IN " + sel + " AND ID NOT IN (SELECT ITEM_CONTENT_ID FROM TLK_设备借用申请 WHERE PARENT='" + parentId + "') ";    //这个sql可能同父表比较有无相同明细
  16.     var sql = " SELECT * FROM TLK_信息部设备使用记录表 WHERE ID IN " + sel ;    //但我只需从另一个视图记录入选进来
  17.     var datas = queryBySQL(sql);
  18.     if (null != datas && datas.size() > 0) {
  19.         for (var it = datas.iterator(); it.hasNext();) {
  20.             var newDoc = docProcess.doNew(newForm, getWebUser(), createParamsTable());
  21.             var data = it.next();
  22.             var dataId = data.getId();
  23.             var type = data.getItemValueAsString("设备名称"); newDoc.setParent(parentId);
  24.             newDoc.addStringItem("设备名称", type);
  25.             docProcess.doCreate(newDoc);
  26.         }
  27.     }
  28. }
  29. })()
复制代码


但这样不是把入选列返回到父表单那个控件里,而是将视图里新建了一行记录。
如下图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2025-12-5 15:19:06 | 显示全部楼层
网络菜菜 发表于 2025-12-4 18:18
论坛里抄的代码,不知为何getParameterAsText会提示未定义,但可以改成getParameter往下跑

把println注释掉就可以了,println里的参数没定义呢。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 05:51

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表