HELP0001.js 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. //화면에서 Grid초기화
  2. /*
  3. pGrid_name : 최기화할 Grid id명
  4. */
  5. function astfGridInit(pGrid_name) {
  6. model.removeNodeset(pGrid_name.nodeset);
  7. model.refresh();
  8. }
  9. //코드 HELP 화면 OPEN-Modal
  10. /*
  11. pcontrol_name : OPEN하는 Control명(Grid,Input.....)
  12. "SPRSD00260" - 연구과제HELP. (return값은 연구과제번호, 연구명, 사원번호, 사원, 비고)
  13. pcdgrupid : 공통코드일경우 코드군 ("Z0007","R0001"...)
  14. precv_list: 리턴받을 Instance명 (마지막 Element만 ','로 분리)
  15. pdefault_node : 부모 윈도우에서 넘어오는 칼럼id
  16. pdefault_value : 부모 윈도우에서 넘어오는 값
  17. pcheck_yn : 선택형 팝업창인지 아닌지를 체크
  18. */
  19. function astOpenPopUpListByWndName(pcontrol_name, pcdgrupid, precv_list , window_name, pdefault_node, pdefault_value,nodebigo) {
  20. if( precv_list != "")
  21. var recv_list = precv_list.split(",");
  22. if(pdefault_value != "" && pdefault_value != null) {
  23. var default_value = pdefault_value.split(",");
  24. }
  25. if(pdefault_node != "" && pdefault_node != null) {
  26. var pdefault_node = pdefault_node.split(",");
  27. }
  28. var recvref_node = "/root/source/recvref";
  29. var cdgrupid_node = "/root/source/cdgrupid";
  30. var recvitem_node = "/root/source/recvitem"
  31. var default_node = "/root/source/defaultvalue";
  32. var checkyn_node = "/root/source/checkyn";
  33. model.removeNodeset(recvref_node);
  34. model.removeNodeset(cdgrupid_node);
  35. model.removeNodeset(recvitem_node);
  36. model.removeNodeset(default_node);
  37. model.removeNodeset(checkyn_node);
  38. model.makeNode(recvref_node);
  39. model.makeNode(cdgrupid_node);
  40. model.makeNode(recvitem_node);
  41. model.makeNode(default_node);
  42. model.makeNode(checkyn_node);
  43. if ( precv_list != "" && recv_list.length > 0 ) {
  44. for (var k = 0; k <= recv_list.length - 1; k++) {
  45. model.makeValue(recvitem_node + "/" + recv_list[k], recv_list[k]);
  46. }
  47. }
  48. var obj = null;
  49. if (pcontrol_name.elementName == "xforms:datagrid") {
  50. //grid에서 호출하였을 경우
  51. pcontrol_name.endEditCell();
  52. if(pdefault_value != "" && pdefault_value != null) {
  53. for (var z = 0; z < default_value.length; z++) {
  54. obj = document.controls(default_value[z]);
  55. if (obj != null && obj.elementName != "xforms:datagrid" ) {
  56. model.makeValue(default_node + "/" + pdefault_node[z] , model.getValue(obj.attribute("ref")));
  57. }
  58. else {
  59. if(model.getValue(pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1)+ "]/" + default_value[z]).length > 0)
  60. {
  61. model.makeValue(default_node + "/" + pdefault_node[z] ,
  62. model.getValue(pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1)+ "]/" + default_value[z]));
  63. }
  64. else
  65. {
  66. model.makeValue(default_node + "/" + pdefault_node[z] ,default_value[z]);
  67. }
  68. }
  69. }
  70. }
  71. model.setValue(recvref_node ,pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1) + "]");
  72. }
  73. else {
  74. var node_path = pcontrol_name.attribute("ref").split("/");
  75. var source_path = "/root";
  76. for (var i = 2 ; i < node_path.length - 1; i++) {
  77. source_path = source_path + "/" + node_path[i];
  78. }
  79. if(pdefault_value != "" && pdefault_value != null) {
  80. for (var z = 0; z < default_value.length; z++) {
  81. obj = document.controls(default_value[z]);
  82. if (obj != null) {
  83. model.makeValue(default_node + "/" + pdefault_node[z] , model.getValue(obj.attribute("ref")));
  84. }
  85. else {
  86. model.makeValue(default_node + "/" + pdefault_node[z] , default_value[z]);
  87. }
  88. }
  89. }
  90. model.setValue(recvref_node ,source_path);
  91. }
  92. if (pcdgrupid.length > 0 ) {
  93. model.setValue(cdgrupid_node ,pcdgrupid);
  94. }
  95. if(nodebigo != null && nodebigo.length > 0)model.makeValue(default_node +"/nodebigo",nodebigo);
  96. modal(window_name,"","","","","/root/source", "/root/target" );
  97. }
  98. //코드 HELP 화면의 선택된 값 Return
  99. /*
  100. pgrid_name : HELP화면의 Grid
  101. */
  102. function astfPopUpListReturn(pgrid_name, nodebigo) {
  103. try
  104. {
  105. var recv_ref = model.getValue("root/target/recvref");
  106. // var ins = document.models( 0 ).instances( 0 );
  107. var node = instance1.selectNodes("root/target/recvitem/*");
  108. var checkyn = model.getValue("/root/target/checkyn");
  109. var control_name = model.getValue("root/target/control");
  110. var obj = document.controls(control_name);
  111. var getreturn = "";
  112. if(checkyn == "Y") {
  113. check_node = instance1.selectNodes("root/main/deptcodelist");
  114. }
  115. if (checkOpener()) {
  116. // for (var i = 1; i < pgrid_name.cols; i++) {
  117. // for (var j = 0; j < node.length; j++) {
  118. // if (node.item(j).nodeName == pgrid_name.colAttribute(i,"ref")) {
  119. // opener.model.setValue(recv_ref + "/" + pgrid_name.colAttribute(i,"ref"), model.getValue(pgrid_name.nodeset + "[" + pgrid_name.row + "]/" + pgrid_name.colAttribute(i,"ref")));
  120. // }
  121. // }
  122. // }
  123. if(checkyn == "Y") {
  124. var opener_count = 1;
  125. for( var k = 0; k < check_node.length; k++){
  126. if(pgrid_name.valueMatrix(k,1) == "Y") {
  127. model.setValue("root/target/recvref","/root/main/deptlist[" + opener_count + "]");
  128. recv_ref = model.getValue("root/target/recvref");
  129. opener.grd_deptlist.addRow();
  130. if(nodebigo != null && nodebigo == "Y")
  131. {
  132. for (var j = 0; j < node.length; j++) {
  133. if(pgrid_name.colRef(node.item(j).nodeName) != -1)opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "["+ k + "]/" + node.item(j).nodeName));
  134. }
  135. }
  136. else
  137. {
  138. for (var j = 0; j < node.length; j++) {
  139. opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "["+ k + "]/" + pgrid_name.colAttribute(j+1,"ref")));
  140. }
  141. }
  142. opener_count++;
  143. }
  144. }
  145. }
  146. else {
  147. if(nodebigo != null && nodebigo == "Y")
  148. {
  149. for (var j = 0; j < node.length; j++) {
  150. if(pgrid_name.colRef(node.item(j).nodeName) != -1)opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]/" + node.item(j).nodeName));
  151. }
  152. }
  153. else
  154. {
  155. for (var j = 0; j < node.length; j++)
  156. {
  157. opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]/" + pgrid_name.colAttribute(j+1,"ref")));
  158. }
  159. }
  160. }
  161. // var objID = opener.event.target;
  162. var objID = opener.event.currentTarget;
  163. var obj = opener.document.controls(objID);
  164. // if (obj.elementName == "xforms:gridbutton") {
  165. if (obj.elementName == "xforms:datagrid") {
  166. //var grid_name = opener.document.controls(objID).parent.parent;
  167. if (obj.rowstatus(obj.row) == 0) {
  168. obj.rowstatus(obj.row) = 2;
  169. }
  170. }
  171. // opener.model.refresh();
  172. window.close();
  173. }
  174. else {
  175. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  176. }
  177. }
  178. catch(Exception)
  179. {
  180. window.close();
  181. }
  182. }
  183. //코드 HELP 화면에서 취소 버튼 Click시 처리
  184. /*
  185. pgrid_name : HELP화면의 Grid
  186. */
  187. function astfPopUpListCancel() {
  188. var recv_ref = model.getValue("root/target/recvref");
  189. var node = instance1.selectNodes("root/target/recvitem/*");
  190. var checkyn = model.getValue("/root/target/checkyn");
  191. if(checkyn == "Y") {
  192. check_node = instance1.selectNodes("root/main/deptcodelist");
  193. }
  194. if (checkOpener()) {
  195. if(checkyn == "Y") {
  196. var opener_count = 1;
  197. }
  198. else {
  199. for (var j = 0; j < node.length; j++) {
  200. opener.model.setValue(recv_ref + "/" + node.item(j).nodeName, "");
  201. }
  202. }
  203. var objID = opener.event.currentTarget;
  204. var obj = opener.document.controls(objID);
  205. window.close();
  206. }
  207. else {
  208. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  209. }
  210. }