SPZTP01100_프로젝트진척관리(개별완료건수팝업).xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465
  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. <lrg/>
  16. <mdl/>
  17. <sml/>
  18. <srfeflag/>
  19. <scrnid/>
  20. <scrnname/>
  21. <insuimp/>
  22. <detailfe/>
  23. <dev/>
  24. <usernm/>
  25. <schestartdd/>
  26. <schedd/>
  27. <acptdd/>
  28. <startdd/>
  29. <enddd/>
  30. <prcsrate/>
  31. <prcsyn/>
  32. <remark/>
  33. <funt1/>
  34. <funt2/>
  35. <funt3/>
  36. <updtneedyn/>
  37. <fstrgstrid/>
  38. <fstrgstdt/>
  39. <lastupdtrid/>
  40. <lastupdtdt/>
  41. <useyn/>
  42. <appdd/>
  43. <sort/>
  44. </proj>
  45. </list>
  46. </projlist>
  47. <list/>
  48. </main>
  49. <send>
  50. <search>
  51. <subteam/>
  52. <lrg/>
  53. <mdl/>
  54. <srfeflag/>
  55. <scrnname/>
  56. <scrnid/>
  57. <dev/>
  58. <usernm/>
  59. <schedd/>
  60. <startdd/>
  61. <enddd/>
  62. <appdd/>
  63. <prcsyn/>
  64. <acptdd/>
  65. </search>
  66. <projlist/>
  67. <devnull/>
  68. </send>
  69. <init>
  70. <srfe>
  71. <item>
  72. <name>전체</name>
  73. <id>-</id>
  74. </item>
  75. <item>
  76. <name>화면</name>
  77. <id>화면</id>
  78. </item>
  79. <item>
  80. <name>보고서</name>
  81. <id>보고서</id>
  82. </item>
  83. <item>
  84. <name>기능</name>
  85. <id>기능</id>
  86. </item>
  87. <item>
  88. <name>오류</name>
  89. <id>오류</id>
  90. </item>
  91. <item>
  92. <name>DB변경</name>
  93. <id>DB변경</id>
  94. </item>
  95. </srfe>
  96. <prcsyn>
  97. <item>
  98. <name>전체</name>
  99. <id>-</id>
  100. </item>
  101. <item>
  102. <name>Y</name>
  103. <id>Y</id>
  104. </item>
  105. <item>
  106. <name>N</name>
  107. <id>N</id>
  108. </item>
  109. </prcsyn>
  110. </init>
  111. <popup>
  112. <grd_projlist>
  113. <item>
  114. <name>일괄수정</name>
  115. <func>fBatUpdate</func>
  116. </item>
  117. </grd_projlist>
  118. </popup>
  119. <popIndex>dev</popIndex>
  120. </root>
  121. </instance>
  122. <script type="javascript" ev:event="xforms-model-construct-done">
  123. <![CDATA[
  124. combo1.select(0);
  125. combo2.select(0);
  126. ]]>
  127. </script>
  128. <script type="javascript" ev:event="xforms-ready">
  129. <![CDATA[
  130. // 적용 기준일 리스트 조회
  131. submit("TRZTP00802");
  132. // subteam 리스트 조회
  133. submit("TRZTP00902");
  134. // 전체 선택 아이템 추가
  135. addComboItem("combo2", "-전체-", "-", "above");
  136. addComboItem("combo3", "-전체-", "-", "above");
  137. // ############################################################################################
  138. // ###### 라이브 서버에 반영시 반드시 테스트 부분을 주석처리하고 라이브 부분을 풀어 준다 ######
  139. // ############################################################################################
  140. // 팝업용] 테스트시 사용하세요
  141. // model.setValue("/root/send/search/srfeflag","-");
  142. // model.setValue("/root/send/search/dev","None");
  143. // model.setValue("/root/send/search/usernm","");
  144. // model.setValue("/root/send/search/appdd","-");
  145. // model.setValue("/root/send/search/prcsyn","-");
  146. //
  147. // var stmp = "33.SWAT";
  148. // var subteam = stmp.substr(stmp.indexOf(".")+1,stmp.length);
  149. //
  150. // var usernm = model.getValue("/root/send/search/usernm");
  151. // var dev = model.getValue("/root/send/search/dev");
  152. // var appdd = model.getValue("/root/send/search/appdd");
  153. // var prcsyn = model.getValue("/root/send/search/prcsyn");
  154. // var acptdd = "2008-04-30";
  155. // 테스트시 사용 부분 끝
  156. // ############################################################################################
  157. // ###### 라이브 서버에 반영시 반드시 테스트 부분을 주석처리하고 라이브 부분을 풀어 준다 ######
  158. // ############################################################################################
  159. // 부모창에서 개발자ID을 얻어 와서 조건으로 줘서 조회를 한다.
  160. // 부모창에서 서브팀을 받아 올때 00. 식으로 받아 와서 앞 부분을 날려 준다.
  161. var stmp = opener.grd_projlist.textmatrix(opener.grd_projlist.row,1);
  162. var subteam = stmp.substr(stmp.indexOf(".")+1,stmp.length);
  163. var dev = opener.grd_projlist.textmatrix(opener.grd_projlist.row,2);
  164. var usernm = opener.grd_projlist.textmatrix(opener.grd_projlist.row,3);
  165. var appdd = opener.model.getValue("/root/send/search/appdd");
  166. var prcsyn = opener.model.getValue("/root/send/search/prcsyn");
  167. var acptdd = opener.model.getValue("/root/send/search/acptdd");
  168. // input box에 넘겨 받은 값을 입력한다.
  169. model.setValue("/root/send/search/subteam",subteam);
  170. model.setValue("/root/send/search/usernm",usernm);
  171. model.setValue("/root/send/search/appdd",appdd);
  172. model.setValue("/root/send/search/prcsyn",prcsyn);
  173. model.setValue("/root/send/search/acptdd",acptdd);
  174. // 개발자 ID가 비었다면 개발자명이 없는 데이터 출력을 위해 dev에 None 값을 넣는다. 체크 박스 체크
  175. // 쿼리 부분에서 dev 값이 None 이라면 null 값을 찾는다.
  176. if (dev == "")
  177. {
  178. model.setValue("/root/send/search/dev","None");
  179. bool1.selected = true;
  180. }
  181. else
  182. {
  183. model.setValue("/root/send/search/dev",dev);
  184. }
  185. submit("TRZTP00101");
  186. ]]>
  187. </script>
  188. <submission id="TRZTP00802" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/search/appdd" resultref="/root/temp"/>
  189. <submission id="TRZTP00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/search" resultref="/root/main/projlist/list"/>
  190. <submission id="TRZTP00902" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/search" resultref="/root/subtemp"/>
  191. </model>
  192. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  193. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  194. </xhtml:head>
  195. <xhtml:body guideline="2,783;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  196. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  197. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:189px; height:14px; ">프로젝트진척관리</caption>
  198. </group>
  199. <group id="group5" scroll="auto" style="left:0px; top:45px; width:1195px; height:730px; ">
  200. <group id="group6" style="left:0px; top:0px; width:1194px; height:65px; vertical-align:top; ">
  201. <shape id="roundrect3" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:60px; "/>
  202. <line id="line18" class="line_4" style="x1:1121px; y1:7px; x2:1121px; y2:54px; border-left-style:solid; "/>
  203. <caption id="caption2" class="search_name" style="left:6px; top:8px; width:86px; height:17px; ">SubTeam</caption>
  204. <caption id="caption3" class="search_name" style="left:211px; top:8px; width:66px; height:17px; ">대분류</caption>
  205. <caption id="caption4" class="search_name" style="left:396px; top:8px; width:71px; height:17px; ">중분류</caption>
  206. <caption id="caption6" class="search_name" style="left:6px; top:35px; width:64px; height:17px; ">구분</caption>
  207. <caption id="caption7" class="search_name" style="left:760px; top:8px; width:63px; height:17px; ">화면명</caption>
  208. <button id="button1" class="btn1_letter2" style="left:1130px; top:17px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
  209. <caption>조회</caption>
  210. <script type="javascript" ev:event="DOMActivate">
  211. <![CDATA[
  212. var usernm = model.getValue("/root/send/search/usernm");
  213. var dev = model.getValue("/root/send/search/dev");
  214. // 체크 박스가 체크 되어 있고 유저 명이 비어 있다면 None 값을 주고 그렇지 않다면 클리어
  215. // 개발자ID 넣는 박스가 없으므로 조회 후 상황에 따라 개발자ID 값을 클리어 시켜 준다.
  216. if ( usernm == "" && bool1.selected)
  217. {
  218. model.setValue("/root/send/search/dev","None");
  219. }
  220. else if ( !bool1.selected )
  221. {
  222. model.setValue("/root/send/search/dev","");
  223. }
  224. submit("TRZTP00101");
  225. ]]>
  226. </script>
  227. </button>
  228. <input id="input2" ref="/root/send/search/lrg" class="input_search" style="left:285px; top:8px; width:100px; height:19px; ">
  229. <script type="javascript" ev:event="onkeypress">
  230. <![CDATA[
  231. if (event.keycode == 13)
  232. {
  233. input2.value = input2.currentText;
  234. submit("TRZTP00101");
  235. }
  236. ]]>
  237. </script>
  238. </input>
  239. <input id="input3" ref="/root/send/search/mdl" class="input_search" style="left:470px; top:8px; width:100px; height:19px; ">
  240. <script type="javascript" ev:event="onkeypress">
  241. <![CDATA[
  242. if (event.keycode == 13)
  243. {
  244. input3.value = input3.currentText;
  245. submit("TRZTP00101");
  246. }
  247. ]]>
  248. </script>
  249. </input>
  250. <select1 id="combo1" ref="/root/send/search/srfeflag" class="combo_search" appearance="minimal" style="left:68px; top:35px; width:65px; height:19px; ">
  251. <choices>
  252. <itemset nodeset="/root/init/srfe/item">
  253. <label ref="name"/>
  254. <value ref="id"/>
  255. </itemset>
  256. </choices>
  257. </select1>
  258. <input id="input5" ref="/root/send/search/scrnname" class="input_search" style="left:830px; top:8px; width:95px; height:19px; ">
  259. <script type="javascript" ev:event="onkeypress">
  260. <![CDATA[
  261. if (event.keycode == 13)
  262. {
  263. input5.value = input5.currentText;
  264. submit("TRZTP00101");
  265. }
  266. ]]>
  267. </script>
  268. </input>
  269. <select1 id="combo2" ref="/root/send/search/subteam" class="combo_search" appearance="minimal" style="left:100px; top:8px; width:100px; height:19px; ">
  270. <choices>
  271. <itemset nodeset="/root/subtemp/combo">
  272. <label ref="subteam"/>
  273. <value ref="value"/>
  274. </itemset>
  275. </choices>
  276. </select1>
  277. <caption id="caption9" class="search_name" style="left:580px; top:8px; width:63px; height:17px; ">화면ID</caption>
  278. <input id="input1" ref="/root/send/search/scrnid" class="input_search" style="left:650px; top:8px; width:100px; height:19px; ">
  279. <script type="javascript" ev:event="onkeypress">
  280. <![CDATA[
  281. if (event.keycode == 13)
  282. {
  283. input1.value = input1.currentText;
  284. submit("TRZTP00101");
  285. }
  286. ]]>
  287. </script>
  288. </input>
  289. <caption id="caption10" class="search_name" style="left:140px; top:35px; width:63px; height:17px; ">개발자</caption>
  290. <input id="input6" ref="/root/send/search/usernm" class="input_search" style="left:230px; top:35px; width:54px; height:19px; ">
  291. <script type="javascript" ev:event="onkeypress">
  292. <![CDATA[
  293. if (event.keycode == 13)
  294. {
  295. input6.value = input6.currentText;
  296. submit("TRZTP00101");
  297. }
  298. ]]>
  299. </script>
  300. </input>
  301. <caption id="caption11" class="search_name" style="left:476px; top:35px; width:89px; height:17px; ">예정완료일</caption>
  302. <input id="input7" ref="/root/send/search/schedd" class="input_search" inputtype="date" mask="include" style="left:570px; top:35px; width:85px; height:19px; ">
  303. <script type="javascript" ev:event="onkeypress">
  304. <![CDATA[
  305. if (event.keycode == 13)
  306. {
  307. input6.value = input6.currentText;
  308. submit("TRZTP00101");
  309. }
  310. ]]>
  311. </script>
  312. </input>
  313. <input id="input8" ref="/root/send/search/startdd" class="input_search" inputtype="date" mask="include" style="left:725px; top:35px; width:85px; height:19px; ">
  314. <script type="javascript" ev:event="onkeypress">
  315. <![CDATA[
  316. if (event.keycode == 13)
  317. {
  318. input6.value = input6.currentText;
  319. submit("TRZTP00101");
  320. }
  321. ]]>
  322. </script>
  323. </input>
  324. <caption id="caption12" class="search_name" style="left:660px; top:35px; width:81px; height:17px; ">시작일</caption>
  325. <caption id="caption13" class="search_name" style="left:815px; top:35px; width:76px; height:17px; ">종료일</caption>
  326. <bool id="bool1" ref="/root/send/devnull" style="left:201px; top:35px; width:35px; height:20px; ">
  327. <hint>
  328. <![CDATA[체크 : 개발자가 없는 데이터]]>
  329. </hint>
  330. <script type="javascript" ev:event="xforms-select">
  331. <![CDATA[
  332. // 체크박스 클릭시 개발자 아이디가 null 인 값을 찾기 위해 설정해 준다.
  333. model.setValue("/root/send/search/dev","None");
  334. model.setValue("/root/send/search/usernm","");
  335. ]]>
  336. </script>
  337. <script type="javascript" ev:event="xforms-deselect">
  338. <![CDATA[
  339. // 체크를 풀더라도 개발자 명은 남겨 뒀다.
  340. model.setValue("/root/send/search/dev","");
  341. ]]>
  342. </script>
  343. </bool>
  344. <select1 id="combo3" ref="/root/send/search/appdd" class="combo_search" appearance="minimal" style="left:384px; top:35px; width:85px; height:19px; ">
  345. <choices>
  346. <itemset nodeset="/root/temp/combo">
  347. <label ref="appdd"/>
  348. <value ref="value"/>
  349. </itemset>
  350. </choices>
  351. </select1>
  352. <caption id="caption5" class="search_name" style="left:290px; top:35px; width:89px; height:17px; ">적용기준일</caption>
  353. <select1 id="combo4" ref="/root/send/search/prcsyn" class="combo_search" appearance="minimal" style="left:1060px; top:7px; width:55px; height:19px; ">
  354. <choices>
  355. <itemset nodeset="/root/init/prcsyn/item">
  356. <label ref="name"/>
  357. <value ref="id"/>
  358. </itemset>
  359. </choices>
  360. </select1>
  361. <caption id="caption14" class="search_name" style="left:936px; top:8px; width:125px; height:17px; ">공정율 적용여부</caption>
  362. <input id="input4" ref="/root/send/search/enddd" class="input_search" inputtype="date" mask="include" style="left:880px; top:35px; width:85px; height:19px; ">
  363. <script type="javascript" ev:event="onkeypress">
  364. <![CDATA[
  365. if (event.keycode == 13)
  366. {
  367. input6.value = input6.currentText;
  368. submit("TRZTP00101");
  369. }
  370. ]]>
  371. </script>
  372. </input>
  373. <input id="input10" ref="/root/send/search/acptdd" class="input_search" inputtype="date" mask="include" style="left:1032px; top:35px; width:85px; height:19px; ">
  374. <script type="javascript" ev:event="onkeypress">
  375. <![CDATA[
  376. if (event.keycode == 13)
  377. {
  378. input6.value = input6.currentText;
  379. submit("TRZTP00101");
  380. }
  381. ]]>
  382. </script>
  383. </input>
  384. <caption id="caption15" class="search_name" style="left:965px; top:35px; width:76px; height:17px; ">접수일</caption>
  385. </group>
  386. <line id="line20" class="line_1" style="x1:0px; y1:96px; x2:1194px; y2:96px; "/>
  387. <caption id="caption8" class="tit_2" style="left:5px; top:81px; width:160px; height:13px; ">프로젝트 진척관리내역</caption>
  388. <group id="group2" style="left:820px; top:70px; width:375px; height:25px; ">
  389. <button id="button3" class="btn2_letter4" disable.background-image="../../../com/commonweb/images/dis_btn2_letter4.gif" style="left:310px; top:5px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn2_letter4.gif; ">
  390. <caption>엑셀저장</caption>
  391. <script type="javascript" ev:event="DOMActivate">
  392. <![CDATA[
  393. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  394. if (fileName != "")
  395. {
  396. grd_projlist.saveExcel(fileName);
  397. }
  398. ]]>
  399. </script>
  400. </button>
  401. </group>
  402. <datagrid id="grd_projlist" nodeset="/root/main/projlist/list/proj" caption="SubTeam^대분류^중분류^소분류^구분^화면ID^화면명^중요도^세부기능/오류^개발자ID^개발자^예정시작일^예정완료일^추가일^시작일^종료일^진행률^공정대상^비고^기능분해1^기능분해2^기능분해3^수정필요여부^최초입력자^입력일시^수정자^수정일시^적용기준일^사용여부^수정자^수정일시^사용여부^seq^변경구분^적용기준일|SubTeam^대분류^중분류^소분류^구분^화면ID^화면명^중요도^세부기능/오류^개발자ID^개발자^예정시작일^예정완료일^추가일^시작일^종료일^진행률^공정대상^비고^기능분해1^기능분해2^기능분해3^수정필요여부^최초입력자^입력일시^수정자^수정일시^적용기준일^사용여부^수정자^수정일시^사용여부^seq^변경구분^적용기준일" colsep="^" colwidth="60, 80, 80, 80, 50, 83, 100, 30, 180, 55, 45, 67, 67, 67, 67, 67, 45, 30, 100, 100, 100, 100, 100, 70, 67, 65, 67, 67, 57" dataheight="23" defaultrows="0" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" style="left:0px; top:100px; width:1194px; height:610px; ">
  403. <col ref="subteam"/>
  404. <col ref="lrg"/>
  405. <col ref="mdl"/>
  406. <col ref="sml"/>
  407. <col ref="srfeflag"/>
  408. <col ref="scrnid"/>
  409. <col ref="scrnname"/>
  410. <col ref="insuimp"/>
  411. <col ref="detailfe"/>
  412. <col ref="dev"/>
  413. <col ref="usernm"/>
  414. <col ref="schestartdd" format="yyyy-mm-dd" mask="include"/>
  415. <col ref="schedd" format="yyyy-mm-dd" mask="include"/>
  416. <col ref="acptdd" format="yyyy-mm-dd" mask="include"/>
  417. <col ref="startdd" format="yyyy-mm-dd" mask="include"/>
  418. <col ref="enddd" format="yyyy-mm-dd" mask="include"/>
  419. <col ref="prcsrate" format="###%"/>
  420. <col ref="prcsyn"/>
  421. <col ref="remark"/>
  422. <col ref="funt1"/>
  423. <col ref="funt2"/>
  424. <col ref="funt3"/>
  425. <col ref="updtneedyn"/>
  426. <col ref="fstrgstrid"/>
  427. <col ref="fstrgstdt" format="yyyy-mm-dd"/>
  428. <col ref="lastupdtrid"/>
  429. <col ref="lastupdtdt" format="yyyy-mm-dd"/>
  430. <col ref="appdd" format="yyyy-mm-dd" mask="include"/>
  431. <col ref="useyn"/>
  432. </datagrid>
  433. </group>
  434. <group id="group3" style="left:0px; top:13px; width:1190px; height:27px; ">
  435. <button id="button7" class="btn4_letter3" style="left:1120px; top:2px; width:68px; height:22px; ">
  436. <caption>초기화</caption>
  437. <script type="javascript" ev:event="DOMActivate">
  438. <![CDATA[
  439. model.removeNodeset("/root/main/projlist/list/proj");
  440. model.resetInstanceNode("/root/send");
  441. //model.resetInstanceNode("/root/main/item");
  442. combo1.select(0);
  443. combo2.select(0);
  444. combo3.select(0);
  445. combo4.select(0);
  446. model.setValue("/root/send/search/acptdd","2008-05-31");
  447. model.refresh();
  448. ]]>
  449. </script>
  450. </button>
  451. <line id="line1" class="line_6" style="x1:0px; y1:25px; x2:1189px; y2:25px; "/>
  452. </group>
  453. </xhtml:body>
  454. </xhtml:html>