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

[已解决] 表单上的跳转能否跳转到已有表单

[复制链接]
上海中汇 发表于 2017-4-27 14:42:01 | 显示全部楼层 |阅读模式
如下图
1.png 2.png 3.png
有A,B两个表单,A跳转到B,目前每次在A点击跳转,B都会新建一个表单,能否一条A的记录只对应一条B,对于A的一条记录点击跳转,第一次新建B,后续都是跳转到B已有记录,非常感谢。

QQ:1053286545
karrman 发表于 2017-4-27 16:06:42 | 显示全部楼层
确认没有问题,请回复帖子,说明问题已解决,我们需要作为结贴依据,谢谢!
  1. //解决思路 在B单据新建字段“activity_id”用于判断是否新建B还是打开B详情;
  2. //如果activity_id已经在B中找到记录,则打开详情,否则新建B,并且新建时将必要的字段复制到B中
  3. //在activity_id,可以通过getParameter("_activity_id")获取值
  4. var doc = getCurrentDocument();
  5. var formid="11e6-dbc1-3dda33ab-ad00-8d81212e6562";
  6. var application = getApplication();
  7. var docid = doc.getId();
  8. var url="";
  9. //复制表单字段
  10. var activity_name=doc.getItemValueAsString("activity_name");
  11. var company=doc.getItemValueAsString("company");
  12. //A表单的ID,判断是新建B还是打开B详情
  13. var activity_id=doc.getId();
  14. var sql="select * from tlk_A where item_activity_id='"+activity_id+"'";
  15. var datart=findBySQL(sql);

  16. //证明A记录已经在B有对应记录,则打开B,否则新建B记录
  17. if(datart!=null){
  18.   var Adocid=datart.getId();
  19. url=url1+getContextPath()+"/portal/dynaform/document/view.action?_docid="+Adocid+"&_formid="+formid+"&show_act=true&signatureExist=false&application="+application

  20. }else{
  21. var appno=doc.getItemValueAsString("appno");
  22. var request = $WEB.getParamsTable().getHttpRequest();//获取当前request
  23. var url1="http://"+request.getServerName()+":"+request.getServerPort();
  24. url = url1+getContextPath()+"/portal/dynaform/document/newWithPermission.action?_formid="+formid+"&_isJump=1&application="+application+"&budget="+docid+"&_activity_name="+activity_name+"&_company="+company+"&_activity_id="+activity_id+"&_appno="+appno;
  25. println("tiaozhuanurl=============="+url);
  26. }

  27. url;
复制代码
回复

使用道具 举报

 楼主| 上海中汇 发表于 2017-4-28 11:38:52 | 显示全部楼层
你好,上述方案有个问题,就是参数传递获取值时包含中文无法显示,如附件中图片,还请帮忙看下,谢谢
4.png
5.png
6.png
回复

使用道具 举报

karrman 发表于 2017-5-4 10:26:24 | 显示全部楼层
如果参数的值为中文,参考如下:
encodeURI(url)
确认没有问题,请回复帖子,说明问题已解决,我们需要作为结贴依据,谢谢!
  1. //解决思路 在B单据新建字段“activity_id”用于判断是否新建B还是打开B详情;
  2. //如果activity_id已经在B中找到记录,则打开详情,否则新建B,并且新建时将必要的字段复制到B中
  3. //在activity_id,可以通过getParameter("_activity_id")获取值
  4. var doc = getCurrentDocument();
  5. var formid="11e6-dbc1-3dda33ab-ad00-8d81212e6562";
  6. var application = getApplication();
  7. var docid = doc.getId();
  8. var url="";
  9. //复制表单字段
  10. var activity_name=doc.getItemValueAsString("activity_name");
  11. var company=doc.getItemValueAsString("company");
  12. //A表单的ID,判断是新建B还是打开B详情
  13. var activity_id=doc.getId();
  14. var sql="select * from tlk_A where item_activity_id='"+activity_id+"'";
  15. var datart=findBySQL(sql);

  16. //证明A记录已经在B有对应记录,则打开B,否则新建B记录
  17. if(datart!=null){
  18.   var Adocid=datart.getId();
  19. url=url1+getContextPath()+"/portal/dynaform/document/view.action?_docid="+Adocid+"&_formid="+formid+"&show_act=true&signatureExist=false&application="+application

  20. }else{
  21. var appno=doc.getItemValueAsString("appno");
  22. var request = $WEB.getParamsTable().getHttpRequest();//获取当前request
  23. var url1="http://"+request.getServerName()+":"+request.getServerPort();
  24. url = url1+getContextPath()+"/portal/dynaform/document/newWithPermission.action?_formid="+formid+"&_isJump=1&application="+application+"&budget="+docid+"&_activity_name="+activity_name+"&_company="+company+"&_activity_id="+activity_id+"&_appno="+appno;
  25. println("tiaozhuanurl=============="+url);
  26. }

  27. url=encodeURI(url);
  28. url;
复制代码
回复

使用道具 举报

 楼主| 上海中汇 发表于 2017-5-4 14:42:03 | 显示全部楼层
还是不行,使用你们提供的encodeURI方法后,传值参数是中文的话还是显示为乱码。
回复

使用道具 举报

karrman 发表于 2017-5-4 15:36:53 | 显示全部楼层
下面是完整方案,请参考,解决就帮忙结贴吧
  1. url传值:
  2. var request = $WEB.getParamsTable().getHttpRequest();
  3. var url1="http://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
  4. var wenhao = getItemValueAsString("symbol");
  5. var _formid = "11e5-0a59-60a289d5-94de-f587d65dcac9";
  6. var application= "11de-f053-df18d577-aeb6-19a7865cfdb6";
  7. var _resourceid = "11e5-0a63-8eff3cd6-94de-f587d65dcac9";
  8. var url =url1+"/portal/dynaform/document/newWithPermission.action?_formid="+_formid+"&_isJump=1&application="+application+"&_resourceid="+_resourceid+"&wenhao="+encodeURI(wenhao)+"&_backURL=../../../portal/cool/closeTab.jsp";

  9. 字段取值
  10. FWZH=decodeURI(getParameter("wenhao"));
复制代码
回复

使用道具 举报

 楼主| 上海中汇 发表于 2017-5-4 16:11:19 | 显示全部楼层
url = url1+getContextPath()+"/portal/dynaform/document/newWithPermission.action?_formid="+formid+"&_isJump=1&application="+application+"&budget="+docid+"&_proj_ver="+encodeURI(proj_ver)+"&_activity_id="+activity_id;
println("tiaozhuanurl=============="+url);
}   //赋值


var pv=decodeURI(getParameter("_proj_ver"));
pv; //取值

还是不行,还是乱码。
回复

使用道具 举报

 楼主| 上海中汇 发表于 2017-5-4 17:31:21 | 显示全部楼层
红框中的两个值,在表单上已经获取,但是点击保存的时候无法存入数据库,保存按钮没有任何脚本
QQ截图20170504173019.png
回复

使用道具 举报

karrman 发表于 2017-5-4 17:31:27 | 显示全部楼层
楼主反馈已解决,但是需要修改一下tomcat的编码格式在tomcat目录conf/server.xml,加上编码格式
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-8-13 21:26

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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