SMZTP00901_프로젝트진척관리(개인별공정율조회).xrw 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  4. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  5. <xhtml:head>
  6. <xhtml:title>프로젝트진척관리(개인별공정율조회)</xhtml:title>
  7. <model id="model1">
  8. <instance id="instance1">
  9. <root xmlns="">
  10. <main>
  11. <projlist>
  12. <list>
  13. <proj>
  14. <subteam/>
  15. <dev/>
  16. <usernm/>
  17. <funccnt/>
  18. <viewcnt/>
  19. <reptcnt/>
  20. <quota/>
  21. <funcficnt/>
  22. <viewficnt/>
  23. <reptficnt/>
  24. <quotafi/>
  25. <quotafiper/>
  26. <funcrmcnt/>
  27. <viewrmcnt/>
  28. <reptrmcnt/>
  29. </proj>
  30. </list>
  31. </projlist>
  32. </main>
  33. <send>
  34. <search>
  35. <appdd/>
  36. <subteam/>
  37. <endrate/>
  38. <acptdd/>
  39. <prcsyn/>
  40. <posinstcd/>
  41. </search>
  42. </send>
  43. <init>
  44. <endrate>
  45. <item>
  46. <name>80</name>
  47. <id>80</id>
  48. </item>
  49. <item>
  50. <name>100</name>
  51. <id>100</id>
  52. </item>
  53. </endrate>
  54. <prcsyn>
  55. <item>
  56. <name>전체</name>
  57. <id>-</id>
  58. </item>
  59. <item>
  60. <name>Y</name>
  61. <id>Y</id>
  62. </item>
  63. <item>
  64. <name>N</name>
  65. <id>N</id>
  66. </item>
  67. </prcsyn>
  68. <posinstcd>
  69. <item>
  70. <name>전체</name>
  71. <id>-</id>
  72. </item>
  73. <item>
  74. <name>HIT</name>
  75. <id>H</id>
  76. </item>
  77. <item>
  78. <name>평화IS</name>
  79. <id>P</id>
  80. </item>
  81. </posinstcd>
  82. </init>
  83. </root>
  84. </instance>
  85. <script type="javascript" ev:event="xforms-ready">
  86. <![CDATA[
  87. model.removeNodeset("/root/main/projlist/list/proj");
  88. // 업무팀,적용기준일 리스트를 가져 와서 콤보 박스에 뿌려 준다.
  89. // 적용 기준일의 경우 조건 검색시 null을 제외 했기 때문에 전체 건수와 차이가 난다.
  90. submit("TRZTP00802");
  91. submit("TRZTP00902");
  92. addComboItem("combo1", "-전체-", "-", "above");
  93. addComboItem("combo2", "-전체-", "-", "above");
  94. combo1.select(0);
  95. combo2.select(0);
  96. combo3.select(1);
  97. combo4.select(0);
  98. combo5.select(1);
  99. var today = getCurrentDate();
  100. var masktoday = today.substr(0, 4) + "-" + today.substr(4, 2) + "-" + today.substr(6, 2);
  101. model.setValue("/root/send/search/acptdd", masktoday);
  102. model.refresh();
  103. ]]>
  104. </script>
  105. <submission id="TRZTP00802" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/search/appdd" resultref="/root/temp"/>
  106. <submission id="TRZTP00911" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/search" resultref="/root/main/projlist/list"/>
  107. <submission id="TRZTP00902" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/search" resultref="/root/subtemp"/>
  108. </model>
  109. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  110. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  111. <script type="javascript" src="../../commonweb/js/dateHelper.js"/>
  112. </xhtml:head>
  113. <xhtml:body guideline="1,1195;2,782;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  114. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  115. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:250px; height:13px; ">프로젝트진척관리(개인별공정율조회)</caption>
  116. </group>
  117. <group id="group5" scroll="auto" style="left:0px; top:45px; width:1195px; height:730px; ">
  118. <group id="group6" style="left:0px; top:10px; width:1194px; height:35px; vertical-align:top; ">
  119. <shape id="roundrect3" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:35px; "/>
  120. <line id="line18" class="line_4" style="x1:1090px; y1:5px; x2:1090px; y2:27px; border-left-style:solid; "/>
  121. <button id="button1" class="btn1_letter2" style="left:1115px; top:7px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
  122. <caption>조회</caption>
  123. <script type="javascript" ev:event="DOMActivate">
  124. <![CDATA[
  125. submit("TRZTP00911");
  126. // 할당량 합계, 완료건수 합계/합계(%) 입력
  127. for (i=grd_projlist.fixedRows; i<grd_projlist.rows; i++)
  128. {
  129. grd_projlist.textmatrix(i,7) = parseInt(grd_projlist.textmatrix(i,4)) + parseInt(grd_projlist.textmatrix(i,5)) + parseInt(grd_projlist.textmatrix(i,6));
  130. grd_projlist.textmatrix(i,11) = parseInt(grd_projlist.textmatrix(i,8)) + parseInt(grd_projlist.textmatrix(i,9)) + parseInt(grd_projlist.textmatrix(i,10));
  131. grd_projlist.textmatrix(i,12) = grd_projlist.textmatrix(i,11) / grd_projlist.textmatrix(i,7) * 100;
  132. grd_projlist.cellStyle("background-color", i, 7) = "#FFFDBF";
  133. grd_projlist.cellStyle("background-color", i, 11) = "#FFFDBF";
  134. grd_projlist.cellStyle("background-color", i, 12) = "#D0FFD0";
  135. }
  136. // 잔여 건수 입력,TF에서 계산 함.
  137. for (i=grd_projlist.fixedRows; i<grd_projlist.rows; i++)
  138. {
  139. grd_projlist.textmatrix(i, 13) = grd_projlist.textmatrix(i, 4) - grd_projlist.textmatrix(i, 8);
  140. grd_projlist.textmatrix(i, 14) = grd_projlist.textmatrix(i, 5) - grd_projlist.textmatrix(i, 9)
  141. grd_projlist.textmatrix(i, 15) = grd_projlist.textmatrix(i, 6) - grd_projlist.textmatrix(i, 10);
  142. }
  143. // 총계,소계 입력
  144. // 최상단에 출력
  145. grd_projlist.subtotalposition="above";
  146. // 총계를 내기 위해 계산할 그룹을 -1로 잡는다.
  147. grd_projlist.subtotal("sum", -1, 4, "#,###", "background-color:#FFD9B3 ", 1, "총계", true);
  148. grd_projlist.subtotal("sum", -1, 5, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  149. grd_projlist.subtotal("sum", -1, 6, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  150. grd_projlist.subtotal("sum", -1, 7, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  151. grd_projlist.subtotal("sum", -1, 8, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  152. grd_projlist.subtotal("sum", -1, 9, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  153. grd_projlist.subtotal("sum", -1, 10, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  154. grd_projlist.subtotal("sum", -1, 11, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  155. grd_projlist.subtotal("sum", -1, 12, "###%", "background-color:#FF99FF ", 1, "총계", true);
  156. grd_projlist.subtotal("sum", -1, 13, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  157. grd_projlist.subtotal("sum", -1, 14, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  158. grd_projlist.subtotal("sum", -1, 15, "#,###", "background-color:#FF99FF ", 1, "총계", true);
  159. grd_projlist.subtotalposition="below";
  160. // subteam별로 그룹을 준다.
  161. grd_projlist.subtotal("sum", 1, 4, "#,###", "background-color:#FF99FF ", 1, "소계", true);
  162. grd_projlist.subtotal("sum", 1, 5, "#,###", "background-color:#E294DF ", 1, "소계", true);
  163. grd_projlist.subtotal("sum", 1, 6, "#,###", "background-color:#E294DF ", 1, "소계", true);
  164. grd_projlist.subtotal("sum", 1, 7, "#,###", "background-color:#E294DF ", 1, "소계", true);
  165. grd_projlist.subtotal("sum", 1, 8, "#,###", "background-color:#E294DF ", 1, "소계", true);
  166. grd_projlist.subtotal("sum", 1, 9, "#,###", "background-color:#E294DF ", 1, "소계", true);
  167. grd_projlist.subtotal("sum", 1, 10, "#,###", "background-color:#E294DF ", 1, "소계", true);
  168. grd_projlist.subtotal("sum", 1, 11, "#,###", "background-color:#E294DF ", 1, "소계", true);
  169. grd_projlist.subtotal("sum", 1, 12, "###%", "background-color:#E294DF ", 1, "소계", true);
  170. grd_projlist.subtotal("sum", 1, 13, "#,###", "background-color:#E294DF ", 1, "소계", true);
  171. grd_projlist.subtotal("sum", 1, 14, "#,###", "background-color:#E294DF ", 1, "소계", true);
  172. grd_projlist.subtotal("sum", 1, 15, "#,###", "background-color:#E294DF ", 1, "소계", true);
  173. var rows = grd_projlist.rows;
  174. var i;
  175. // 소계, 총계 퍼센트 구하기 (따로 계산해 줘야 한다)
  176. for(i = 1; i <= rows; i++){
  177. if(grd_projlist.textmatrix(i, 1) == "소계" || grd_projlist.textmatrix(i, 1) == "총계"){
  178. if(grd_projlist.textmatrix(i, 7) == 0){
  179. // 화면수가 0 이면 분모가 0이 되므로 0을 넣는다
  180. grd_projlist.textmatrix(i, 12) = 0;
  181. }else{ // 소계, 총계의 완료율 구하기
  182. grd_projlist.textmatrix(i,12) = grd_projlist.textmatrix(i,11) / grd_projlist.textmatrix(i,7) * 100; // 완료건수 / 화면수
  183. }
  184. }
  185. }
  186. // 숫자 컬럼들은 오른쪽 정렬
  187. for (var i = 4; i <= 15; i++){
  188. grd_projlist.colstyle(i, "data", "text-align") = "right";
  189. }
  190. ]]>
  191. </script>
  192. </button>
  193. <caption id="caption2" class="search_name" style="left:6px; top:8px; width:64px; height:17px; ">업무팀</caption>
  194. <select1 id="combo2" ref="/root/send/search/subteam" class="combo_search" appearance="minimal" style="left:75px; top:7px; width:109px; height:19px; ">
  195. <choices>
  196. <itemset nodeset="/root/subtemp/combo">
  197. <label ref="subteam"/>
  198. <value ref="value"/>
  199. </itemset>
  200. </choices>
  201. </select1>
  202. <caption id="caption3" class="search_name" style="left:196px; top:8px; width:89px; height:17px; ">적용기준일</caption>
  203. <select1 id="combo1" ref="/root/send/search/appdd" class="combo_search" appearance="minimal" style="left:287px; top:7px; width:85px; height:19px; ">
  204. <choices>
  205. <itemset nodeset="/root/temp/combo">
  206. <label ref="appdd"/>
  207. <value ref="value"/>
  208. </itemset>
  209. </choices>
  210. </select1>
  211. <caption id="caption6" class="search_name" style="left:380px; top:8px; width:90px; height:17px; ">완료 비율</caption>
  212. <select1 id="combo5" ref="/root/send/search/endrate" class="combo_search" appearance="minimal" style="left:465px; top:7px; width:65px; height:19px; ">
  213. <choices>
  214. <itemset nodeset="/root/init/endrate/item">
  215. <label ref="name"/>
  216. <value ref="id"/>
  217. </itemset>
  218. </choices>
  219. </select1>
  220. <caption id="caption7" class="search_name" style="left:541px; top:8px; width:80px; height:17px; ">접수일</caption>
  221. <input id="input1" ref="/root/send/search/acptdd" class="input_serarch" inputtype="date" mask="include" style="left:611px; top:7px; width:100px; height:19px; "/>
  222. <caption id="caption4" class="search_name" style="left:720px; top:8px; width:125px; height:17px; ">공정율 적용여부</caption>
  223. <select1 id="combo3" ref="/root/send/search/prcsyn" class="combo_search" appearance="minimal" style="left:845px; top:7px; width:52px; height:19px; ">
  224. <choices>
  225. <itemset nodeset="/root/init/prcsyn/item">
  226. <label ref="name"/>
  227. <value ref="id"/>
  228. </itemset>
  229. </choices>
  230. </select1>
  231. <caption id="caption9" class="search_name" style="left:906px; top:8px; width:94px; height:17px; ">개발자 소속</caption>
  232. <select1 id="combo4" ref="/root/send/search/posinstcd" class="combo_search" appearance="minimal" style="left:1005px; top:7px; width:70px; height:19px; ">
  233. <choices>
  234. <itemset nodeset="/root/init/posinstcd/item">
  235. <label ref="name"/>
  236. <value ref="id"/>
  237. </itemset>
  238. </choices>
  239. </select1>
  240. </group>
  241. <line id="line20" class="line_1" style="x1:0px; y1:81px; x2:1194px; y2:81px; "/>
  242. <caption id="caption8" class="tit_2" style="left:5px; top:66px; width:195px; height:13px; ">프로젝트 진척관리 완료내역</caption>
  243. <group id="group2" style="left:800px; top:55px; width:395px; height:25px; ">
  244. <button id="button3" class="btn2_letter4" disable.background-image="../../../com/commonweb/images/dis_btn2_letter4.gif" style="left:325px; top:5px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn2_letter4.gif; ">
  245. <caption>엑셀저장</caption>
  246. <script type="javascript" ev:event="DOMActivate">
  247. <![CDATA[
  248. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  249. if (fileName != "")
  250. {
  251. grd_projlist.saveExcel(fileName);
  252. }
  253. ]]>
  254. </script>
  255. </button>
  256. </group>
  257. <datagrid id="grd_projlist" nodeset="/root/main/projlist/list/proj" caption="SUBTEAM^개인별^개인별^할당량^할당량^할당량^할당량^완료건수^완료건수^완료건수^완료건수^완료건수^잔여건수^잔여건수^잔여건수|SUBTEAM^ID^NAME^기능^화면^보고서^소계^기능^화면^보고서^소계^완료율(%)^기능^화면^보고서" colsep="^" colwidth="173, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70" dataheight="23" defaultrows="0" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" tooltip="true" style="left:0px; top:85px; width:1195px; height:640px; ">
  258. <col ref="subteam"/>
  259. <col ref="dev"/>
  260. <col ref="usernm"/>
  261. <col ref="funccnt" format="#,###"/>
  262. <col ref="viewcnt" format="#,###"/>
  263. <col ref="reptcnt" format="#,###"/>
  264. <col ref="quota" format="#,###"/>
  265. <col ref="funcficnt" format="#,###"/>
  266. <col ref="viewficnt" format="#,###"/>
  267. <col ref="reptficnt" format="#,###"/>
  268. <col ref="quotafi" format="#,###"/>
  269. <col ref="quotafiper" format="###%"/>
  270. <col ref="funcrmcnt" format="#,###"/>
  271. <col ref="viewrmcnt" format="#,###"/>
  272. <col ref="reptrmcnt" format="#,###"/>
  273. <script type="javascript" ev:event="ondblclick">
  274. <![CDATA[
  275. // 데이터 컬럼이 아니라면 실행 하지 않는다. isDataCell 공통 함수
  276. // 컬럼헤드, 총계, 소계 일 경우 실행하지 않는다.
  277. if( isDataCell() )
  278. {
  279. if (grd_projlist.textmatrix(grd_projlist.row,1) != "총계" && grd_projlist.textmatrix(grd_projlist.row,1) != "소계" && grd_projlist.row > 1)
  280. modal("SPZTP01100", "1", "100", "100", "SPZTP01100", "", "", "left:100; top:100; width:1200; height:650; sysmenu:visible; min:visible; max:true; resize:true; caption:visible;" , false);
  281. }
  282. ]]>
  283. </script>
  284. </datagrid>
  285. </group>
  286. <group id="group3" style="left:0px; top:13px; width:1190px; height:27px; ">
  287. <button id="button7" class="btn4_letter3" disable.background-image="../../../com/commonweb/images/dis_btn4_letter3.gif" style="left:1120px; top:2px; width:68px; height:22px; background-image:../../../com/commonweb/images/btn4_letter3.gif; ">
  288. <caption>초기화</caption>
  289. <script type="javascript" ev:event="DOMActivate">
  290. <![CDATA[
  291. model.removeNodeset("/root/main/projlist/list/proj");
  292. model.resetInstanceNode("/root/send");
  293. //model.resetInstanceNode("/root/main/item");
  294. combo2.select(0);
  295. combo1.select(0);
  296. combo3.select(1);
  297. combo4.select(0);
  298. combo5.select(1);
  299. var today = getCurrentDate();
  300. var masktoday = today.substr(0, 4) + "-" + today.substr(4, 2) + "-" + today.substr(6, 2);
  301. model.setValue("/root/send/search/acptdd", masktoday);
  302. model.refresh();
  303. ]]>
  304. </script>
  305. </button>
  306. <line id="line1" class="line_6" style="x1:0px; y1:25px; x2:1189px; y2:25px; "/>
  307. </group>
  308. </xhtml:body>
  309. </xhtml:html>