flow_predefine_form_field_sel.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:5k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8" %>
  2. <%@ page import="java.util.*" %>
  3. <%@ page import="cn.js.fan.util.*" %>
  4. <%@ page import="com.redmoon.oa.person.*" %>
  5. <%@ page import="com.redmoon.oa.dept.*" %>
  6. <%@ page import="com.redmoon.oa.flow.*" %>
  7. <HTML><HEAD><TITLE>流程表单域设定</TITLE>
  8. <link href="../common.css" rel="stylesheet" type="text/css">
  9. <%
  10. String op = ParamUtil.get(request, "op");
  11. String flowTypeCode = ParamUtil.get(request, "flowTypeCode");
  12. Leaf lf = new Leaf();
  13. lf = lf.getLeaf(flowTypeCode);
  14. FormDb fd = new FormDb();
  15. fd = fd.getFormDb(lf.getFormCode());
  16. Vector v = fd.getFields();
  17. Iterator ir = v.iterator();
  18. String options = "";
  19. String fieldWrite = ParamUtil.get(request, "fieldWrite");
  20. String[] fds = fieldWrite.split(",");
  21. int len = fds.length;
  22. if (fieldWrite.equals(""))
  23. len = 0; // 当为空时,split所得的数组长度为1
  24. String[] fdsText = new String[len];
  25. while (ir.hasNext()) {
  26. FormField ff = (FormField) ir.next();
  27. boolean isFinded = false;
  28. for (int i=0; i<len; i++) {
  29. if (ff.getName().equals(fds[i])) {
  30. isFinded = true;
  31. fdsText[i] = ff.getTitle();
  32. }
  33. }
  34. if (!isFinded)
  35. options += "<option value='" + ff.getName() + "'>" + ff.getTitle() + "</option>";
  36. }
  37. String selOptions = "";
  38. for (int i=0; i<len; i++) {
  39. selOptions += "<option value='" + fds[i] + "'>" + fdsText[i] + "</option>";
  40. }
  41. %>
  42. <script language="JavaScript">
  43. function setFieldWrite() {
  44. var str = "";
  45. var strText = "";
  46. var opts = fieldsSelected.options;
  47. var len = opts.length;
  48. for (var i=0; i<len; i++) {
  49. if (str=="") {
  50. str = opts[i].value;
  51. strText = opts[i].text;
  52. }
  53. else {
  54. str += "," + opts[i].value;
  55. strText += "," + opts[i].text;
  56. }
  57. }
  58. window.opener.setFieldWriteValue(str);
  59. window.opener.setFieldWriteText(strText);
  60. window.close();
  61. }
  62. function sel() {
  63. var opts = fieldsNotSelected.options;
  64. var len = opts.length;
  65. var ary = new Array(len);
  66. for (var i=0; i<len; i++) {
  67. ary[i] = "0";
  68. if (opts(i).selected) {
  69. fieldsSelected.options.add(new Option(opts[i].text, opts[i].value));
  70. ary[i] = opts[i].value;
  71. }
  72. }
  73. for (var i=0; i<len; i++) {
  74. for (var j=0; j<len; j++) {
  75. if (ary[i]!="0") {
  76. try {
  77.     // 删除项目后,options会变短,因此用异常捕获来防止出错
  78. if (opts[j].value==ary[i])
  79. opts.remove(j);
  80. }
  81. catch(e) {
  82. }
  83. }
  84. }
  85. }
  86. }
  87. function notsel() {
  88. var opts = fieldsSelected.options;
  89. var len = opts.length;
  90. var ary = new Array(len);
  91. for (var i=0; i<len; i++) {
  92. ary[i] = "0";
  93. if (opts(i).selected) {
  94. fieldsNotSelected.options.add(new Option(opts[i].text, opts[i].value));
  95. ary[i] = opts[i].value;
  96. }
  97. }
  98. for (var i=0; i<len; i++) {
  99. for (var j=0; j<len; j++) {
  100. if (ary[i]!="0") {
  101. try {
  102.     // 删除项目后,options会变短,因此用异常捕获来防止出错
  103. if (opts[j].value==ary[i])
  104. opts.remove(j);
  105. }
  106. catch(e) {
  107. }
  108. }
  109. }
  110. }
  111. }
  112. </script>
  113. <META content="Microsoft FrontPage 4.0" name=GENERATOR><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  114. </HEAD>
  115. <BODY bgColor=#FBFAF0 leftMargin=4 topMargin=8 rightMargin=0 class=menubar>
  116. <jsp:useBean id="fchar" scope="page" class="cn.js.fan.util.StrUtil"/>
  117. <jsp:useBean id="cfg" scope="page" class="com.redmoon.oa.Config"/>
  118. <jsp:useBean id="privilege" scope="page" class="com.redmoon.oa.pvg.Privilege"/>
  119. <%
  120. String priv="read";
  121. if (!privilege.isUserPrivValid(request,priv))
  122. {
  123. out.println(cn.js.fan.web.SkinUtil.makeErrMsg(request, cn.js.fan.web.SkinUtil.LoadString(request, "pvg_invalid")));
  124. return;
  125. }
  126. %>
  127. <table width="501" height="293"  border="0" align="center" cellpadding="0" cellspacing="0" class="tableframe">
  128.   <tr>
  129.     <td height="23" colspan="3" class="right-title">&nbsp;&nbsp;<span>选择表单域 (表单名称:<%=fd.getName()%>)</span></td>
  130.   </tr>
  131.   <tr>
  132.     <td width="231" height="22" align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以下为已选的域</td>
  133.     <td width="37">&nbsp;</td>
  134.     <td width="231" height="22">以下为备选的域</td>
  135.   </tr>
  136.   <tr>
  137.     <td align="right"><select name="fieldsSelected" size=15 multiple style="width:200px">
  138. <%=selOptions%>
  139.     </select>    </td>
  140.     <td align="center" valign="middle"><input type="button" name="sel" value=" &lt; " onClick="sel()">
  141.       <br>
  142.       <br>
  143.     <input type="button" name="notsel" value=" &gt; " onClick="notsel()"></td>
  144.     <td>
  145. <select name="fieldsNotSelected" size=15 multiple style="width:200px">
  146. <%=options%>
  147.     </select>
  148. </td>
  149.   </tr>
  150.   <tr>
  151.     <td height="22" align="left">&nbsp;</td>
  152.     <td>&nbsp;</td>
  153.     <td height="22">&nbsp;</td>
  154.   </tr>
  155.   <tr align="center">
  156.     <td height="28" colspan="3"><input type="button" name="okbtn" value="确定" onClick="setFieldWrite()">
  157. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  158. <input type="button" name="cancelbtn" value="取消" onClick="window.close()"></td>
  159.   </tr>
  160. </table>
  161. </BODY></HTML>