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

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

[已解决] 用按钮打开表单,如何使表单为只读 ?

[复制链接]
上海怡蓝 发表于 2012-7-25 13:44:18 | 显示全部楼层 |阅读模式
本帖最后由 irene 于 2012-7-25 15:58 编辑

表单中添加一计算脚本 , 代码如下 :
  1. var docId = getItemValueAsString("contractDocId");
  2. var formId = getItemValueAsString("contractFormId");
  3. var url=$WEB.getParamsTable().getContextPath()+"/portal/dynaform/document/view.action?_docid="+docId+"&_formid="+formId +"&application=11e1-98e0-c4f56c90-adca-15e6adc3fbc5";
  4. var rtn= "<input type=button value='查看合同' onclick='showframe("",""+url+"")'>";

  5. var statelabel = getStateLabel();
  6. if(statelabel=="" ||statelabel==null  || "草稿".equals(statelabel)){
  7.       rtn = "";               
  8. }else if( "" == docId || null ==docId || "" == formId ){
  9.      rtn="";
  10. }

  11. rtn;
复制代码
能够打开相关的表单,但是表单是可以编辑的,怎么让表单为只读的状态 ?
bess 发表于 2012-7-25 13:48:32 | 显示全部楼层
额,您好请问您的需求是什么呢?您是想实现什么业务需求的呢?
或者您可以在需要打开的表单中添加一个隐藏控件,然后在打开这个表单的同时,给这个隐藏控件赋值,然后在这个表单的只读脚本那里,根据这个隐藏控件的值去设置表单是否只读。
 楼主| 上海怡蓝 发表于 2012-7-25 13:52:56 | 显示全部楼层
我想要的效果就类似于 : 在视图的列表中,点击某条记录 ,  就能查看这条记录的详细信息,查看的时候表单都是灰色的 ~

test2.jpg

在视图中的列中添加 button ,弹出的表单是只读的,但是在 表单中添加button ,弹出的表单确实可以进行修改的。。。
purple 发表于 2012-7-25 13:58:20 | 显示全部楼层
您可以通过session来实现该需求,即,在点击按钮时,往session中存入值,跳转的表单页面,根据session值,判断是否可编辑。
 楼主| 上海怡蓝 发表于 2012-7-25 14:03:13 | 显示全部楼层
1. 我现在点击触发的是 onclick='showframe(\"\",\""+url+"\")', 在点击按钮时,往session中存入值,是让我修改  showframe这个函数么 ?
2. 根据session值,判断是否可编辑; 怎么使表单为只读状态 ?  应该不是在表单的每个控件的只读脚本判断吧 ?
purple 发表于 2012-7-25 14:30:27 | 显示全部楼层
是,采用session方式的话,需要修改showframe函数来实现,且只能通过控件的值脚本控制是否只读。不清楚您具体的业务场景,如果能够适用,建议您采用该种解决方案:在表单的动作执行前脚本,给打开表单某字段设置固定值,然后在表单源码里根据该字段值,控制是否只读。表单源码里写脚本根据表单字段值控制表单是否只读,可参考该帖子:http://www.teemlink.com/bbs/view ... hlight=%D2%FE%B2%D8
 楼主| 上海怡蓝 发表于 2012-7-25 14:55:41 | 显示全部楼层
说下我这边的业务:

     报销单据中,有合同的选择,我在报销单中添加了一个视图选择框,在视图中选中的记录,将其3个字段的信息显示在报销单中(视图中的合同信息不止3个)。
view.jpg

    在报销单填写的时候,是可以选择关联的合同的,但是到了流程的审批节点的时候 ,这个时候是不能选择合同的,而只能查看合同信息,所以我就在表单中,添加了一个 计算脚本,代码如1# , 用来打开之前被选择的合同表单,不过现在只是要查看,而打开的表单却可以更改。

不知道我是否描述清楚了 ~
 楼主| 上海怡蓝 发表于 2012-7-25 14:58:35 | 显示全部楼层
回复 6# purple


    " 在表单的动作执行前脚本,给打开表单某字段设置固定值 " ,这里的动作执行前脚本是指哪个动作 ?
irene 发表于 2012-7-25 15:30:24 | 显示全部楼层
本帖最后由 irene 于 2012-7-25 15:40 编辑

您好,您可以在1#的脚本前存一个值到session中,如流程的状态标签,然后在表单的是否可编辑脚本中获取该值,如果与状态标签是您所需的,那么就在是否可编辑脚本中返回false。存储session的例子可参考http://www.teemlink.com/bbs/view ... p;highlight=session
irene 发表于 2012-7-25 15:57:58 | 显示全部楼层
跟客户沟通,客户通过参考9#的方法解决问题。

本版积分规则

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

GMT+8, 2026-8-12 12:37

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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