SMZTP00700_프로젝트진척관리(관리자용-부서).xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
  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. <check/>
  15. <reprdept/>
  16. <dept/>
  17. <subteam/>
  18. <lrg/>
  19. <mdl/>
  20. <sml/>
  21. <srfeflag/>
  22. <scrnid/>
  23. <scrnname/>
  24. <insuimp/>
  25. <detailfe/>
  26. <dev/>
  27. <usernm/>
  28. <schedd/>
  29. <acptdd/>
  30. <startdd/>
  31. <enddd/>
  32. <prcsrate/>
  33. <prcsyn/>
  34. <scrnveriyn/>
  35. <scrnveriper/>
  36. <scrnveridd/>
  37. <testendyn/>
  38. <testveriper/>
  39. <testdd/>
  40. <insuendyn/>
  41. <remark/>
  42. <funt1/>
  43. <funt2/>
  44. <funt3/>
  45. <updtneedyn/>
  46. <fstrgstrid/>
  47. <fstrgstdt/>
  48. <lastupdtrid/>
  49. <lastupdtdt/>
  50. <useyn/>
  51. <prcscd/>
  52. </proj>
  53. </list>
  54. </projlist>
  55. <list/>
  56. <dept/>
  57. <reprdept/>
  58. <rslt>
  59. <dept/>
  60. </rslt>
  61. </main>
  62. <send>
  63. <search>
  64. <subteam/>
  65. <lrg/>
  66. <mdl/>
  67. <sml/>
  68. <srfeflag/>
  69. <scrnid/>
  70. <scrnname/>
  71. <dept/>
  72. </search>
  73. <projlist/>
  74. </send>
  75. <init>
  76. <srfe>
  77. <item>
  78. <name>전체</name>
  79. <id>-</id>
  80. </item>
  81. <item>
  82. <name>화면</name>
  83. <id>화면</id>
  84. </item>
  85. <item>
  86. <name>보고서</name>
  87. <id>보고서</id>
  88. </item>
  89. <item>
  90. <name>기능</name>
  91. <id>기능</id>
  92. </item>
  93. <item>
  94. <name>오류</name>
  95. <id>오류</id>
  96. </item>
  97. </srfe>
  98. <subteam>
  99. <item>
  100. <name>전체</name>
  101. <id>-</id>
  102. </item>
  103. <item>
  104. <name>CMC네트워크</name>
  105. <id>CMC네트워크</id>
  106. </item>
  107. <item>
  108. <name>CRM</name>
  109. <id>CRM</id>
  110. </item>
  111. <item>
  112. <name>LIS</name>
  113. <id>LIS</id>
  114. </item>
  115. <item>
  116. <name>MIS</name>
  117. <id>MIS</id>
  118. </item>
  119. <item>
  120. <name>SWAT</name>
  121. <id>SWAT</id>
  122. </item>
  123. <item>
  124. <name>간호EMR</name>
  125. <id>간호EMR</id>
  126. </item>
  127. <item>
  128. <name>건진</name>
  129. <id>건진</id>
  130. </item>
  131. <item>
  132. <name>공통</name>
  133. <id>공통</id>
  134. </item>
  135. <item>
  136. <name>보험청구</name>
  137. <id>보험청구</id>
  138. </item>
  139. <item>
  140. <name>원무</name>
  141. <id>원무</id>
  142. </item>
  143. <item>
  144. <name>진료EMR</name>
  145. <id>진료EMR</id>
  146. </item>
  147. <item>
  148. <name>진료지원</name>
  149. <id>진료지원</id>
  150. </item>
  151. </subteam>
  152. </init>
  153. </root>
  154. </instance>
  155. <script type="javascript" ev:event="xforms-model-construct-done">
  156. <![CDATA[
  157. combo1.select(0);
  158. combo2.select(0);
  159. ]]>
  160. </script>
  161. <script type="javascript" ev:event="xforms-ready">
  162. <![CDATA[
  163. grd_projlist.fixedcellcheckbox(0,1) = true;
  164. model.removeNodeset("/root/main/projlist/list/proj");
  165. model.refresh();
  166. ]]>
  167. </script>
  168. <submission id="TRZTP00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/search" resultref="/root/main/projlist/list"/>
  169. <submission id="TXZTP00701" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/list"/>
  170. <submission id="TRZTP00701" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/search" resultref="/root/main/projlist/list"/>
  171. </model>
  172. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  173. <script type="javascript">
  174. <![CDATA[
  175. function checkGridUpdate(grid)
  176. {
  177. var iData = grid.getUpdateDataXml("insert");
  178. var uData = grid.getUpdateDataXml("update");
  179. var dData = grid.getUpdateDataXml("delete");
  180. if (iData=="" && uData=="" && dData=="") return false;
  181. else return true;
  182. }
  183. function checkGridField(grid, field)
  184. {
  185. var nodeset = grid.nodeset;
  186. var iStatus;
  187. var iData = grid.getUpdateDataXml("insert");
  188. for (i=grid.fixedRows; i<grid.rows; i++)
  189. {
  190. iStatus = grid.rowstatus(i);
  191. if (iStatus == 1) // ?? ??? ?? ????
  192. {
  193. if(model.getValue(nodeset+"["+i+"]/"+field)=="") return false;
  194. }
  195. }
  196. return true;
  197. }
  198. ]]>
  199. </script>
  200. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  201. </xhtml:head>
  202. <xhtml:body guideline="1,1195;2,782;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  203. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  204. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:227px; height:14px; ">프로젝트진척관리(관리자용-부서)</caption>
  205. </group>
  206. <group id="group5" scroll="auto" style="left:0px; top:20px; width:1195px; height:750px; ">
  207. <group id="group6" style="left:0px; top:30px; width:1194px; height:60px; vertical-align:top; ">
  208. <shape id="roundrect3" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:60px; "/>
  209. <line id="line18" class="line_4" style="x1:1031px; y1:7px; x2:1031px; y2:54px; border-left-style:solid; "/>
  210. <caption id="caption2" class="search_name" style="left:6px; top:8px; width:86px; height:17px; ">SubTeam</caption>
  211. <caption id="caption3" class="search_name" style="left:226px; top:8px; width:66px; height:17px; ">대분류</caption>
  212. <caption id="caption4" class="search_name" style="left:421px; top:8px; width:71px; height:17px; ">중분류</caption>
  213. <caption id="caption5" class="search_name" style="left:611px; top:8px; width:66px; height:17px; ">소분류</caption>
  214. <caption id="caption6" class="search_name" style="left:810px; top:8px; width:54px; height:17px; ">구분</caption>
  215. <caption id="caption7" class="search_name" style="left:230px; top:35px; width:63px; height:17px; ">화면명</caption>
  216. <button id="button1" class="btn1_letter2" style="left:1085px; top:17px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
  217. <caption>조회</caption>
  218. <script type="javascript" ev:event="DOMActivate">
  219. <![CDATA[
  220. //submit("TRZTP00101");
  221. model.removeNodeset("/root/main/projlist/list/proj");
  222. model.refresh();
  223. submit("TRZTP00701");
  224. var gridObj = document.all("grd_projlist");
  225. for(var i=1; i<grd_projlist.rows; i++)
  226. {
  227. for(var j=0; j<grd_projlist.cols-1; j++)
  228. {
  229. if(model.getValue("/root/main/projlist/list/proj["+i+"]/useyn") == "N")
  230. {
  231. grd_projlist.cellStyle("text-decoration", i+1, j) = "line-through";
  232. }
  233. }
  234. }
  235. ]]>
  236. </script>
  237. </button>
  238. <input id="input2" ref="/root/send/search/lrg" class="input_search" style="left:295px; top:10px; width:100px; height:19px; ">
  239. <script type="javascript" ev:event="onkeypress">
  240. <![CDATA[
  241. if (event.keycode == 13)
  242. {
  243. input2.value = input2.currentText;
  244. submit("TRZTP00701");
  245. }
  246. ]]>
  247. </script>
  248. </input>
  249. <input id="input3" ref="/root/send/search/mdl" class="input_search" style="left:490px; top:10px; width:100px; height:19px; ">
  250. <script type="javascript" ev:event="onkeypress">
  251. <![CDATA[
  252. if (event.keycode == 13)
  253. {
  254. input3.value = input3.currentText;
  255. submit("TRZTP00701");
  256. }
  257. ]]>
  258. </script>
  259. </input>
  260. <input id="input4" ref="/root/send/search/sml" class="input_search" style="left:680px; top:10px; width:105px; height:19px; ">
  261. <script type="javascript" ev:event="onkeypress">
  262. <![CDATA[
  263. if (event.keycode == 13)
  264. {
  265. input4.value = input4.currentText;
  266. submit("TRZTP00701");
  267. }
  268. ]]>
  269. </script>
  270. </input>
  271. <select1 id="combo1" ref="/root/send/search/srfeflag" class="combo_search" appearance="minimal" style="left:870px; top:10px; width:90px; height:19px; ">
  272. <choices>
  273. <itemset nodeset="/root/init/srfe/item">
  274. <label ref="name"/>
  275. <value ref="id"/>
  276. </itemset>
  277. </choices>
  278. </select1>
  279. <input id="input5" ref="/root/send/search/scrnname" class="input_search" style="left:295px; top:35px; width:100px; height:19px; ">
  280. <script type="javascript" ev:event="onkeypress">
  281. <![CDATA[
  282. if (event.keycode == 13)
  283. {
  284. input5.value = input5.currentText;
  285. submit("TRZTP00701");
  286. }
  287. ]]>
  288. </script>
  289. </input>
  290. <select1 id="combo2" ref="/root/send/search/subteam" class="combo_search" appearance="minimal" style="left:95px; top:10px; width:90px; height:19px; ">
  291. <choices>
  292. <itemset nodeset="/root/init/subteam/item">
  293. <label ref="name"/>
  294. <value ref="id"/>
  295. </itemset>
  296. </choices>
  297. </select1>
  298. <caption id="caption10" class="search_name" style="left:420px; top:35px; width:80px; height:17px; ">해당부서</caption>
  299. <input id="input6" ref="/root/send/search/dept" class="input_search" style="left:500px; top:35px; width:90px; height:19px; ">
  300. <script type="javascript" ev:event="onkeypress">
  301. <![CDATA[
  302. if (event.keycode == 13)
  303. {
  304. input6.value = input6.currentText;
  305. submit("TRZTP00701");
  306. }
  307. ]]>
  308. </script>
  309. </input>
  310. <caption id="caption11" class="search_name" style="left:5px; top:35px; width:88px; height:17px; ">화면ID</caption>
  311. <input id="input7" ref="/root/send/search/scrnid" class="input_search" style="left:85px; top:35px; width:100px; height:19px; ">
  312. <script type="javascript" ev:event="onkeypress">
  313. <![CDATA[
  314. if (event.keycode == 13)
  315. {
  316. input7.value = input7.currentText;
  317. submit("TRZTP00701");
  318. }
  319. ]]>
  320. </script>
  321. </input>
  322. </group>
  323. <line id="line20" class="line_1" style="x1:0px; y1:121px; x2:1194px; y2:121px; "/>
  324. <caption id="caption8" class="tit_2" style="left:5px; top:106px; width:160px; height:18px; ">프로젝트 진척관리내역</caption>
  325. <group id="group2" style="left:465px; top:95px; width:730px; height:25px; ">
  326. <button id="button3" class="btn2_letter4" disable.background-image="../../../com/commonweb/images/dis_btn2_letter4.gif" style="left:608px; top:5px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn2_letter4.gif; ">
  327. <caption>엑셀저장</caption>
  328. <script type="javascript" ev:event="DOMActivate">
  329. <![CDATA[
  330. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  331. if (fileName != "")
  332. {
  333. grd_projlist.saveExcel(fileName);
  334. }
  335. ]]>
  336. </script>
  337. </button>
  338. <button id="button6" class="btn2_letter3" disable.background-image="../../../com/commonweb/images/dis_btn2_letter3.gif" style="left:675px; top:5px; width:53px; height:19px; background-image:../../../com/commonweb/images/btn2_letter3.gif; ">
  339. <caption>행삭제</caption>
  340. <script type="javascript" ev:event="DOMActivate">
  341. <![CDATA[
  342. for(var i=1; i<grd_projlist.rows-1; i++)
  343. {
  344. if(grd_projlist.textmatrix(i+1,1) == "true")
  345. {
  346. var iStatus = grd_projlist.rowstatus(i+1);
  347. if (iStatus == 1) // 새로 삽입된 행이면
  348. {
  349. grd_projlist.deleteitem(i+1);
  350. }
  351. else if (iStatus == 6) // 삭제로 표시된 행이면
  352. {
  353. grd_projlist.removestatus(i+1, "delete");
  354. }
  355. else
  356. {
  357. grd_projlist.addStatus(i+1, "delete");
  358. }
  359. }
  360. }
  361. ]]>
  362. </script>
  363. </button>
  364. <button id="button2" class="btn2_letter4" disable.background-image="../../../com/commonweb/images/dis_btn2_letter4.gif" style="left:528px; top:5px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn2_letter4.gif; ">
  365. <caption>부서등록</caption>
  366. <script type="javascript" ev:event="DOMActivate">
  367. <![CDATA[
  368. var dept = model.getValue("/root/main/dept");
  369. var reprdept = model.getValue("/root/main/reprdept");
  370. if(dept == "" || reprdept == ""){
  371. alert("소위원회와 해당부서를 모두 입력하십시오");
  372. }
  373. else{
  374. for(var i=1; i<grd_projlist.rows-1; i++){
  375. if(grd_projlist.textmatrix(i+1,1) == "true"){
  376. model.setValue("/root/main/projlist/list/proj["+i+"]/reprdept", reprdept);
  377. model.setValue("/root/main/projlist/list/proj["+i+"]/dept", dept);
  378. grd_projlist.addStatus(i+1, "insert");
  379. }
  380. }
  381. }
  382. model.refresh();
  383. ]]>
  384. </script>
  385. </button>
  386. <caption id="caption9" class="cell_1" style="left:185px; top:5px; width:60px; height:20px; ">
  387. <![CDATA[소위원회]]>
  388. </caption>
  389. <input id="input1" ref="/root/main/reprdept" class="input_essential" style="left:250px; top:5px; width:100px; height:19px; "/>
  390. <input id="input8" ref="/root/main/dept" class="input_essential" style="left:423px; top:5px; width:100px; height:19px; "/>
  391. <caption id="caption12" class="cell_1" style="left:358px; top:5px; width:60px; height:20px; ">해당부서</caption>
  392. <button id="button5" class="btn2_letter4" disable.background-image="../../../com/commonweb/images/dis_btn2_letter4.gif" style="left:116px; top:5px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn2_letter4.gif; ">
  393. <caption>부서보기</caption>
  394. <script type="javascript" ev:event="onclick">
  395. <![CDATA[
  396. open("SPZTP01200", "1", "100", "100", "SPZTP01200", "", "", "left:100; top:100; width:400; height:400; sysmenu:visible; min:visible; max:true; resize:true; caption:visible;" , false);
  397. ]]>
  398. </script>
  399. <hint>
  400. <![CDATA['소위원회 - 해당 부서' 매핑 보기(팝업에서 더블클릭 시 입력)]]>
  401. </hint>
  402. </button>
  403. </group>
  404. <datagrid id="grd_projlist" nodeset="/root/main/projlist/list/proj" caption="^소위원회^해당부서^SubTeam^대분류^중분류^소분류^구분^화면ID^화면명^중요도^세부기능/오류^개발자ID^개발자^예정완료일^추가일^시작일^종료일^진행률^공정률적용여부^인수위 화면&#xA;검증완료여부^인수위 화면&#xA;검증자^인수위 화면&#xA;검증일자^인수위테스트&#xA;완료여부^인수위테스트&#xA;검증자^인수위테스트일자^인수위완료여부^비고^기능분해1^기능분해2^기능분해3^수정필요여부^최초입력자^입력일시^수정자^수정일시^사용여부^seq|^소위원회^해당부서^SubTeam^대분류^중분류^소분류^구분^화면ID^화면명^중요도^세부기능/오류^개발자ID^개발자^예정완료일^추가일^시작일^종료일^진행률^공정률적용여부^인수위 화면&#xA;검증완료여부^인수위 화면&#xA;검증자^인수위 화면&#xA;검증일자^인수위테스트&#xA;완료여부^인수위테스트&#xA;검증자^인수위테스트일자^인수위완료여부^비고^기능분해1^기능분해2^기능분해3^수정필요여부^최초입력자^입력일시^수정자^수정일시^사용여부^seq" colsep="^" colwidth="19, 40, 70, 60, 80, 80, 80, 50, 83, 100, 30, 180, 55, 45, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 67, 70, 67, 0, 0" dataheight="23" defaultrows="0" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" tooltip="true" style="left:0px; top:125px; width:1194px; height:620px; ">
  405. <col ref="check" type="checkbox"/>
  406. <col ref="reprdept"/>
  407. <col ref="dept"/>
  408. <col ref="subteam"/>
  409. <col ref="lrg"/>
  410. <col ref="mdl"/>
  411. <col ref="sml"/>
  412. <col ref="srfeflag"/>
  413. <col ref="scrnid"/>
  414. <col ref="scrnname"/>
  415. <col ref="insuimp"/>
  416. <col ref="detailfe"/>
  417. <col ref="dev"/>
  418. <col ref="usernm"/>
  419. <col ref="schedd"/>
  420. <col ref="acptdd" type="input"/>
  421. <col ref="startdd" type="input"/>
  422. <col ref="enddd" type="input"/>
  423. <col ref="prcsrate" type="input"/>
  424. <col ref="prcsyn" type="input"/>
  425. <col ref="scrnveriyn" type="input"/>
  426. <col ref="scrnveriper" type="input"/>
  427. <col ref="scrnveridd" type="input"/>
  428. <col ref="testendyn" type="input"/>
  429. <col ref="testveriper" type="input"/>
  430. <col ref="testdd" type="input"/>
  431. <col ref="insuendyn" type="input"/>
  432. <col ref="remark" type="input"/>
  433. <col ref="funt1" type="input"/>
  434. <col ref="funt2" type="input"/>
  435. <col ref="funt3" type="input"/>
  436. <col ref="updtneedyn" type="input"/>
  437. <col ref="fstrgstrid"/>
  438. <col ref="fstrgstdt" format="yyyy-mm-dd"/>
  439. <col ref="lastupdtrid"/>
  440. <col ref="lastupdtdt" format="yyyy-mm-dd"/>
  441. <col ref="useyn" type="input"/>
  442. <col ref="prcscd"/>
  443. <script type="javascript" ev:event="onaftersort">
  444. <![CDATA[
  445. grd_projlist.gridToInstance();
  446. ]]>
  447. </script>
  448. </datagrid>
  449. <button id="button4" class="btn4_letter2" disable.background-image="../../../com/commonweb/images/dis_btn4_letter2.gif" style="left:1135px; top:2px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  450. <caption>저장</caption>
  451. <script type="javascript" ev:event="DOMActivate">
  452. <![CDATA[
  453. if(messageBox("", "Q002")==6){
  454. if(!checkGridUpdate(grd_projlist))
  455. {
  456. alert("저장할 자료가 존재하지 않습니다.");
  457. return;
  458. }
  459. /*if(checkGridField(grd_projlist,"subteam")==false)
  460. {
  461. alert("데이터중에 비어있는 필수필드가 있습니다.");
  462. return;
  463. }*/
  464. model.setValue("/root/send/projlist",grd_projlist.getUpdateData());
  465. if ( submit("TXZTP00701") ) {
  466. grd_projlist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  467. model.resetInstanceNode("/root/main/projlist/list/proj/check");
  468. submit("TRZTP00701");
  469. //changeNodeSet();
  470. }
  471. }
  472. ]]>
  473. </script>
  474. </button>
  475. <line id="line1" class="line_6" style="x1:0px; y1:25px; x2:1189px; y2:25px; "/>
  476. </group>
  477. </xhtml:body>
  478. </xhtml:html>