SPMMP01500_CP색인관리.xfdl 78 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMP01500" position="absolute 0 0 350 677" titletext="CPG 색인관리" oninit="SPMMP01500_oninit" onload="SPMMP01500_onload">
  5. <Layouts>
  6. <Layout>
  7. <Grid position="absolute 0 0 350 677" treeusecheckbox="false" autofit="col" id="treeview1" binddataset="ds_main_indxlist" selecttype="treecell" autosizingtype="col" oncelldblclick="treeview1_oncelldblclick" onrbuttondown="treeview1_onrbuttondown" anchor="all" ondrag="treeview1_ondrag" ondragleave="treeview1_ondragleave" ondragmove="treeview1_ondragmove" ondrop="treeview1_ondrop">
  8. <Formats>
  9. <Format id="default">
  10. <Columns>
  11. <Column size="350"/>
  12. </Columns>
  13. <Rows>
  14. <Row size="18"/>
  15. </Rows>
  16. <Band id="body">
  17. <Cell displaytype="tree" edittype="tree" style="line:0 none #808080ff ;background:EXPR((currow == g_prevmouserow) ? &quot;#ccffff&quot; : &quot;#ffffff&quot;);background2:EXPR((currow == g_prevmouserow) ? &quot;#ccffff&quot; : &quot;#ffffff&quot;);color:expr:(utlf_isNull(cpgno) || cpgno == &quot;0&quot;) ? &quot;#0000FFFF&quot; : &quot;&quot;;color2:expr:(utlf_isNull(cpgno) || cpgno == &quot;0&quot;) ? &quot;#0000FFFF&quot; : &quot;&quot;;" text="bind:indxnm" treestartlevel="1" treelevel="bind:depth" autosizecol="limitmin"/>
  18. </Band>
  19. </Format>
  20. </Formats>
  21. </Grid>
  22. <Div position="absolute 95 72 316 128" id="group2" visible="false" class="div_SA2">
  23. <Layouts>
  24. <Layout>
  25. <Edit position="absolute 67 6 214 26" id="input1" anchor="default" imemode="hangul" autoselect="true"/>
  26. <Edit position="absolute 67 30 124 50" id="input2" visible="false" anchor="default" autoselect="true"/>
  27. <Edit position="absolute 8 30 63 50" id="input3" class="input_default" visible="false" anchor="default" autoselect="true"/>
  28. <Button position="absolute 127 30 169 50" id="btn_ok" class="btn2" text="확인" anchor="default" onclick="group2_btn_ok_onclick"/>
  29. <Button position="absolute 127 30 169 50" id="btn_modify" class="btn2" text="확인" anchor="default" onclick="group2_btn_modify_onclick"/>
  30. <Button position="absolute 127 30 169 50" id="btn_copyfolder" class="btn2" text="확인" anchor="default" onclick="group2_btn_copyfolder_onclick"/>
  31. <Static text="색인명" position="absolute 8 6 63 26" align="align:center middle;" id="cap_menu" anchor="default" class="cell_1"/>
  32. <Button position="absolute 172 30 214 50" id="btn_cancle" class="btn2" text="취소" anchor="default" onclick="group2_btn_cancle_onclick"/>
  33. </Layout>
  34. </Layouts>
  35. </Div>
  36. <Grid position="absolute 0 594 345 671" id="grd_getindxlist" visible="false" binddataset="ds_main_indexinfo">
  37. <Formats>
  38. <Format id="default">
  39. <Columns>
  40. <Column size="45"/>
  41. <Column size="51"/>
  42. <Column size="50"/>
  43. <Column size="66"/>
  44. <Column size="73"/>
  45. <Column size="49"/>
  46. <Column size="72"/>
  47. <Column size="41"/>
  48. <Column size="39"/>
  49. </Columns>
  50. <Rows>
  51. <Row size="24" band="head"/>
  52. <Row size="24"/>
  53. </Rows>
  54. <Band id="head">
  55. <Cell text="indxNO"/>
  56. <Cell col="1" text="indxSeq"/>
  57. <Cell col="2" text="indxNM"/>
  58. <Cell col="3" text="supIndxNO"/>
  59. <Cell col="4" text="indxRefSeq"/>
  60. <Cell col="5" text="cpgNo"/>
  61. <Cell col="6" text="cpgHistSeq"/>
  62. <Cell col="7" text="depth"/>
  63. <Cell col="8" text="status"/>
  64. </Band>
  65. <Band id="body">
  66. <Cell text="bind:indxno"/>
  67. <Cell col="1" text="bind:indxseq"/>
  68. <Cell col="2" text="bind:indxnm"/>
  69. <Cell col="3" text="bind:supindxno"/>
  70. <Cell col="4" text="bind:indxrefseq"/>
  71. <Cell col="5" text="bind:cpgno"/>
  72. <Cell col="6" text="bind:cpghistseq"/>
  73. <Cell col="7" text="bind:depth"/>
  74. <Cell col="8" text="bind:status"/>
  75. </Band>
  76. </Format>
  77. </Formats>
  78. </Grid>
  79. <Div position="absolute 60 175 331 245" id="group1" visible="false" class="div_SA2">
  80. <Layouts>
  81. <Layout>
  82. <Edit position="absolute 80 43 97 63" id="input5" class="input_default" visible="false" anchor="default"/>
  83. <Edit position="absolute 70 43 85 63" id="input6" visible="false" anchor="default"/>
  84. <ImageViewer position="absolute 6 15 18 30" id="img1" image="URL('theme://images\icon_n.png')" anchor="default"/>
  85. <Edit position="absolute 60 43 77 63" id="input7" visible="false" anchor="default"/>
  86. <Static text="선택하신 CP의 적용일이 존재하지 않습니다.&#13;&#10;적용일을 등록하시겠습니까?" position="absolute 23 10 269 38" id="cap_question" anchor="default"/>
  87. <Calendar position="absolute 70 43 167 63" id="ipt_appdd" dateformat="yyyy-MM-dd" value="null" autoselect="true" anchor="default"/>
  88. <Button position="absolute 219 43 261 63" id="btn_msgcncl" class="btn2" text="취소" onclick="group1_btn_msgcncl_onclick" anchor="default"/>
  89. <Button position="absolute 174 43 216 63" id="btn_msgcnfm" class="btn2" text="확인" onclick="group1_btn_msgcnfm_onclick" anchor="default"/>
  90. <Static text="적용일" position="absolute 8 44 74 64" id="cap_appdd" class="tit_2" anchor="default"/>
  91. </Layout>
  92. </Layouts>
  93. </Div>
  94. <PopupMenu id="pmn_menu_sup" innerdataset="@ds_supmenu" idcolumn="func" captioncolumn="label" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 240 252 340 298"/>
  95. <PopupMenu id="pmn_menu_sub" innerdataset="ds_submenu" idcolumn="func" captioncolumn="label" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 240 308 340 394"/>
  96. <PopupMenu id="pmn_menu_indx" innerdataset="ds_indxmenu" idcolumn="func" captioncolumn="label" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 240 404 340 469"/>
  97. <PopupMenu id="pmn_menu_tmpindx" innerdataset="ds_tmpindxmenu" idcolumn="func" captioncolumn="label" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 240 480 340 545"/>
  98. <PopupMenu id="pmn_menu_endindx" innerdataset="@ds_endindxmenu" idcolumn="func" captioncolumn="label" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 240 556 340 601"/>
  99. </Layout>
  100. </Layouts>
  101. <Objects>
  102. <Dataset id="ds_temp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  103. <ColumnInfo>
  104. <Column id="openeruid" type="STRING" size="256"/>
  105. <Column id="indxdelyn" type="STRING" size="256"/>
  106. <Column id="skiptopcheck" type="STRING" size="256"/>
  107. </ColumnInfo>
  108. <Rows>
  109. <Row>
  110. <Col id="indxdelyn">N</Col>
  111. </Row>
  112. </Rows>
  113. </Dataset>
  114. <Dataset id="ds_temp_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  115. <ColumnInfo>
  116. <Column id="cpgno" type="STRING" size="256"/>
  117. <Column id="cpghistseq" type="STRING" size="256"/>
  118. <Column id="cpgflagcd" type="STRING" size="256"/>
  119. <Column id="cpgnm" type="STRING" size="256"/>
  120. <Column id="selectindxcd" type="STRING" size="256"/>
  121. <Column id="selectindxnm" type="STRING" size="256"/>
  122. </ColumnInfo>
  123. <Rows>
  124. <Row/>
  125. </Rows>
  126. </Dataset>
  127. <Dataset id="ds_main_indxlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  128. <ColumnInfo>
  129. <Column id="status" type="STRING" size="256" sumtext="상태"/>
  130. <Column id="indxno" type="INT" size="256" sumtext="코드"/>
  131. <Column id="indxnm" type="STRING" size="256" sumtext="한글명"/>
  132. <Column id="supindxno" type="INT" size="256" sumtext="상위코드"/>
  133. <Column id="indxrefseq" type="INT" size="256" sumtext="조회순서"/>
  134. <Column id="depth" type="STRING" size="256" sumtext="깊이(레벨)"/>
  135. <Column id="indxseq" type="INT" size="256" sumtext="인덱스순번"/>
  136. <Column id="cpgno" type="STRING" size="256" sumtext="cp/cpg번호"/>
  137. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  138. <Column id="image" type="STRING" size="256" sumtext="이미지"/>
  139. <Column id="cpgflagcd" type="STRING" size="256" sumtext="CPG구분"/>
  140. <Column id="times" type="STRING" size="256" sumtext="회차"/>
  141. <Column id="orgindxnm" type="STRING" size="256" sumtext="한글명"/>
  142. </ColumnInfo>
  143. </Dataset>
  144. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  145. <Dataset id="ds_main_indexinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  146. <ColumnInfo>
  147. <Column id="status" type="STRING" size="256" sumtext="상태"/>
  148. <Column id="indxno" type="INT" size="256" sumtext="코드"/>
  149. <Column id="indxnm" type="STRING" size="256" sumtext="한글명"/>
  150. <Column id="supindxno" type="INT" size="256" sumtext="상위코드"/>
  151. <Column id="indxrefseq" type="INT" size="256" sumtext="조회순서"/>
  152. <Column id="depth" type="STRING" size="256" sumtext="깊이(레벨)"/>
  153. <Column id="indxseq" type="INT" size="256" sumtext="인덱스순번"/>
  154. <Column id="cpgno" type="STRING" size="256" sumtext="cp/cpg번호"/>
  155. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  156. <Column id="image" type="STRING" size="256" sumtext="이미지"/>
  157. <Column id="cpgflagcd" type="STRING" size="256" sumtext="CPG구분"/>
  158. <Column id="times" type="STRING" size="256" sumtext="회차"/>
  159. <Column id="orgindxnm" type="STRING" size="256" sumtext="한글명"/>
  160. </ColumnInfo>
  161. </Dataset>
  162. <Dataset id="ds_main_formdata_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  163. <ColumnInfo>
  164. <Column id="status" type="STRING" size="256"/>
  165. <Column id="indxno" type="INT" size="256"/>
  166. <Column id="indxnm" type="STRING" size="256"/>
  167. <Column id="supindxno" type="INT" size="256"/>
  168. <Column id="indxrefseq" type="INT" size="256"/>
  169. <Column id="depth" type="STRING" size="256"/>
  170. <Column id="indxseq" type="INT" size="256"/>
  171. <Column id="cpgno" type="STRING" size="256"/>
  172. <Column id="cpghistseq" type="STRING" size="256"/>
  173. <Column id="image" type="STRING" size="256"/>
  174. <Column id="cpgflagcd" type="STRING" size="256"/>
  175. </ColumnInfo>
  176. <Rows>
  177. <Row/>
  178. </Rows>
  179. </Dataset>
  180. <Dataset id="ds_supmenu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  181. <ColumnInfo>
  182. <Column id="label" type="STRING" size="256"/>
  183. <Column id="func" type="STRING" size="256"/>
  184. <Column id="level" type="STRING" size="256"/>
  185. </ColumnInfo>
  186. <Rows>
  187. <Row>
  188. <Col id="label">새폴더</Col>
  189. <Col id="func">fFolderAdd</Col>
  190. <Col id="level">0</Col>
  191. </Row>
  192. <Row>
  193. <Col id="label">-</Col>
  194. <Col id="func"/>
  195. <Col id="level">0</Col>
  196. </Row>
  197. <Row>
  198. <Col id="label">폴더붙여넣기</Col>
  199. <Col id="func">fPasteFolder</Col>
  200. <Col id="level">0</Col>
  201. </Row>
  202. </Rows>
  203. </Dataset>
  204. <Dataset id="ds_submenu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  205. <ColumnInfo>
  206. <Column id="label" type="STRING" size="256"/>
  207. <Column id="func" type="STRING" size="256"/>
  208. <Column id="level" type="STRING" size="256"/>
  209. </ColumnInfo>
  210. <Rows>
  211. <Row>
  212. <Col id="label">새폴더</Col>
  213. <Col id="func">fFolderAdd</Col>
  214. <Col id="level">0</Col>
  215. </Row>
  216. <Row>
  217. <Col id="label">이름바꾸기</Col>
  218. <Col id="func">fFolderSet</Col>
  219. <Col id="level">0</Col>
  220. </Row>
  221. <Row>
  222. <Col id="label">삭제</Col>
  223. <Col id="func">fFolderDel</Col>
  224. <Col id="level">0</Col>
  225. </Row>
  226. <Row>
  227. <Col id="label">-</Col>
  228. <Col id="func"/>
  229. <Col id="level">0</Col>
  230. </Row>
  231. <Row>
  232. <Col id="label">폴더복사</Col>
  233. <Col id="func">fCopyFolder</Col>
  234. <Col id="level">0</Col>
  235. </Row>
  236. </Rows>
  237. </Dataset>
  238. <Dataset id="ds_indxmenu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  239. <ColumnInfo>
  240. <Column id="label" type="STRING" size="256"/>
  241. <Column id="func" type="STRING" size="256"/>
  242. <Column id="level" type="STRING" size="256"/>
  243. </ColumnInfo>
  244. <Rows>
  245. <Row>
  246. <Col id="label">미등록변경</Col>
  247. <Col id="func">fIndxSet</Col>
  248. <Col id="level">0</Col>
  249. </Row>
  250. <Row>
  251. <Col id="label">종료변경</Col>
  252. <Col id="func">fToEndIndxSet</Col>
  253. <Col id="level">0</Col>
  254. </Row>
  255. <Row>
  256. <Col id="label">-</Col>
  257. <Col id="func"/>
  258. <Col id="level">0</Col>
  259. </Row>
  260. <Row>
  261. <Col id="label">삭제</Col>
  262. <Col id="func">fIndxDel</Col>
  263. <Col id="level">0</Col>
  264. </Row>
  265. </Rows>
  266. </Dataset>
  267. <Dataset id="ds_tmpindxmenu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  268. <ColumnInfo>
  269. <Column id="label" type="STRING" size="256"/>
  270. <Column id="func" type="STRING" size="256"/>
  271. <Column id="level" type="STRING" size="256"/>
  272. </ColumnInfo>
  273. <Rows>
  274. <Row>
  275. <Col id="label">등록변경</Col>
  276. <Col id="func">fTmpIndxSet</Col>
  277. <Col id="level">0</Col>
  278. </Row>
  279. <Row>
  280. <Col id="label">종료변경</Col>
  281. <Col id="func">fToEndIndxSet</Col>
  282. <Col id="level">0</Col>
  283. </Row>
  284. <Row>
  285. <Col id="label">-</Col>
  286. <Col id="func"/>
  287. <Col id="level">0</Col>
  288. </Row>
  289. <Row>
  290. <Col id="label">삭제</Col>
  291. <Col id="func">fIndxDel</Col>
  292. <Col id="level">0</Col>
  293. </Row>
  294. </Rows>
  295. </Dataset>
  296. <Dataset id="ds_endindxmenu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  297. <ColumnInfo>
  298. <Column id="label" type="STRING" size="256"/>
  299. <Column id="func" type="STRING" size="256"/>
  300. <Column id="level" type="STRING" size="256"/>
  301. </ColumnInfo>
  302. <Rows>
  303. <Row>
  304. <Col id="label">종료취소</Col>
  305. <Col id="func">fFromEndIndxSet</Col>
  306. <Col id="level">0</Col>
  307. </Row>
  308. <Row>
  309. <Col id="label">-</Col>
  310. <Col id="func"/>
  311. <Col id="level">0</Col>
  312. </Row>
  313. <Row>
  314. <Col id="label">삭제</Col>
  315. <Col id="func">fIndxDel</Col>
  316. <Col id="level">0</Col>
  317. </Row>
  318. </Rows>
  319. </Dataset>
  320. <Dataset id="ds_temp_selecedkind" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  321. <ColumnInfo>
  322. <Column id="kind" type="STRING" size="256"/>
  323. </ColumnInfo>
  324. <Rows>
  325. <Row/>
  326. </Rows>
  327. </Dataset>
  328. <Dataset id="ds_TXMMP01501" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  329. <ColumnInfo>
  330. <Column id="indxnm" type="STRING" size="256" sumtext="색인명"/>
  331. <Column id="supindxno" type="INT" size="256" sumtext="상위색인번호"/>
  332. <Column id="indxrefseq" type="INT" size="256" sumtext="색인조회순서"/>
  333. <Column id="indxno" type="INT" size="256" sumtext="CP/CPG번호"/>
  334. <Column id="status" type="STRING" size="256" sumtext="저장구분"/>
  335. <Column id="cpgflagcd" type="STRING" size="256" sumtext="CPG구분"/>
  336. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  337. <Column id="indxseq" type="INT" size="256" sumtext="색인순번"/>
  338. </ColumnInfo>
  339. </Dataset>
  340. <Dataset id="ds_temp_savedfolder" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  341. <ColumnInfo>
  342. <Column id="indxno" type="INT" size="256" sumtext="코드"/>
  343. <Column id="indxseq" type="INT" size="256" sumtext="인덱스순번"/>
  344. <Column id="indxnm" type="STRING" size="256" sumtext="한글명"/>
  345. <Column id="supindxno" type="INT" size="256" sumtext="상위코드"/>
  346. <Column id="indxrefseq" type="INT" size="256" sumtext="조회순서"/>
  347. <Column id="cpgflagcd" type="STRING" size="256" sumtext="CPG구분"/>
  348. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  349. </ColumnInfo>
  350. </Dataset>
  351. <Dataset id="ds_main_formdata_cpinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  352. <ColumnInfo>
  353. <Column id="appdd" type="STRING" size="256"/>
  354. <Column id="cpgno" type="STRING" size="256"/>
  355. <Column id="cpghistseq" type="STRING" size="256"/>
  356. <Column id="purpose" type="STRING" size="256"/>
  357. </ColumnInfo>
  358. <Rows>
  359. <Row/>
  360. </Rows>
  361. </Dataset>
  362. <Dataset id="ds_temp_copysset_copyfolderinfo_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  363. <ColumnInfo>
  364. <Column id="status" type="STRING" size="256" sumtext="상태"/>
  365. <Column id="indxno" type="INT" size="256" sumtext="코드"/>
  366. <Column id="indxnm" type="STRING" size="256" sumtext="한글명"/>
  367. <Column id="supindxno" type="INT" size="256" sumtext="상위코드"/>
  368. <Column id="indxrefseq" type="INT" size="256" sumtext="조회순서"/>
  369. <Column id="depth" type="STRING" size="256" sumtext="깊이(레벨)"/>
  370. <Column id="indxseq" type="INT" size="256" sumtext="인덱스순번"/>
  371. <Column id="cpgno" type="STRING" size="256" sumtext="cp/cpg번호"/>
  372. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  373. <Column id="image" type="STRING" size="256" sumtext="이미지"/>
  374. <Column id="cpgflagcd" type="STRING" size="256" sumtext="CPG구분"/>
  375. <Column id="times" type="STRING" size="256" sumtext="회차"/>
  376. <Column id="orgindxnm" type="STRING" size="256" sumtext="한글명"/>
  377. </ColumnInfo>
  378. </Dataset>
  379. <Dataset id="ds_send_reqdata_srcindx" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  380. <ColumnInfo>
  381. <Column id="srcindxno" type="STRING" size="256" sumtext="source폴더번호"/>
  382. <Column id="srcsupindxno" type="STRING" size="256" sumtext="source폴더상위번호"/>
  383. <Column id="trgindxno" type="STRING" size="256" sumtext="target폴더번호"/>
  384. <Column id="trgsupindxno" type="STRING" size="256" sumtext="target폴더상위번호"/>
  385. <Column id="trgindxnm" type="STRING" size="256" sumtext="target폴더명"/>
  386. <Column id="lastindxrefseq" type="STRING" size="256" sumtext="마지막색인순번"/>
  387. </ColumnInfo>
  388. <Rows>
  389. <Row/>
  390. </Rows>
  391. </Dataset>
  392. <Dataset id="ds_send_masterinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  393. <ColumnInfo>
  394. <Column id="cpgnm" type="STRING" size="256" sumtext="cp명"/>
  395. <Column id="cpgorddeptcd" type="STRING" size="256" sumtext="cp진료과"/>
  396. <Column id="cpaprvno" type="STRING" size="256" sumtext="cp승인번호"/>
  397. <Column id="swimlineno" type="STRING" size="256" sumtext="스윔라인수"/>
  398. <Column id="fcstinhospdayno" type="STRING" size="256" sumtext="예상재원일수"/>
  399. <Column id="appdd" type="STRING" size="256" sumtext="적용일"/>
  400. <Column id="todd" type="STRING" size="256" sumtext="종료일"/>
  401. <Column id="cretdd" type="STRING" size="256" sumtext="생성일"/>
  402. <Column id="lastupdtdt" type="STRING" size="256" sumtext="최종수정일"/>
  403. <Column id="cpgmemo" type="STRING" size="256" sumtext="메모"/>
  404. <Column id="cpgflagcd" type="STRING" size="256" sumtext="CPG구분(01,02)"/>
  405. <Column id="cpgno" type="INT" size="256" sumtext="CPG번호"/>
  406. <Column id="cpghistseq" type="INT" size="256" sumtext="CPG이력순번"/>
  407. <Column id="rgstrid" type="STRING" size="256" sumtext="등록자ID"/>
  408. <Column id="status" type="STRING" size="256" sumtext="저장 flag"/>
  409. <Column id="oldcpgno" type="STRING" size="256" sumtext="이전CP번호"/>
  410. <Column id="oldcpghistseq" type="STRING" size="256" sumtext="이전CP이력번호"/>
  411. <Column id="oldtmpyn" type="STRING" size="256" sumtext="이전버전 임시여부"/>
  412. <Column id="saveflag" type="STRING" size="256" sumtext="저장구분"/>
  413. <Column id="cpglasthistyn" type="STRING" size="256" sumtext="최종이력여부"/>
  414. <Column id="tmpyn" type="STRING" size="256" sumtext="임시여부"/>
  415. <Column id="ocssaveyn" type="STRING" size="256" sumtext="OCS저장여부"/>
  416. <Column id="ioflagcd" type="STRING" size="256" sumtext="입원/외래구분"/>
  417. <Column id="cpgtypecd" type="STRING" size="256" sumtext="CPG 종류(과내공유/병원공유)"/>
  418. <Column id="valusgeyn" type="STRING" size="256" sumtext="평가용CPG여부"/>
  419. <Column id="valunm" type="STRING" size="256" sumtext="평가명"/>
  420. <Column id="nm" type="STRING" size="256"/>
  421. </ColumnInfo>
  422. </Dataset>
  423. <Dataset id="ds_send_saveinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  424. <ColumnInfo>
  425. <Column id="purpose" type="STRING" size="256" sumtext="저장목적(경로) 1:생성기, 2:미등록, 3:등록, 4:종료취소, 5:종료"/>
  426. </ColumnInfo>
  427. </Dataset>
  428. <Dataset id="ds_send_indxlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  429. <ColumnInfo>
  430. <Column id="status" type="STRING" size="256" sumtext="상태"/>
  431. <Column id="indxno" type="INT" size="256" sumtext="코드"/>
  432. <Column id="indxnm" type="STRING" size="256" sumtext="한글명"/>
  433. <Column id="supindxno" type="INT" size="256" sumtext="상위코드"/>
  434. <Column id="indxrefseq" type="INT" size="256" sumtext="조회순서"/>
  435. <Column id="depth" type="STRING" size="256" sumtext="깊이(레벨)"/>
  436. <Column id="indxseq" type="INT" size="256" sumtext="인덱스순번"/>
  437. <Column id="cpgno" type="STRING" size="256" sumtext="cp/cpg번호"/>
  438. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  439. <Column id="image" type="STRING" size="256" sumtext="이미지"/>
  440. <Column id="cpgflagcd" type="STRING" size="256" sumtext="CPG구분"/>
  441. </ColumnInfo>
  442. </Dataset>
  443. <Dataset id="ds_send_delmasterinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  444. <Dataset id="ds_send_reqrlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  445. <Dataset id="ds_send_termlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  446. <Dataset id="ds_send_exclusionlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  447. <Dataset id="ds_send_droplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  448. <Dataset id="ds_send_steplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  449. <Dataset id="ds_send_decisionlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  450. <Dataset id="ds_send_master" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  451. <Dataset id="ds_send_checkcpgnm" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  452. <Dataset id="ds_send_deptlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  453. <Dataset id="ds_send_scrninfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  454. <Dataset id="ds_send_mntrinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  455. <Dataset id="ds_send_inqrinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  456. <Dataset id="ds_send_limtinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  457. <Dataset id="ds_send_indxlist_temp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  458. <ColumnInfo>
  459. <Column id="status" type="STRING" size="256" sumtext="상태"/>
  460. <Column id="indxno" type="INT" size="256" sumtext="코드"/>
  461. <Column id="indxnm" type="STRING" size="256" sumtext="한글명"/>
  462. <Column id="supindxno" type="INT" size="256" sumtext="상위코드"/>
  463. <Column id="indxrefseq" type="INT" size="256" sumtext="조회순서"/>
  464. <Column id="depth" type="STRING" size="256" sumtext="깊이(레벨)"/>
  465. <Column id="indxseq" type="INT" size="256" sumtext="인덱스순번"/>
  466. <Column id="cpgno" type="STRING" size="256" sumtext="cp/cpg번호"/>
  467. <Column id="cpghistseq" type="STRING" size="256" sumtext="cp/cpg이력번호"/>
  468. <Column id="image" type="STRING" size="256" sumtext="이미지"/>
  469. <Column id="cpgflagcd" type="STRING" size="256" sumtext="CPG구분"/>
  470. </ColumnInfo>
  471. </Dataset>
  472. </Objects>
  473. <Bind>
  474. <BindItem id="item0" compid="group2.input1" propid="value" datasetid="ds_main_formdata_item" columnid="indxnm"/>
  475. <BindItem id="item1" compid="group2.input3" propid="value" datasetid="ds_main_formdata_item" columnid="supindxno"/>
  476. <BindItem id="item2" compid="group2.input2" propid="value" datasetid="ds_main_formdata_item" columnid="indxrefseq"/>
  477. <BindItem id="item3" compid="group1.ipt_appdd" propid="value" datasetid="ds_main_formdata_cpinfo" columnid="appdd"/>
  478. <BindItem id="item4" compid="group1.input7" propid="value" datasetid="ds_main_formdata_cpinfo" columnid="purpose"/>
  479. <BindItem id="item5" compid="group1.input6" propid="value" datasetid="ds_main_formdata_cpinfo" columnid="cpgno"/>
  480. <BindItem id="item6" compid="group1.input5" propid="value" datasetid="ds_main_formdata_cpinfo" columnid="cpghistseq"/>
  481. </Bind>
  482. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  483. * System Name :
  484. * Job Name :
  485. * Creator :
  486. * Make Date : 2015-01-12
  487. * Description :
  488. *---------------------------------------------------------------------------------------
  489. * Modify Date Modifier Modify Description
  490. *---------------------------------------------------------------------------------------
  491. * 2015-01-12 Live Converter TF->XP
  492. *
  493. *---------------------------------------------------------------------------------------
  494. ****************************************************************************************/
  495. include "com_commonxp::comm_main.xjs";
  496. var folderImg = "../../../com/commonweb/images/icon_folder_close.gif";
  497. var fileImg = "../../../com/commonweb/images/icon_list.gif";
  498. var iFocusIndx;
  499. var sIndxNo = "";
  500. var tIndxNo = "";
  501. var g_prevmouserow = -1;
  502. var arErrorCode = new HashArray();
  503. var oOpener;
  504. function SPMMP01500_oninit(obj:Form, e:InitEventInfo)
  505. {
  506. frmf_initForm(obj);
  507. oOpener = this.getOwnerFrame().form;
  508. }
  509. function SPMMP01500_onload(obj:Form, e:LoadEventInfo)
  510. {
  511. }
  512. function treeview1_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  513. {
  514. var i = ds_main_indxlist.rowposition;
  515. var row = treeview1.getTreeRow(i);
  516. if (row > -1) {
  517. if(obj.getTreeStatus(row) == 0)
  518. obj.setTreeStatus(row, true);
  519. else if(obj.getTreeStatus(row) == 1)
  520. obj.setTreeStatus(row, false);
  521. }
  522. // opener 의 uid 로 비교..
  523. if(!utlf_isNull(ds_temp.getColumn(0, "openeruid"))){
  524. if( !utlf_isNull(ds_main_indxlist.getColumn(i, "cpgno")) && ds_main_indxlist.getColumn(i, "cpgno") != "0"){
  525. oOpener.ds_search_cond.setColumn(0, "getflag", "C"); //CP직접 선택
  526. oOpener.ds_search_cond.setColumn(0, "no", ds_main_indxlist.getColumn(i, "cpgno"));
  527. oOpener.ds_search_cond.setColumn(0, "seq", ds_main_indxlist.getColumn(i, "cpghistseq"));
  528. }else{
  529. oOpener.ds_search_cond.setColumn(0, "getflag", "F"); //진료과 폴더 선택
  530. oOpener.ds_search_cond.setColumn(0, "no", ds_main_indxlist.getColumn(i, "indxno"));
  531. oOpener.ds_search_cond.setColumn(0, "seq", ds_main_indxlist.getColumn(i, "indxseq"));
  532. }
  533. // indxno 혹은 supindxno가 1 이면, tmpyn = 'Y'로 셋팅하여 reqdata에 포함
  534. if( ds_main_indxlist.getColumn(i, "indxno") == "1" || ds_main_indxlist.getColumn(i, "supfolderno") == "1"){
  535. oOpener.ds_search_cond.setColumn(0, "tmpyn", "Y");
  536. }else{
  537. oOpener.ds_search_cond.setColumn(0, "tmpyn", "N");
  538. }
  539. // indxno 혹은 supindxno가 2 이면, delyn = 'Y'로 셋팅하여 reqdata에 포함
  540. if( ds_main_indxlist.getColumn(i, "indxno") == "2" || ds_main_indxlist.getColumn(i, "supfolderno") == "2"){
  541. oOpener.ds_search_cond.setColumn(0, "delyn", "Y");
  542. }else{
  543. oOpener.ds_search_cond.setColumn(0, "delyn", "N");
  544. }
  545. //opener.model.setValue("/root/main/search_cond/cpgnm", model.getValue(itemRef + "[" + i + "]/indxnm"));
  546. ds_temp_reqdata.setColumn(0, "cpgflagcd", ds_main_indxlist.getColumn(i, "cpgflagcd"));
  547. oOpener.fGetCPGInfo();
  548. oOpener.ds_search_cond.setColumn(0, "delyn", "N");
  549. } else {
  550. return;
  551. }
  552. }
  553. function treeview1_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  554. {
  555. if(e.row < 0 || e.col < 0) return;
  556. obj.setFocus();
  557. grdf_setSelectedCell(obj, e);
  558. obj.oncellclick.fireEvent(obj, new GridClickEventInfo());
  559. iFocusIndx = e.row;
  560. // 20200311 김현석, 권한이 없는 사용자는 팝업 메뉴 안 뜨도록 하기
  561. //if(oOpener.frmf_checkAuth("X")) {
  562. if(oOpener.frmf_checkAuth("X") && btn_newver.visible ) {
  563. if( !utlf_isNull(ds_main_indxlist.getColumn(e.row, "cpgno")) && ds_main_indxlist.getColumn(e.row, "cpgno") != "0"){
  564. ds_main_formdata_item.clearData();
  565. ds_main_formdata_item.addRow();
  566. if(ds_main_indxlist.getColumn(e.row, "supfolderno") == "1") { // 미등록 색인은 등록변경만 가능하도록! tmpindxmenu
  567. pmn_menu_tmpindx.trackPopup(e.screenX,e.screenY);
  568. }else if(ds_main_indxlist.getColumn(e.row, "supfolderno") == "2") { // 미등록 색인은 등록변경만 가능하도록! tmpindxmenu
  569. pmn_menu_endindx.trackPopup(e.screenX,e.screenY);
  570. }else{
  571. pmn_menu_indx.trackPopup(e.screenX,e.screenY);
  572. }
  573. } else {
  574. var selIndxNo = ds_main_indxlist.getColumn(e.row, "indxno");
  575. if( selIndxNo == "1" || selIndxNo == "2" ) {
  576. return;
  577. }
  578. if( ds_main_indxlist.getColumn(e.row, "supindxno") == "0" ) {
  579. pmn_menu_sup.trackPopup(e.screenX,e.screenY);
  580. } else {
  581. pmn_menu_sub.trackPopup(e.screenX,e.screenY);
  582. }
  583. }
  584. var itemNodeDepth = ds_main_indxlist.getColumn(e.row, "depth");
  585. ds_main_formdata_item.clearData();
  586. ds_main_formdata_item.addRow();
  587. ds_main_formdata_item.setColumn(0, "depth", parseInt(itemNodeDepth) + 1);
  588. }
  589. }
  590. function pmn_menu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  591. {
  592. eval(e.id + "()");
  593. }
  594. function group2_btn_copyfolder_onclick(obj:Button, e:ClickEventInfo)
  595. {
  596. //확인버튼3 : 폴더 복사/붙여넣기 시, copy 폴더명 입력 후 저장
  597. if( utlf_isNull(sIndxNo) ){
  598. sIndxNo = iFocusIndx;
  599. }
  600. if( sysf_messageBox("선택한 폴더를 붙여넣기", "Q004") != "6" ){
  601. group2.visible = false;
  602. return false;
  603. }
  604. if( ds_temp_copysset_copyfolderinfo_item.rowcount == 0 ){
  605. group2.visible = false;
  606. sysf_messageBox("복사한 폴더가", "E001");
  607. return;
  608. }
  609. if( utlf_isNull(ds_main_formdata_item.getColumn(0, "indxnm")) ){
  610. sysf_messageBox("새로운 폴더명을", "C001");
  611. return;
  612. }
  613. // /root/main/indxlist/itemlist/item <- /root/temp/copysset/copyfolderinfo/item
  614. var selIndxno = ds_temp_copysset_copyfolderinfo_item.getColumn(0, "indxno");
  615. var selSupindxno = ds_temp_copysset_copyfolderinfo_item.getColumn(0, "supindxno");
  616. var trgindxno = ds_main_indxlist.getColumn(sIndxNo, "indxno");
  617. // model.removeNodeset("/root/send");
  618. // model.makeNode("/root/send/masterinfo");
  619. // model.makeNode("/root/send/reqdata");
  620. // model.makeNode("/root/send/itemlist");
  621. //색인 정보 구성
  622. ds_temp_savedfolder.clearData();
  623. ds_send_reqdata_srcindx.setColumn(0, "srcindxno" , selIndxno);
  624. ds_send_reqdata_srcindx.setColumn(0, "srcsupindxno", selSupindxno);
  625. ds_send_reqdata_srcindx.setColumn(0, "trgindxno" , trgindxno);
  626. ds_send_reqdata_srcindx.setColumn(0, "trgsupindxno", ds_main_indxlist.getColumn(sIndxNo, "supindxno"));
  627. ds_send_reqdata_srcindx.setColumn(0, "trgindxnm" , ds_main_formdata_item.getColumn(0, "indxnm")); //입력한폴더명
  628. var trgLastChildItemIndex = getLastChildItemIndex(sIndxNo, treeview1); // 드롭 아이템이 속한 아이템셋의 마지막 인덱스
  629. ds_send_reqdata_srcindx.setColumn(0, "lastindxrefseq" , ds_main_indxlist.getColumn(trgLastChildItemIndex, "indxrefseq")); //마지막 색인순번
  630. var oParam = {};
  631. oParam.id = "TXMMP01502";
  632. oParam.service = "prcpbaseapp.CpMngt";
  633. oParam.method = "reqExeSaveAsFolder";
  634. oParam.inds = "req=ds_send_reqdata_srcindx";
  635. oParam.async = false;
  636. oParam.callback = "cf_TXMMP01502";
  637. tranf_submit(oParam);
  638. if(arErrorCode.pop("TXMMP01502") > -1) {
  639. group2.visible = false;
  640. var flag = oOpener.ds_search_cond.getColumn(0, "cpgflagcd");
  641. fGetIndxList(flag);
  642. //trgindxno와 동일한 색인번호를 갖는 indx를 펼친다
  643. var cnt = fSrchItemIndxNo( trgindxno );
  644. grdf_expandTree(treeview1, cnt, true);
  645. //복사 원본폴더 정보 노드 리셋
  646. ds_temp_copysset_copyfolderinfo_item.clearData();
  647. }
  648. }
  649. function cf_TXMMP01502(sSvcId, nErrorCode, sErrorMsg) {
  650. arErrorCode.push(sSvcId, nErrorCode);
  651. }
  652. function group2_btn_modify_onclick(obj:Button, e:ClickEventInfo)
  653. {
  654. //확인버튼2 : 폴더 추가.
  655. var iRow = iFocusIndx;
  656. ds_main_indxlist.setColumn(iRow, "indxnm", ds_main_formdata_item.getColumn(0, "indxnm"));
  657. group2.visible = false;
  658. fSaveFolderIndx ( parseInt(iRow), "u" );
  659. }
  660. function group2_btn_ok_onclick(obj:Button, e:ClickEventInfo)
  661. {
  662. //확인버튼1 : 색인저장, 폴더명 수정...
  663. var iRow = iFocusIndx;
  664. ds_main_formdata_item.setColumn(0, "status", "i");
  665. var srcLastChildItemIndex = getLastChildItemIndex( iFocusIndx , treeview1 );
  666. var roc = parseInt(srcLastChildItemIndex) + 1;
  667. //새로운 아이템을 추가한다
  668. var nRow = ds_main_indxlist.insertRow(parseInt(roc));
  669. ds_main_indxlist.copyRow(nRow, ds_main_formdata_item, 0);
  670. group2.visible = false;
  671. if(ds_temp_selecedkind.getColumn(0, "kind") == "F"){
  672. //만일 추가한 아이템이 폴더라면 IndxNo를 얻어오기 위해 저장을 선행한다.
  673. fSaveFolderIndx( parseInt(roc), "i" );
  674. ds_main_indxlist.rowposition = parseInt(roc);
  675. var falg = oOpener.ds_search_cond.getColumn(0, "cpgflagcd");
  676. fGetIndxList(falg);
  677. } else {
  678. //추가한 아이템이 인덱스일 경우는 상태만 바꿔놓고 나중에 일괄 저장한다.
  679. //새로 생성된 아이템을 선택하고 체크한다.
  680. ds_main_indxlist.rowposition = parseInt(roc);
  681. //드롭 후 변경 내용을 바로 저장한다
  682. var flag = oOpener.ds_search_cond.getColumn(0, "cpgflagcd");
  683. fSaveCpgIndxList();
  684. fGetIndxList(flag);
  685. }
  686. }
  687. function group2_btn_cancle_onclick(obj:Button, e:ClickEventInfo)
  688. {
  689. group2.visible = false;
  690. }
  691. function treeview1_ondrag(obj:Grid, e:GridDragEventInfo)
  692. {
  693. if(e.row < 0 || e.col < 0) return false;
  694. if(!oOpener.frmf_checkAuth("X")) return false;
  695. iFocusIndx = e.row;
  696. return true;
  697. }
  698. function treeview1_ondragleave(obj:Grid, e:DragEventInfo)
  699. {
  700. g_prevmouserow = -1;
  701. }
  702. function treeview1_ondragmove(obj:Grid, e:GridDragEventInfo)
  703. {
  704. if(e.row != g_prevmouserow)
  705. g_prevmouserow = e.row;
  706. }
  707. function treeview1_ondrop(obj:Grid, e:GridDragEventInfo)
  708. {
  709. if(g_prevmouserow == -1) return false;
  710. if(oOpener.frmf_checkAuth("X")) {
  711. if( !fOnDropEvnt(e.row) ){
  712. }
  713. g_prevmouserow = -1;
  714. }
  715. }
  716. //초기화 및 색인을 조회한다.
  717. function fInitialize() {
  718. // model.removeNodeset("/root/temp/setdata/item");
  719. // model.removeNodeset("/root/temp/poollist/pool/item");
  720. // treeview1.refresh();
  721. //
  722. // model.removeNodeset("/root/temp/reqdata");
  723. // copyNodeListType("/root/temp", "/root/temp/reqdata", "after", model, opener.model);
  724. ds_temp_reqdata.clearData();
  725. ds_temp_reqdata.addRow();
  726. selectIndxCd = ds_main_indxlist.rowposition;
  727. flagcd = ds_temp_reqdata.getColumn(0, "cpgflagcd");
  728. // if( instance1.selectSingleNode("/root/temp/reqdata/reqdata") != null ){
  729. //
  730. // if( !isNull("/root/temp/reqdata/reqdata/cpgno") ){
  731. // model.resetInstanceNode("/root/send/reqdata");
  732. // model.copyNode("/root/send/reqdata", "/root/temp/reqdata/reqdata");
  733. // ds_main_indxlist.rowposition = selectIndxCd;
  734. //
  735. // submit("TXMMP01501", false);
  736. // }
  737. // }
  738. fGetIndxList("A");
  739. ds_main_indxlist.rowposition = selectIndxCd;
  740. }
  741. //CP/CPG 색인을 조회한다.
  742. function fGetIndxList(flag) {
  743. //opener 에서 받아온 cpgflagcd 를 input 으로 한다.
  744. //model.resetInstanceNode("/root/send/reqdata");
  745. ds_main_indxlist.clearData();
  746. ds_send_reqdata.copyData(ds_temp_reqdata);
  747. dsf_makeValue(ds_send_reqdata, "authflag", "string", oOpener.ds_search_cond.getColumn(0, "authflag"));
  748. if( oOpener.ds_search_cond.getColumn(0, "authflag") != "M" && !utlf_isNull(oOpener.ds_search_cond.getColumn(0, "cpgorddeptcd")) ){
  749. dsf_makeValue(ds_send_reqdata, "cpgorddeptcd", "string", oOpener.ds_search_cond.getColumn(0, "cpgorddeptcd"));
  750. dsf_makeValue(ds_send_reqdata, "cpgorddeptnm", "string", oOpener.Div00.cmb_cpgorddeptcd.text);
  751. }else{
  752. dsf_makeValue(ds_send_reqdata, "cpgorddeptcd", "string", "");
  753. }
  754. /*if(flag == "F"){
  755. model.makeValue("/root/send/reqdata/cpgflagcd", opener.model.getValue("/root/main/search_cond/cpgflagcd"));
  756. }else if(flag == "A" || flag == "ALL" || isNull(flag) ){
  757. model.makeValue("/root/send/reqdata/cpgflagcd", "ALL");
  758. //model.makeValue("/root/send/reqdata/authdept", opener.window.javascript.dutPlceCd );
  759. }*/
  760. dsf_makeValue(ds_send_reqdata, "cpgflagcd", "string", oOpener.ds_search_cond.getColumn(0, "cpgflagcd")); //flag에 상관없이 조건에 맞는 리스트를 조회하도록 2010.04.07
  761. dsf_makeValue(ds_send_reqdata, "mode", "string", "A"); //all index list
  762. //[요청번호: 11937] 권한 설정을 병원별로 달리 설정하여 부여하도록 변경함에 따라 미등록CP도 함께 조회 (2010.03.26 JJE)
  763. if(oOpener.frmf_checkAuth("X") ){
  764. //model.makeValue("/root/send/reqdata/tmpyn", opener.model.getValue("/root/main/search_cond/tmpyn") );
  765. //model.makeValue("/root/send/reqdata/delyn", opener.model.getValue("/root/main/search_cond/delyn") );
  766. dsf_makeValue(ds_send_reqdata, "tmpyn", "string", "Y");
  767. dsf_makeValue(ds_send_reqdata, "delyn", "string", "Y");
  768. }
  769. var oParam = {};
  770. oParam.id = "TRMMP01501";
  771. oParam.service = "prcpbaseapp.CpMngt";
  772. oParam.method = "reqGetCPGIndxList";
  773. oParam.inds = "req=ds_send_reqdata";
  774. oParam.outds = "ds_main_indexinfo=item";
  775. oParam.async = false;
  776. oParam.callback = "cf_TRMMP01501";
  777. tranf_submit(oParam);
  778. ds_temp.setColumn(0, "indxdelyn", "N");
  779. }
  780. function cf_TRMMP01501(sSvcId, nErrorCode, sErrorMsg) {
  781. if(nErrorCode < 0) return;
  782. // 조회 결과를 /root/main/indxlist/itemlist 로 복사
  783. // model.copyNode("/root/main/indxlist/itemlist", "/root/main/srcindxinfo/itemlist");
  784. // treeview1.rebuild();
  785. ds_main_indexinfo.addColumn("status", "string");
  786. ds_main_indxlist.copyData(ds_main_indexinfo);
  787. fImageMapping();
  788. ds_temp_reqdata.setColumn(0, "cpgflagcd", flagcd);
  789. if( oOpener.ds_search_cond.getColumn(0, "authflag") == "M" ){
  790. //2008.12.13 색인 삭제 후 삭제된 색인의 진료과 폴더로 focus 이동
  791. if( ds_temp.getColumn(0, "indxdelyn") == "Y" ){
  792. var selSupIndxNo = ds_main_indexinfo.getColumn(0, "supfolderno");
  793. }else{
  794. var selSupIndxNo = "1";
  795. }
  796. //관리자 모드일 경우, 모든 폴더를 닫고, 미등록 폴더만 펼친다
  797. for( var i = ds_main_indxlist.rowcount - 1; i >= 0; i--){
  798. if( ds_main_indxlist.getColumn(i, "indxno") == selSupIndxNo ){
  799. grdf_expandTree(treeview1, i, true);
  800. return;
  801. }
  802. }
  803. }else{
  804. //조회 모드일 경우, 해당과 폴더만 펼친다
  805. grdf_expandDepth(treeview1, 1);
  806. //사용자(진료의)가 마스터 권한을 갖을 때, 미등록, 종료 폴더는 닫힌 상태에서 초기화 (2010.03.30 JJE)
  807. if( oOpener.frmf_checkAuth("X") == true ){
  808. var tmp_IndxNo = fSrchItemIndxNo("1");
  809. var del_IndxNo = fSrchItemIndxNo("2");
  810. if( tmp_IndxNo > -1 ) {
  811. var row = treeview1.getTreeRow(tmp_IndxNo)
  812. if(row > -1 && !treeview1.isTreeLeafRow(row, false))
  813. treeview1.setTreeStatus(row, false);
  814. }
  815. if( del_IndxNo > -1 ) {
  816. var row = treeview1.getTreeRow(del_IndxNo)
  817. if(row > -1 && !treeview1.isTreeLeafRow(row, false))
  818. treeview1.setTreeStatus(row, false);
  819. }
  820. }
  821. }
  822. }
  823. //아이템에 이미지를 매핑시킨다.
  824. function fImageMapping() {
  825. var indxCnt = ds_main_indxlist.rowcount;
  826. for(var i = 0; i < indxCnt; i++){
  827. //depth가 2이상인 폴더 존재시, 상위색인번호가 일치하지 않기 때문에, 최상위폴더 번호로 통일
  828. if( ds_main_indxlist.getColumn(i, "supindxno") == "0" && ds_main_indxlist.getColumn(i, "cpgno") == "0" ){
  829. dsf_makeValue(ds_main_indxlist, "supfolderno", "string", ds_main_indxlist.getColumn(i, "indxno"), i);
  830. }else{
  831. //var supno = model.getValue(itemRef + "[" + i + "]/supindxno");
  832. dsf_makeValue(ds_main_indxlist, "supfolderno", "string", ds_main_indxlist.getColumn((i - 1), "supfolderno"), i);
  833. }
  834. }
  835. }
  836. //폴더를 삭제한다.
  837. function fFolderDel() {
  838. var focusIndex = iFocusIndx;
  839. var iRow = parseInt(focusIndex); //선택한 인스턴스의 인덱스
  840. //바로 데이터를 삭제하는 서브밋을 실행한다.
  841. if( fSaveFolderIndx( iRow , "d" ) == false ){
  842. return;
  843. }
  844. //직접 노드를 삭제
  845. ds_main_indxlist.deleteRow(iRow);
  846. }
  847. /**
  848. * @group :
  849. * @ver : 2007.07
  850. * @by : 전지은
  851. * @---------------------------------------------------
  852. * @type : function
  853. * @access : public
  854. * @desc : item의 값(indxno)으로 아이템의 tree index 위치를 찾아낸다
  855. * @param : itemVal : 찾으려는 값
  856. * @return : cnt : 위치
  857. * @---------------------------------------------------
  858. */
  859. function fSrchItemIndxNo( itemVal ){
  860. if( utlf_isNull(itemVal) ) return -1;
  861. return ds_main_indxlist.findRow("indxno", itemVal);
  862. }
  863. /**
  864. * @group :
  865. * @ver : 2008.06
  866. * @by : 전지은
  867. * @---------------------------------------------------
  868. * @type : function
  869. * @access : public
  870. * @desc : 폴더를 복사한다
  871. * @param :
  872. * @return :
  873. * @---------------------------------------------------
  874. */
  875. function fCopyFolder(){
  876. ds_temp_copysset_copyfolderinfo_item.clearData();
  877. ds_temp_copysset_copyfolderinfo_item.addRow();
  878. ds_temp_copysset_copyfolderinfo_item.copyRow(0, ds_main_indxlist, iFocusIndx);
  879. }
  880. /**
  881. * @group :
  882. * @ver : 2008.06
  883. * @by : 전지은
  884. * @---------------------------------------------------
  885. * @type : function
  886. * @access : public
  887. * @desc : 폴더를 붙여넣는다
  888. * @param :
  889. * @return :
  890. * @---------------------------------------------------
  891. */
  892. function fPasteFolder(){
  893. if( ds_temp_copysset_copyfolderinfo_item.rowcount == 0){
  894. sysf_messageBox("복사하려는 원본 폴더를", "C002");
  895. return;
  896. }
  897. group2.cap_menu.text = "폴더명";
  898. group2.btn_copyfolder.visible = true;
  899. group2.btn_modify.visible = false;
  900. group2.btn_ok.visible = false;
  901. fShowWndIptBox();
  902. /*
  903. if( isNull(sIndxNo) ){
  904. sIndxNo = iFocusIndx; //sIndxNo = treeview1.focusIndex;
  905. }
  906. var selIndxno = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/indxno");
  907. var selSupindxno = model.getValue(itemRef + "[" + (sIndxNo + 1) + "]/supindxno");
  908. var srcNodeList = instance1.selectNodes(itemRef + "[supindxno='"+ selIndxno +"']");
  909. for( var i=0; i<srcNodeList.length; i++ ){
  910. var node = srcNodeList.item(i);
  911. var
  912. }
  913. */
  914. }
  915. /**
  916. * @group :
  917. * @ver : 2007.07
  918. * @by : 전지은
  919. * @---------------------------------------------------
  920. * @type : function
  921. * @access : public
  922. * @desc : CP/CPG의 변경 이력을 조회한다.
  923. * @param :
  924. * @return : true/false
  925. * @---------------------------------------------------
  926. */
  927. function fSaveCpgIndxList( getData ){
  928. var amountIndxCnt = ds_main_indxlist.rowcount;
  929. var iStatus; //트리의 i번째 인덱스의 상태값
  930. var getindxlistRowCnt = 0; //데스티네이션 인덱스의 컬럼 포인트
  931. var saveIndxlist = "";
  932. var saveIndxHeader;
  933. ds_send_saveinfo.clearData();
  934. ds_send_indxlist.clearData();
  935. ds_send_indxlist_temp.clearData();
  936. ds_send_masterinfo.clearData();
  937. ds_send_masterinfo.addRow();
  938. //색인 노드셋을 리퀘스트데이터에 함께 보낸다.
  939. if( utlf_isNull(getData) ){
  940. ds_main_indexinfo.clearData();
  941. //ivw_indxmngt 의 색인트리에서 변경 데이터만 copy 해온다.
  942. for(var i = 0; i < amountIndxCnt; i++){
  943. iStatus = ds_main_indxlist.getColumn(i, "status");
  944. if(iStatus == "i" || iStatus == "u" || iStatus == "d") {
  945. getindxlistRowCnt = ds_main_indexinfo.addRow();
  946. ds_main_indexinfo.copyRow(getindxlistRowCnt, ds_main_indxlist, i);
  947. ds_temp_reqdata.setColumn(0, "cpgno", ds_main_formdata_cpinfo.getColumn(0, "cpgno"));
  948. ds_temp_reqdata.setColumn(0, "cpghistseq", ds_main_formdata_cpinfo.getColumn(0, "cpghistseq"));
  949. var nRow = ds_send_indxlist_temp.addRow();
  950. ds_send_indxlist_temp.copyRow(nRow, ds_main_indexinfo, getindxlistRowCnt);
  951. var nodelist = dsf_getDsCSV(ds_send_indxlist_temp, nRow);
  952. saveIndxlist = saveIndxlist + "▩" + nodelist.split("▩")[1];
  953. saveIndxHeader = nodelist.split("▩")[0];
  954. }
  955. }
  956. amountRows = ds_main_indexinfo.rowcount;
  957. }else{
  958. var src_supindxno = ds_main_indxlist.getColumn(sIndxNo, "supindxno");
  959. var trg_supindxno = ds_main_indxlist.getColumn(tIndxNo, "supindxno");
  960. //임시 폴더에 보이는 cp를 동일부서가 아닌 타부서로 이동할 경우, 색인을 save as(release 를 증가)
  961. ds_send_masterinfo.setColumn(0, "appdd", ds_main_formdata_cpinfo.getColumn(0, "appdd"));
  962. ds_send_masterinfo.setColumn(0, "cpgno", ds_main_formdata_cpinfo.getColumn(0, "cpgno"));
  963. ds_send_masterinfo.setColumn(0, "cpghistseq", ds_main_formdata_cpinfo.getColumn(0, "cpghistseq"));
  964. ds_send_masterinfo.setColumn(0, "nm", ""); //필요없는 값...
  965. saveIndxlist = getData;
  966. amountRows = 1;
  967. }
  968. ds_send_saveinfo.addRow();
  969. ds_send_saveinfo.setColumn(0, "purpose", ds_main_formdata_cpinfo.getColumn(0, "purpose")); //2008.06.19 추가
  970. var header = "m▦indxno▦indxnm▦supindxno▦indxrefseq▦depth▦indxseq▦cpgno▦cpghistseq▦image▦cpgflagcd";
  971. if(amountRows > 0 ) {
  972. dsf_setCSVToDs("ds_send_indxlist", header + saveIndxlist + "▩");
  973. ds_send_indxlist_temp.clearData();
  974. ds_send_masterinfo.setColumn(0, "status", "");
  975. if( !(utlf_isNull(getData)) ){
  976. ds_send_masterinfo.setColumn(0, "status", "u");
  977. }
  978. //2줄 주석
  979. //model.makeValue("/root/send/masterinfo/cpgno", model.getValue("/root/temp/reqdata/cpgno"));
  980. //model.makeValue("/root/send/masterinfo/cpghistseq", model.getValue("/root/temp/reqdata/cpghistseq"));
  981. dsf_setDefaultVal(ds_send_saveinfo, "purpose:1");
  982. dsf_setDefaultVal(ds_send_masterinfo, "cpgtypecd:D,valusgeyn:N");
  983. var oParam = {};
  984. oParam.id = "TXMQP00601";
  985. oParam.service = "prcpbaseapp.CpMngt";
  986. oParam.method = "reqExeCPGInfo";
  987. oParam.inds = "saveinfo=ds_send_saveinfo masterinfo=ds_send_masterinfo delmasterinfo=ds_send_delmasterinfo reqrlist=ds_send_reqrlist termlist=ds_send_termlist exclusionlist=ds_send_exclusionlist droplist=ds_send_droplist indxlist=ds_send_indxlist steplist=ds_send_steplist decisionlist=ds_send_decisionlist master=ds_send_master checkcpgnm=ds_send_checkcpgnm deptlist=ds_send_deptlist scrninfo=ds_send_scrninfo mntrinfo=ds_send_mntrinfo inqrinfo=ds_send_inqrinfo limtinfo=ds_send_limtinfo";
  988. oParam.async = false;
  989. oParam.callback = "cf_TXMQP00601";
  990. tranf_submit(oParam);
  991. if(arErrorCode.pop("TXMQP00601") > -1) {
  992. return true;
  993. } else {
  994. return false;
  995. }
  996. }
  997. }
  998. function cf_TXMQP00601(sSvcId, nErrorCode, sErrorMsg) {
  999. arErrorCode.push(sSvcId, nErrorCode);
  1000. }
  1001. //폴더를 추가하는 메뉴그룹을 연다. ( '확인' 이벤트를 실행하면 DB에 저장한다.)
  1002. function fFolderAdd() {
  1003. //추가되는 색인의 조회순서는 Default로 선택한 아이템의 가장 마지막 차일드 아이템 조회순서(indxrefseq) + 1 이다.
  1004. var prtIndx = iFocusIndx;
  1005. var srcLastChildItemIndex = getLastChildItemIndex( prtIndx , treeview1 );
  1006. var lastNodeSeq = ds_main_indxlist.getColumn(srcLastChildItemIndex, "indxrefseq");
  1007. ds_main_formdata_item.setColumn(0, "indxrefseq", (parseInt(lastNodeSeq) + 1) ); //마지막 노드의 조회순서+1
  1008. ds_main_formdata_item.setColumn(0, "supindxno", ds_main_indxlist.getColumn(prtIndx, "indxno"));
  1009. ds_main_formdata_item.setColumn(0, "indxnm", "");
  1010. ds_main_formdata_item.setColumn(0, "image", folderImg);
  1011. iFocusIndx = prtIndx; //전역변수 iFocusIndx에 포커스인덱스를 넣는다.
  1012. group2.cap_menu.text = "폴더명";
  1013. group2.btn_ok.visible = true;
  1014. group2.btn_modify.visible = false;
  1015. group2.btn_copyfolder.visible = false;
  1016. group2.input1.enable = true;
  1017. fShowWndIptBox();
  1018. ds_temp_selecedkind.setColumn(0, "kind", "F");
  1019. }
  1020. //폴더를 수정하는 동시에, DB에 저장한다.
  1021. function fFolderSet(){
  1022. if( ds_main_indxlist.getColumn(iFocusIndx, "supindxno") == "0" ){
  1023. sysf_messageBox("최상위 폴더명은 수정", "E001");
  1024. return;
  1025. }
  1026. ds_main_formdata_item.setColumn(0, "indxnm", ds_main_indxlist.getColumn(iFocusIndx, "indxnm"));
  1027. group2.cap_menu.text = "폴더명";
  1028. group2.btn_ok.visible = false;
  1029. group2.btn_modify.visible = true;
  1030. group2.btn_copyfolder.visible = false;
  1031. group2.input1.enable = true;
  1032. fShowWndIptBox();
  1033. ds_temp_selecedkind.setColumn(0, "kind", "F");
  1034. }
  1035. //물어보는 팝업을 재구성
  1036. function fRefreshMsgBox( purpose ){
  1037. ds_main_formdata_cpinfo.setColumn(0, "purpose", purpose);
  1038. switch ( purpose ){
  1039. case "2" :
  1040. group1.cap_question.text = "선택하신 CP의 등록을 취소하시겠습니까?"; //등록->미등록
  1041. group1.cap_appdd.visible = false;
  1042. group1.ipt_appdd.visible = false;
  1043. break;
  1044. case "3" :
  1045. group1.cap_question.text = "선택하신 CP의 적용일이 존재하지 않습니다.\n적용일을 등록하시겠습니까?"; //미등록->등록
  1046. group1.cap_appdd.visible = true;
  1047. group1.ipt_appdd.visible = true;
  1048. break;
  1049. case "4" :
  1050. group1.cap_question.text = "선택하신 CP의 종료를 취소하시겠습니까?"; //종료->정상
  1051. group1.cap_appdd.visible = false;
  1052. group1.ipt_appdd.visible = false;
  1053. break;
  1054. case "5" :
  1055. group1.cap_question.text = "선택하신 CP를 종료하시겠습니까?"; //정상->종료
  1056. group1.cap_appdd.visible = false;
  1057. group1.ipt_appdd.visible = false;
  1058. break;
  1059. }
  1060. group1.visible = true;
  1061. }
  1062. //등록 -> 미등록 변경
  1063. function fIndxSet(){
  1064. /*
  1065. //COPY SET을 뒤져서 해당 노드가 있다면 COPY SET 인스턴스 데이터 바로 수정, 없다면 Y일때는 'U'라는 플래그로 등록, 'N'이라면 트리에서만 수정
  1066. //상태가 'I / U' 이면 COPY SET의 해당 인스턴스 데이터를 수정, 상태가 ' Y'이면 'U'라는 status로 COPY 셋에 등록
  1067. if(parseInt(event.clientY) > 590 ){
  1068. group2.attribute("top") = "590px";
  1069. } else{
  1070. group2.attribute("top") = event.clientY;
  1071. }
  1072. group2.attribute("left") = 100;
  1073. group2.attribute("height") = 55;
  1074. model.setValue("/root/main/formdata/item/indxnm", model.getValue(itemRef + "[" + (iFocusIndx + 1) + "]/indxnm"));
  1075. input1.refresh();
  1076. cap_menu.attribute("text") = "색인명";
  1077. btn_ok.attribute("visibility") = "hidden";
  1078. btn_modify.attribute("visibility") = "visible";
  1079. input1.disabled = false;
  1080. model.setFocus("input1");
  1081. model.setValue("/root/temp/selecedkind/kind", "i");
  1082. */
  1083. ds_temp.setColumn(0, "skiptopcheck", "Y");
  1084. fRefreshMsgBox("2");
  1085. }
  1086. //미등록 -> 등록 변경
  1087. function fTmpIndxSet(){
  1088. ds_temp.setColumn(0, "skiptopcheck", "Y");
  1089. fRefreshMsgBox("3");
  1090. }
  1091. //종료 -> 종료취소
  1092. function fFromEndIndxSet(){
  1093. ds_temp.setColumn(0, "skiptopcheck", "Y");
  1094. fRefreshMsgBox("4");
  1095. }
  1096. //일반 -> 종료
  1097. function fToEndIndxSet(){
  1098. ds_temp.setColumn(0, "skiptopcheck", "Y");
  1099. fRefreshMsgBox("5");
  1100. }
  1101. //현재 아이템 인덱스의 부모 아이템 인덱스를 반환 한다
  1102. function getParentItemIndex(itemIndex, obj:Grid) {
  1103. //
  1104. // var curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/depth");
  1105. // var parentDepthValue = curDepthValue - 1;
  1106. //
  1107. // do {
  1108. // itemIndex--;
  1109. // curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/depth");
  1110. // } while(curDepthValue != parentDepthValue)
  1111. //
  1112. return obj.getTreeParentRow(itemIndex, true);
  1113. }
  1114. //현재 아이템 인덱스의 자식 아이템중 마지막 아이템 인덱스를 반환 한다
  1115. function getLastChildItemIndex(itemIndex, obj:Grid) {
  1116. if(!obj.isTreeLeafRow(itemIndex)) {
  1117. var oDataset = eval(obj.binddataset);
  1118. var curDepthValue = oDataset.getColumn(itemIndex + 1, "depth");
  1119. var childDepthValue = oDataset.getColumn(itemIndex + 2, "depth");
  1120. itemIndex++;
  1121. while(curDepthValue <= childDepthValue) {
  1122. childDepthValue = oDataset.getColumn(itemIndex + 2, "depth");
  1123. itemIndex++;
  1124. }
  1125. }
  1126. return itemIndex;
  1127. }
  1128. //폴더 색인을 추가/수정/삭제한 경우 바로 저장한다
  1129. function fSaveFolderIndx( indx, status ){
  1130. var curIndxNo = ds_main_indxlist.getColumn(indx, "indxno");
  1131. var iSupIndxNo = ds_main_indxlist.getColumn(indx, "supindxno");
  1132. if( status == "d" ){
  1133. //var curIndxNo = indx+1;
  1134. //하위 CP를 모두 종료CP로 업데이트 하기로 함. 삭제 확인 msg 뜨움. (2008.10.07)
  1135. // ===========> 아직 CP 및 CP색인 update 처리 미개발 (10/10 개발 예정)
  1136. if( ds_main_indxlist.getCaseCount("supindxno == '" + curIndxNo + "'") > 0 ){
  1137. if( sysf_messageBox ("폴더를 삭제하면 하위 항목이 모두 삭제됩니다.\n\n정말로 폴더를", "Q001") == 7 ){
  1138. group1.visible = false;
  1139. tIndxNo = iFocusIndx;
  1140. return false;
  1141. }
  1142. if( ds_main_indxlist.getCaseCount("supindxno == '" + curIndxNo + "' && cpgno == '0'") > 0 ){
  1143. sysf_messageBox ("하위 폴더가 존재합니다.\n\n하위 폴더를 먼저 삭제", "I008");
  1144. group1.visible = false;
  1145. tIndxNo = iFocusIndx;
  1146. return false;
  1147. }
  1148. }
  1149. }
  1150. ds_temp_savedfolder.clearData(); //조회해온 데이터 받아올 인스턴스
  1151. ds_TXMMP01501.clearData();
  1152. ds_TXMMP01501.addRow();
  1153. ds_TXMMP01501.copyRow(0, ds_main_indxlist, parseInt(indx));
  1154. dsf_makeValue(ds_TXMMP01501, "status", "string", status );
  1155. var oParam = {};
  1156. oParam.id = "TXMMP01501";
  1157. oParam.service = "prcpbaseapp.CpMngt";
  1158. oParam.method = "reqExeIndxInfo";
  1159. oParam.inds = "req=ds_TXMMP01501";
  1160. oParam.outds = "ds_temp_savedfolder=item";
  1161. oParam.async = false;
  1162. oParam.callback = "cf_TXMMP01501";
  1163. tranf_submit(oParam);
  1164. if(arErrorCode.pop("TXMMP01501") > -1) {
  1165. if( status == "d" ){
  1166. //삭제시에는 tree 전체 재조회
  1167. fGetIndxList("A");
  1168. //focus 진료과 폴더로 지정
  1169. var findRow = ds_main_indxlist.findRow("indxno", iSupIndxNo);
  1170. if(findRow > -1) {
  1171. grdf_expandTree(treeview1, findRow, true);
  1172. return false;
  1173. }
  1174. }else{
  1175. if( !utlf_isNull(ds_temp_savedfolder.getColumn(0, "indxno")) ){
  1176. ds_main_indxlist.setColumn(parseInt(indx), "indxno", ds_temp_savedfolder.getColumn(0, "indxno"));
  1177. // ds_main_indxlist.setColumn(parseInt(indx), "indxnm", ds_temp_savedfolder.getColumn(0, "indxnm")); // 비지니스 단에서 'indxno' 만 넘기고 있음
  1178. if( status == "u" || status == "i" ){
  1179. ds_main_indxlist.setColumn(parseInt(indx), "status", "");
  1180. }
  1181. ds_main_indxlist.applyChange();
  1182. }
  1183. }
  1184. }
  1185. }
  1186. function cf_TXMMP01501(sSvcId, nErrorCode, sErrorMsg) {
  1187. arErrorCode.push(sSvcId, nErrorCode);
  1188. }
  1189. //Drop 이벤트 시 처리
  1190. function fOnDropEvnt(trgIndex) {
  1191. if( oOpener.ds_search_cond.getColumn(0, "authflag") == "S" ){
  1192. return false;
  1193. }
  1194. // 드래그 시점의 아이템
  1195. var srcIndex = ds_main_indxlist.rowposition;
  1196. var org_srcIndex = srcIndex;
  1197. var org_srcDepth = ds_main_indxlist.getColumn(srcIndex, "depth");
  1198. var org_srcIndxNo = ds_main_indxlist.getColumn(srcIndex, "indxno"); //색인 no
  1199. var org_srcSupIndxNo = ds_main_indxlist.getColumn(srcIndex, "supindxno"); //상위 indx no
  1200. var org_srcSupFolderNo = ds_main_indxlist.getColumn(srcIndex, "supfolderno"); //최상위 폴더 no
  1201. var srcValue = org_srcIndxNo;
  1202. sIndxNo = srcIndex;
  1203. if( ds_main_indxlist.getColumn(srcIndex, "cpgflagcd") == "01" )
  1204. var org_cpgFlag = "CP";
  1205. else if( ds_main_indxlist.getColumn(srcIndex, "cpgflagcd") == "02" )
  1206. var org_cpgFlag = "CPG";
  1207. else var org_cpgFlag = "폴더";
  1208. ds_main_formdata_cpinfo.setColumn(0, "cpgno", ds_main_indxlist.getColumn(srcIndex, "cpgno"));
  1209. ds_main_formdata_cpinfo.setColumn(0, "cpghistseq", ds_main_indxlist.getColumn(srcIndex, "cpghistseq"));
  1210. ds_main_formdata_cpinfo.setColumn(0, "purpose", "6"); //이동
  1211. // 드롭 시점의 아이템
  1212. var org_trgIndex = trgIndex;
  1213. tIndxNo = trgIndex;
  1214. var org_trgIndxNo = ds_main_indxlist.getColumn(trgIndex, "indxno"); //색인 no
  1215. var org_trgSupIndxNo = ds_main_indxlist.getColumn(trgIndex, "supindxno"); //상위 indx no
  1216. var org_trgSupFolderNo = ds_main_indxlist.getColumn(trgIndex, "supfolderno"); //최상위 폴더 no
  1217. if(org_srcIndex == org_trgIndex){
  1218. //더블클릭 시, 약간의 이동이 있어 드롭 이벤트를 실행했지만, 같은 index 라면, 더블클릭으로 간주한다
  1219. treeview1.oncelldblclick.fireEvent(treeview1, new GridClickEventInfo());
  1220. return false;
  1221. }
  1222. if( org_srcDepth == "1"){
  1223. sysf_messageBox("최상위 폴더는 하위로 이동할 수", "I004");
  1224. return false;
  1225. }
  1226. //purpose 처리
  1227. if( org_srcSupFolderNo == "1" ){ //미등록->등록
  1228. /*
  1229. messageBox("임시 파일은 이동할 수", "I004");
  1230. preItem = treeview1.item(trgIndex);
  1231. preItem.attribute("background-color") = "#ffffff";
  1232. return false;
  1233. */
  1234. if( org_srcSupIndxNo == org_trgIndxNo || org_srcSupIndxNo == org_trgSupFolderNo ){
  1235. //model.setValue("/root/main/formdata/cpinfo/purpose", "3");
  1236. //group1.visible = true;
  1237. fTmpIndxSet();
  1238. return false;
  1239. }else{
  1240. sysf_messageBox("미등록 파일은 다른과로 이동할 수", "I004");
  1241. return false;
  1242. }
  1243. }else if( org_trgIndxNo == "1" || org_trgSupFolderNo == "1" ){ //등록->미등록
  1244. fIndxSet();
  1245. /*
  1246. messageBox("미등록 폴더로 이동할 수", "I004");
  1247. preItem = treeview1.item(trgIndex);
  1248. preItem.attribute("background-color") = "#ffffff";
  1249. */
  1250. return false;
  1251. }else if( org_srcSupFolderNo == "2" ){ //종료->종료취소
  1252. if( org_srcSupIndxNo == org_trgIndxNo || org_srcSupIndxNo == org_trgSupFolderNo ){
  1253. fFromEndIndxSet();
  1254. return false;
  1255. }else{
  1256. sysf_messageBox("종료 파일은 다른과로 이동할 수", "I004");
  1257. return false;
  1258. }
  1259. }else if( org_trgIndxNo == "2" || org_trgSupFolderNo == "2" ){ //일반->종료
  1260. fToEndIndxSet();
  1261. return false;
  1262. }
  1263. if( org_srcSupFolderNo != org_trgSupFolderNo ){
  1264. if( sysf_messageBox("선택한 " + org_cpgFlag + "의 진료과 변경을", "Q004") != 6 ){
  1265. return false;
  1266. }
  1267. }else{
  1268. if( sysf_messageBox("선택한 " + org_cpgFlag + "의 순서 변경을", "Q004") != 6 ){
  1269. return false;
  1270. }
  1271. }
  1272. // if(utlf_isNull(ds_main_indxlist.getColumn(srcIndex, "cpgno")) || ds_main_indxlist.getColumn(srcIndex, "cpgno") == "0") {
  1273. // var flag = "";
  1274. // var nextIndx = srcIndex + 1;
  1275. // var org_nextSrcDepth = ds_main_indxlist.getColumn(nextIndx, "depth");
  1276. // var nextValue;
  1277. // var moveItemArray = new Array();
  1278. // var num = 0;
  1279. //
  1280. // while( utlf_isNull(flag) ){
  1281. // if( parseInt(org_srcDepth) < parseInt(org_nextSrcDepth) ){
  1282. // nextValue = ds_main_indxlist.getColumn(nextIndx - 1, "indxno");
  1283. // moveItemArray[num] = new Array();
  1284. // moveItemArray[num][0] = nextIndx - 1;
  1285. // moveItemArray[num][1] = nextValue;
  1286. // num = num + 1;
  1287. // nextIndx = nextIndx + 1;
  1288. // org_nextSrcDepth = ds_main_indxlist.getColumn(nextIndx, "depth");
  1289. // } else{
  1290. // flag = "end";
  1291. // }
  1292. // }
  1293. // }
  1294. var val = fMoveItem(srcIndex, srcValue, trgIndex);
  1295. var no_1, no_2;
  1296. //return;
  1297. /* 2008.06.16 DBMS변경->sql변경과 함께, fMoveItem() 변경으로 인해 사용 안함.
  1298. //이동하려는 원본이 폴더인 경우, 이동된 후, 순서를 뒤바꿔 주어야함(3,2,1 순으로 복사되므로, 1,2,3 순으로 재조정 해야함)
  1299. if(srcIndex != trgIndex){
  1300. for(var i=0; i<num-1; i++){
  1301. no_1 = 1;
  1302. no_2 = 1;
  1303. //src(child[])를 다시 찾는다.
  1304. while(moveItemArray[i][1] != model.getValue(itemRef + "[" + no_1 + "]/indxno")){
  1305. no_1++;
  1306. }
  1307. //trg를 다시 찾는다.
  1308. while(org_srcIndxNo != model.getValue(itemRef + "[" + no_2 + "]/indxno")){
  1309. no_2++;
  1310. }
  1311. srcIndex = no_1 - 1;
  1312. srcValue = treeview1.item(srcIndex).text;
  1313. trgIndex = no_2 - 1;
  1314. trgValue = treeview1.item(trgIndex).text;
  1315. fMoveItem(srcIndex, srcValue, trgIndex, trValue);
  1316. if(org_srcIndex < org_trgIndex){
  1317. no_3 = 1;
  1318. while(org_trgIndxNo != model.getValue(itemRef + "[" + no_3 + "]/indxno")){
  1319. no_3++;
  1320. }
  1321. no_3--;
  1322. fChangedRefSeq( parseInt(no_3) );
  1323. }
  1324. }
  1325. }
  1326. */
  1327. //드롭 후 변경 내용을 바로 저장한다
  1328. var flag = oOpener.ds_search_cond.getColumn(0, "cpgflagcd");
  1329. fSaveCpgIndxList();
  1330. fGetIndxList(flag);
  1331. }
  1332. //드래그&드롭 시 타겟 인덱스의 PARENTS에 속한 이에템들의 조회순서를 정렬한다.
  1333. function fChangedRefSeq( trgIndx ) {
  1334. /* //2008.06.16 트리 sroting 및 이동에 의한 로직 변경
  1335. var supFolderNo = instance1.selectSingleNode(itemRef+"[indxno = '" + trgIndx + "']/indxno").text;
  1336. var treeItemNodeSet = instance1.selectNodes(itemRef+"[supfolderno = '" + treeItemNodeSet + "']"); // itemRef+ = root/main/indxlist/itemlist/item
  1337. var srcLastChildItemIndex = getLastChildItemIndex(trgIndx, treeItemNodeSet);
  1338. var from = trgIndx + 1; //차일드 아이템 중 첫번째
  1339. var to = srcLastChildItemIndex; //차일드 아이템 중 마지막
  1340. var iStatus = "";
  1341. var newRefSeq = 0;
  1342. for(var i = 0; i< treeItemNodeSet.length; i++) {
  1343. iStatus = model.getValue(itemRef + "["+ ( i + 1 ) + "]/status");
  1344. if( iStatus == "N" || iStatus == "") {
  1345. model.setValue(itemRef + "["+ ( i + 1 ) + "]/status", "u");
  1346. }
  1347. newRefSeq = newRefSeq + 1;
  1348. model.setValue(itemRef + "["+ ( i + 1 ) + "]/indxrefseq", newRefSeq);
  1349. }
  1350. */
  1351. //아래폴더 첫번째 색인->바로위폴더 타겟으로 이동시 전체 순번 매겨지는 문제
  1352. var trgLastChildItemIndex = getLastChildItemIndex(trgIndx, treeview1); //getLastChildItemIndex 의심
  1353. var from = trgIndx;// + 1; //차일드 아이템 중 첫번째
  1354. var to = trgLastChildItemIndex; //차일드 아이템 중 마지막
  1355. //alert( "시작 노드= " + model.getValue(itemRef+"[" + (trgIndx+1) + "]/indxnm") );
  1356. //alert( "마지막 노드= " + model.getValue(itemRef+"[" + (to+1) + "]/indxnm") );
  1357. var iStatus = "";
  1358. var newRefSeq = 0;
  1359. var supIndxNo = ds_main_indxlist.getColumn(from, "supindxno");
  1360. var iNo = ds_main_indxlist.getColumn(from, "indxnm");
  1361. if( supIndxNo == "0" ){
  1362. var supIndxRefSeq = 0;
  1363. }else{
  1364. var supIndxRefSeq = parseInt( ds_main_indxlist.getColumn(from, "indxrefseq") );
  1365. }
  1366. for(var i = from + 1; i <= to; i++) {
  1367. iStatus = ds_main_indxlist.getColumn(i, "status");
  1368. if( iStatus == "N" || utlf_isNull(iStatus) ) {
  1369. ds_main_indxlist.setColumn(i, "status", "u");
  1370. }
  1371. supIndxRefSeq = supIndxRefSeq + 1;
  1372. ds_main_indxlist.setColumn(i, "indxrefseq", supIndxRefSeq);
  1373. }
  1374. }
  1375. // 드래그 & 드롭 시 아이템의 순서를 바꾼다.
  1376. function fMoveItem(srcIndex, srcValue, trgIndex){
  1377. var newSupIndxNo = ds_main_indxlist.getColumn(trgIndex, "supindxno"); //타겟의 상위색인번호
  1378. var newSupFolderNo = ds_main_indxlist.getColumn(trgIndex, "supfolderno"); //타겟의 최상위색인번호
  1379. var newIndxNo = ds_main_indxlist.getColumn(trgIndex, "indxno"); //타겟의 색인번호
  1380. var org_srcSupIndxNo = ds_main_indxlist.getColumn(srcIndex, "supindxno"); //원본의 상위색인번호
  1381. var org_srcSupFolderNo = ds_main_indxlist.getColumn(srcIndex, "supfolderno"); //원본의 최상위색인번호
  1382. //소스와 타겟 아이템의 상위인덱스번호를 교환한다.
  1383. var srcNodeDepth = ds_main_indxlist.getColumn(srcIndex, "depth") //원본의 depth
  1384. var trgNodeDepth = ds_main_indxlist.getColumn(trgIndex, "depth") //타겟의 depth
  1385. var subIndxCnt = 0;
  1386. var fYN = "N";
  1387. /*-----------------------srcParentIndex, trgParentIndex, srcLastChildItemIndex, trgLastChildItemIndex 구하기 ----------------------*/
  1388. //1. 선택한 원본의 부모 폴더 색인
  1389. var srcParentIndex = getParentItemIndex(srcIndex, treeview1);
  1390. //2. 타겟의 부모 폴더 색인
  1391. var trgParentIndex2 = -1;
  1392. if( ds_main_indxlist.getColumn(trgIndex, "supindxno") == "0" ){
  1393. var trgParentIndex = trgIndex; //타겟이 최상위 폴더일 경우, 엄마 노드를 찾을 필요가 없음
  1394. }else if( ds_main_indxlist.getColumn(srcIndex, "supindxno") != ds_main_indxlist.getColumn(trgIndex, "supindxno")
  1395. && ds_main_indxlist.getColumn(srcIndex, "supfolderno") == ds_main_indxlist.getColumn(trgIndex, "supfolderno")){
  1396. var cmp_IndxNo = parseInt(ds_main_indxlist.getColumn(trgIndex, "supfolderno"));
  1397. var trgParentIndex = fSrchItemIndxNo( cmp_IndxNo ); //타겟이 중간 단계의 폴더일 경우, 상위폴더를 찾으면 안되고, 최상위를 찾아야 함
  1398. }else{
  1399. var trgParentIndex = getParentItemIndex(trgIndex, treeview1);
  1400. }
  1401. if(ds_main_indxlist.getColumn(srcIndex, "supfolderno") != ds_main_indxlist.getColumn(trgIndex, "supfolderno")) {
  1402. cmp_IndxNo = parseInt(ds_main_indxlist.getColumn(srcIndex, "supfolderno"));
  1403. trgParentIndex2 = fSrchItemIndxNo( cmp_IndxNo ); // 원본과 타겟의 최상위 폴더가 다르다면 최상위 폴더 둘다를 찾아서 순번 바꿔줘야 함
  1404. }
  1405. if(utlf_isNull(ds_main_indxlist.getColumn(srcIndex, "cpgno")) || ds_main_indxlist.getColumn(srcIndex, "cpgno") == "0") {
  1406. fYN = "Y";
  1407. }else{
  1408. fYN = "N";
  1409. }
  1410. if(utlf_isNull(ds_main_indxlist.getColumn(trgIndex, "cpgno")) || ds_main_indxlist.getColumn(trgIndex, "cpgno") == "0") {
  1411. var depthGapCnt = parseInt(srcNodeDepth) - parseInt(trgNodeDepth) - 1;
  1412. } else {
  1413. var depthGapCnt = parseInt(srcNodeDepth) - parseInt(trgNodeDepth);
  1414. }
  1415. var srcLastChildItemIndex = getLastChildItemIndex(srcIndex, treeview1); // 드래그 아이템이 속한 아이템셋의 마지막 엔덱스
  1416. var trgLastChildItemIndex = getLastChildItemIndex(trgIndex, treeview1); // 드롭 아이템이 속한 아이템셋의 마지막 인덱스
  1417. /*------------------------------------------------------------------------------------------------------------------------------*/
  1418. //소스아이템이 타겟아이템보다 작으면, 소스아이템을 타겟+1에 위치
  1419. if(srcIndex < trgLastChildItemIndex) { // 위에서 아래로 이동
  1420. if(utlf_isNull(ds_main_indxlist.getColumn(trgIndex, "cpgno")) || ds_main_indxlist.getColumn(trgIndex, "cpgno") == "0") {
  1421. // target 이 폴더면,
  1422. ds_main_indxlist.setColumn(srcIndex, "supindxno", newIndxNo);
  1423. ds_main_indxlist.setColumn(srcIndex, "supfolderno", newSupFolderNo);
  1424. trgLastChildItemIndex = parseInt(trgLastChildItemIndex);
  1425. subIndxCnt = srcIndex - srcLastChildItemIndex;
  1426. }else{
  1427. // target 이 파일이면,
  1428. ds_main_indxlist.setColumn(srcIndex, "supindxno", newSupIndxNo);
  1429. ds_main_indxlist.setColumn(srcIndex, "supfolderno", newSupFolderNo);
  1430. trgLastChildItemIndex = parseInt(trgIndex);
  1431. }
  1432. // 아이템을 타겟 위치에 복제, 소스 아이템은 삭제한다.
  1433. var srcChildCount = srcIndex - srcLastChildItemIndex;
  1434. var trgChildCount = trgIndex - trgLastChildItemIndex;
  1435. if(srcChildCount < 0) srcChildCount *= -1;
  1436. if(trgChildCount < 0) trgChildCount *= -1;
  1437. ds_main_indxlist.enableevent = false;
  1438. var finalSrcIndex = srcIndex;
  1439. var finalTrgtIndex = trgIndex + trgChildCount;
  1440. var lastIndex = finalTrgtIndex;
  1441. var count = srcChildCount + 1;
  1442. for(var i = 0; i < count; i++) {
  1443. var val = parseInt(ds_main_indxlist.getColumn(finalSrcIndex, "depth")) - depthGapCnt;
  1444. ds_main_indxlist.setColumn(finalSrcIndex, "depth", val);
  1445. ds_main_indxlist.moveRow(finalSrcIndex, finalTrgtIndex);
  1446. }
  1447. ds_main_indxlist.applyChange();
  1448. ds_main_indxlist.enableevent = true;
  1449. grdf_expandTree(treeview1, lastIndex, true);
  1450. if(trgParentIndex2 != -1) { // 원본과 타겟 폴더가 다른 경우
  1451. fChangedRefSeq( trgParentIndex - count ); // 이동한 갯수 만큼 최상위 부모의 위치가 변경됨
  1452. fChangedRefSeq( trgParentIndex2 );
  1453. } else {
  1454. fChangedRefSeq( trgParentIndex );
  1455. }
  1456. return val;
  1457. }
  1458. //소스인덱스가 타겟인덱스보다 크면, 소스아이템을 타겟-1에 위치
  1459. else if(srcIndex > trgLastChildItemIndex) { // 아래에서 위로 이동
  1460. if(utlf_isNull(ds_main_indxlist.getColumn(trgIndex, "cpgno")) || ds_main_indxlist.getColumn(trgIndex, "cpgno") == "0") {
  1461. ds_main_indxlist.setColumn(srcIndex, "supindxno", newIndxNo);
  1462. ds_main_indxlist.setColumn(srcIndex, "supfolderno", newSupFolderNo);
  1463. if(newIndxNo == org_srcSupIndxNo)
  1464. trgLastChildItemIndex = parseInt(trgLastChildItemIndex)
  1465. else
  1466. trgLastChildItemIndex = parseInt(trgLastChildItemIndex) + 1;
  1467. }else{
  1468. ds_main_indxlist.setColumn(srcIndex, "supindxno", newSupIndxNo);
  1469. ds_main_indxlist.setColumn(srcIndex, "supfolderno", newSupFolderNo);
  1470. trgLastChildItemIndex = parseInt(trgIndex);
  1471. }
  1472. var srcChildCount = srcIndex - srcLastChildItemIndex;
  1473. var trgChildCount = trgIndex - trgLastChildItemIndex;
  1474. if(srcChildCount < 0) srcChildCount *= -1;
  1475. if(trgChildCount < 0) trgChildCount *= -1;
  1476. var finalSrcIndex;
  1477. var finalTrgtIndex;
  1478. var lastIndex;
  1479. ds_main_indxlist.enableevent = false;
  1480. var finalSrcIndex = srcIndex + srcChildCount;
  1481. var finalTrgtIndex = trgLastChildItemIndex;
  1482. var lastIndex = finalTrgtIndex + trgChildCount;
  1483. var count = srcChildCount + 1;
  1484. for(var i = 0; i < count; i++) {
  1485. var val = parseInt(ds_main_indxlist.getColumn(finalSrcIndex, "depth")) - depthGapCnt;
  1486. ds_main_indxlist.setColumn(finalSrcIndex, "depth", val);
  1487. ds_main_indxlist.moveRow(finalSrcIndex, finalTrgtIndex);
  1488. }
  1489. ds_main_indxlist.applyChange();
  1490. ds_main_indxlist.enableevent = true;
  1491. grdf_expandTree(treeview1, lastIndex, true);
  1492. fChangedRefSeq( trgParentIndex );
  1493. if(trgParentIndex2 != -1) fChangedRefSeq( trgParentIndex2 + count ); // 이동한 갯수 만큼 최상위 부모의 위치가 변경됨
  1494. return val;
  1495. } else {
  1496. return true;
  1497. }
  1498. }
  1499. function fShowWndIptBox() {
  1500. var arrCellRect = treeview1.getCellRect(treeview1.getTreeRow(ds_main_indxlist.rowposition), treeview1.getCellPos());
  1501. var clientY = arrCellRect.bottom + 6;
  1502. if(clientY + treeview1.position.top >= 610) {
  1503. group2.position.y = clientY - group2.position.height - 30;
  1504. } else{
  1505. group2.position.y = clientY;
  1506. }
  1507. group2.visible = true;
  1508. group2.input1.setFocus();
  1509. }
  1510. function group1_btn_msgcnfm_onclick(obj:Button, e:ClickEventInfo)
  1511. {
  1512. //if( isNull(sIndxNo) ){
  1513. sIndxNo = iFocusIndx; //sIndxNo = treeview1.focusIndex;
  1514. //}
  1515. //if( isNull(tIndxNo) ){
  1516. var srchVal = ds_main_indxlist.getColumn(sIndxNo, "supindxno");
  1517. tIndxNo = fSrchItemIndxNo( srchVal );
  1518. //}
  1519. var appDD = ds_main_formdata_cpinfo.getColumn(0, "appdd");
  1520. if( group1.ipt_appdd.visible == true && utlf_isNull(appDD) ){
  1521. sysf_messageBox("적용일을 ", "C001");
  1522. return;
  1523. }else if( group1.ipt_appdd.visible == true && (utlf_getStringLength(appDD) < 8 || utlf_getStringLength(appDD) > 8 ) ){
  1524. sysf_messageBox("적용일은 8자리", "I009");
  1525. return;
  1526. }else {
  1527. var m = "";
  1528. var indxno = ds_main_indxlist.getColumn(sIndxNo, "indxno");
  1529. var indxnm = ds_main_indxlist.getColumn(sIndxNo, "indxnm");
  1530. var indxrefseq = ds_main_indxlist.getColumn(sIndxNo, "indxrefseq");
  1531. var indxseq = parseInt( ds_main_indxlist.getColumn(sIndxNo, "indxseq") ) + 1;
  1532. var no = ds_main_indxlist.getColumn(sIndxNo, "cpgno");
  1533. var ver = ds_main_indxlist.getColumn(sIndxNo, "cpghistseq");
  1534. var flag = ds_main_indxlist.getColumn(sIndxNo, "cpgflagcd");
  1535. var src_supindxno = ds_main_indxlist.getColumn(sIndxNo, "supindxno");
  1536. var src_supflderno = ds_main_indxlist.getColumn(sIndxNo, "supfolderno");
  1537. var supindxno = ds_main_indxlist.getColumn(tIndxNo, "supindxno");
  1538. var supfolderno = ds_main_indxlist.getColumn(tIndxNo, "supfolderno");
  1539. //최상위이면, supindxno는 자신의 indxno
  1540. if( (utlf_isNull(ds_main_indxlist.getColumn(tIndxNo, "cpgno")) || ds_main_indxlist.getColumn(tIndxNo, "cpgno") == "0")
  1541. && ds_main_indxlist.getColumn(tIndxNo, "supindxno") == "0" ){
  1542. trg_supindxno = ds_main_indxlist.getColumn(tIndxNo, "indxno");
  1543. supindxno = trg_supindxno;
  1544. }
  1545. // 선택한 CP의 진료과와 타겟의 진료과가 다르면, 등록변경 안됨 (2008.06.18 변경됨... 원래 처리 : 색인도 새로 생성)
  1546. // 삭제 종료 미등록 변경은 상위노드의 인덱스 번호와 상관없이 진행될 수 있도록 flag 추가 (2008. 09.18)
  1547. var skipcheck = ds_temp.getColumn(0, "skiptopcheck");
  1548. if (skipcheck != "Y" ) {
  1549. if(src_supindxno != supindxno){
  1550. //m = "i"; //색인을 save as한다.
  1551. sysf_messageBox("다른 진료과로 옮길 수", "E001");
  1552. return;
  1553. }
  1554. }
  1555. ds_temp.getColumn(0, "skiptopcheck", "");
  1556. //var header = "m▦indxno▦indxnm▦supindxno▦indxrefseq▦depth▦indxseq▦cpgno▦cpghistseq▦image▦cpgflagcd";
  1557. var saveIndxlist = "▩"+m+"▦"+indxno+"▦"+indxnm+"▦"+supindxno+"▦"+indxrefseq+"▦▦"+indxseq+"▦"+no+"▦"+ver+"▦▦"+flag;
  1558. ds_main_formdata_cpinfo.setColumn(0, "cpgno", no);
  1559. ds_main_formdata_cpinfo.setColumn(0, "cpghistseq", ver);
  1560. if( fSaveCpgIndxList( saveIndxlist ) ){
  1561. fGetIndxList("F");
  1562. }
  1563. group1.visible = false;
  1564. }
  1565. }
  1566. function group1_btn_msgcncl_onclick(obj:Button, e:ClickEventInfo)
  1567. {
  1568. group1.visible = false;
  1569. tIndxNo = iFocusIndx;
  1570. }]]></Script>
  1571. </Form>
  1572. </FDL>