SPPEA00200_검사예약정보관리.xrw 89 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:ex="http://www.comsquare.co.kr/xforms/excel" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:my="http://www.comsquare.co.kr/example" 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" xmlns:cs="http://www.comsquare.co.kr/xforms">
  4. <xhtml:head>
  5. <xhtml:title>검사 예약 제어 정보 관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <init>
  10. <itemtype>
  11. <typeinfo>
  12. <cd>R</cd>
  13. <nm>조건</nm>
  14. </typeinfo>
  15. <typeinfo>
  16. <cd>C</cd>
  17. <nm>제어</nm>
  18. </typeinfo>
  19. </itemtype>
  20. <opcode>
  21. <cdinfo>
  22. <cd>EQ</cd>
  23. <nm>일치</nm>
  24. <rflag>Y</rflag>
  25. <cflag/>
  26. </cdinfo>
  27. <cdinfo>
  28. <cd>NE</cd>
  29. <nm>불일치</nm>
  30. <rflag>Y</rflag>
  31. <cflag/>
  32. </cdinfo>
  33. <cdinfo>
  34. <cd>OV</cd>
  35. <nm>이상</nm>
  36. <rflag>Y</rflag>
  37. <cflag/>
  38. </cdinfo>
  39. <cdinfo>
  40. <cd>BW</cd>
  41. <nm>이하</nm>
  42. <rflag>Y</rflag>
  43. <cflag/>
  44. </cdinfo>
  45. <cdinfo>
  46. <cd>EX</cd>
  47. <nm>초과</nm>
  48. <rflag>Y</rflag>
  49. <cflag/>
  50. </cdinfo>
  51. <cdinfo>
  52. <cd>UR</cd>
  53. <nm>미만</nm>
  54. <rflag>Y</rflag>
  55. <cflag/>
  56. </cdinfo>
  57. <cdinfo>
  58. <cd>IN</cd>
  59. <nm>이내</nm>
  60. <rflag>Y</rflag>
  61. <cflag/>
  62. </cdinfo>
  63. <cdinfo>
  64. <cd>NI</cd>
  65. <nm>이외</nm>
  66. <rflag>Y</rflag>
  67. <cflag/>
  68. </cdinfo>
  69. </opcode>
  70. <srch>
  71. <deptlist>
  72. <deptinfo>
  73. <deptcd/>
  74. <deptnm/>
  75. </deptinfo>
  76. </deptlist>
  77. <roomlist>
  78. <roominfo>
  79. <deptcd/>
  80. <roomcd/>
  81. <cdcnts/>
  82. <roomnm/>
  83. </roominfo>
  84. </roomlist>
  85. <ctrllist>
  86. <ctrlinfo>
  87. <itemseq/>
  88. <itemnm/>
  89. </ctrlinfo>
  90. </ctrllist>
  91. </srch>
  92. <rgst>
  93. <excdlist>
  94. <excdinfo>
  95. <excucd>T</excucd>
  96. <excunm>전체</excunm>
  97. </excdinfo>
  98. </excdlist>
  99. </rgst>
  100. </init>
  101. <main>
  102. <ctrllist>
  103. <ctrlinfo>
  104. <rsrvplce/>
  105. <suppdeptcd/>
  106. <suppdeptnm/>
  107. <excuroomcd/>
  108. <excuroomnm/>
  109. <excucd/>
  110. <excunm/>
  111. <ctrlseq/>
  112. <termcnt/>
  113. <ctrldesc/>
  114. <ctrltype/>
  115. <fromdd/>
  116. <todd/>
  117. </ctrlinfo>
  118. </ctrllist>
  119. <termlist>
  120. <terminfo>
  121. <rsrvplce/>
  122. <suppdeptcd/>
  123. <excuroomcd/>
  124. <excucd/>
  125. <ctrlseq/>
  126. <termseq/>
  127. <itemtype/>
  128. <itemseq/>
  129. <itemnm/>
  130. <opcode/>
  131. <valtype/>
  132. <valseq/>
  133. <val/>
  134. <valnm/>
  135. <inflag/>
  136. </terminfo>
  137. </termlist>
  138. <itemlist>
  139. <iteminfo>
  140. <itemtype/>
  141. <itemseq/>
  142. <itemid/>
  143. <itemnm/>
  144. <acqid/>
  145. <valtype/>
  146. <addflag/>
  147. <acqidarr/>
  148. <acqnmarr/>
  149. </iteminfo>
  150. </itemlist>
  151. </main>
  152. <temp>
  153. <qrylist>
  154. <qryinfo>
  155. <acqid/>
  156. <acqnm/>
  157. <itemseq/>
  158. <itemid/>
  159. <itemnm/>
  160. </qryinfo>
  161. </qrylist>
  162. <addval/>
  163. <iptval>
  164. <val/>
  165. <valnm/>
  166. </iptval>
  167. <enumlist>
  168. <enuminfo>
  169. <itemseq/>
  170. <itemnm/>
  171. </enuminfo>
  172. </enumlist>
  173. <enumval>
  174. <val/>
  175. <valnm/>
  176. </enumval>
  177. <srchlist>
  178. <srchinfo>
  179. <val/>
  180. <valnm/>
  181. </srchinfo>
  182. </srchlist>
  183. <refval>
  184. <val/>
  185. <valnm/>
  186. </refval>
  187. <term>
  188. <itemtype/>
  189. <itemseq/>
  190. <itemnm/>
  191. <opcode/>
  192. <opnm/>
  193. <valtype/>
  194. <valseq/>
  195. <val/>
  196. <valnm/>
  197. <acqid/>
  198. <inflag/>
  199. </term>
  200. <rslt>
  201. <ctrlseq/>
  202. </rslt>
  203. </temp>
  204. <send>
  205. <srch>
  206. <rsrvplce>A</rsrvplce>
  207. <suppdeptcd/>
  208. <excuroomcd/>
  209. <excucd/>
  210. <itemseq/>
  211. <srchflag>D</srchflag>
  212. <srchstr/>
  213. <deptcd/>
  214. <roomcd/>
  215. </srch>
  216. <term>
  217. <rsrvplce/>
  218. <suppdeptcd/>
  219. <excuroomcd/>
  220. <excucd/>
  221. <ctrlseq/>
  222. </term>
  223. <rgst>
  224. <rsrvplce>A</rsrvplce>
  225. <suppdeptcd/>
  226. <excuroomcd/>
  227. <excucd/>
  228. <ctrlseq/>
  229. <ctrldesc/>
  230. <fromdd/>
  231. <todd/>
  232. <ctrlflag/>
  233. <termlist>
  234. <terminfo>
  235. <termseq/>
  236. <itemtype/>
  237. <itemseq/>
  238. <itemnm/>
  239. <opcode/>
  240. <valtype/>
  241. <inflag/>
  242. <aoflag/>
  243. <valseq/>
  244. <val/>
  245. <valnm/>
  246. <invalnm/>
  247. </terminfo>
  248. </termlist>
  249. </rgst>
  250. </send>
  251. <hidden>
  252. <valtype>
  253. <qryyn/>
  254. <drctyn/>
  255. <srchyn/>
  256. <enumyn/>
  257. <refyn/>
  258. </valtype>
  259. <addflag/>
  260. <aoflag>O</aoflag>
  261. <popup/>
  262. </hidden>
  263. </root>
  264. </instance>
  265. <submission id="TRPEA00201" mediatype="application/x-www-form-urlencoded" method="post" resultref="/root/main/itemlist/iteminfo"/>
  266. <submission id="TRPEA00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/srch" resultref="/root/init/srch"/>
  267. <submission id="TRPEA00203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/srch" resultref="/root/init/srch/roomlist/roominfo"/>
  268. <submission id="TRPEA00204" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/srch" resultref="/root/init/rgst/excdlist/excdinfo"/>
  269. <submission id="TRPEA00205" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/srch" resultref="/root/main/ctrllist/ctrlinfo"/>
  270. <submission id="TRPEA00206" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/term" resultref="/root/send/rgst/termlist/terminfo"/>
  271. <submission id="TXPEA00203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/rgst" resultref="/root/temp/rslt"/>
  272. <submission id="TXPEA00205" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/term"/>
  273. </model>
  274. <script type="javascript">
  275. <![CDATA[
  276. var CURR_PLCE = "";
  277. var CURR_DEPT = "";
  278. var CURR_ROOM = "";
  279. var CURR_CODE = "";
  280. function fSearchTerms() {
  281. grd_ctrl.rebuildStyle();
  282. submit("TRPEA00205");
  283. btn_newrgst.dispatch("DOMActivate");
  284. }
  285. function fClearValues() {
  286. // 항목 그리드 초기화
  287. grd_item.nodeset = "/";
  288. // 연산 그리드 초기화
  289. grd_opcode.nodeset = "/";
  290. // 조건 값 초기화
  291. model.resetInstanceNode("/root/temp/qrylist/qryinfo");
  292. grd_qry.refresh();
  293. model.setValue("/root/temp/addval", "");
  294. ipt_addval.refresh();
  295. model.setValue("/root/temp/iptval/val", "");
  296. model.setValue("/root/temp/iptval/valnm", "");
  297. ipt_drct.hint = "";
  298. ipt_drct.refresh();
  299. model.resetInstanceNode("/root/temp/enumlist/enuminfo");
  300. rdo_enum.refresh();
  301. model.setValue("/root/temp/enumval/val", "");
  302. model.setValue("/root/temp/enumval/valnm", "");
  303. rdo_enum.refresh();
  304. model.resetInstanceNode("/root/temp/srchlist/srchinfo");
  305. grd_srch.refresh();
  306. model.resetInstanceNode("/root/temp/term");
  307. rdo_itemtype.refresh();
  308. cap_item.refresh();
  309. cap_opnm.refresh();
  310. cap_valnm.refresh();
  311. cap_valnm.hint = "";
  312. // 값 형식 설정
  313. fSetValType("");
  314. }
  315. function fSetValType(valtype) {
  316. model.resetInstanceNode("/root/hidden/valtype");
  317. chk_drct.refresh();
  318. chk_srch.refresh();
  319. chk_enum.refresh();
  320. chk_qry.refresh();
  321. chk_ref.refresh();
  322. var color = "#fffbf2";
  323. if (valtype.indexOf("D") < 0) {
  324. grp_drct.attribute("background-color") = color;
  325. model.setValue("/root/temp/iptval/val", "");
  326. model.setValue("/root/temp/iptval/valnm", "");
  327. ipt_drct.hint = "";
  328. ipt_drct.refresh();
  329. chk_drct.disabled = true;
  330. } else {
  331. grp_drct.attribute("background-color") = "#ffffff";
  332. chk_drct.disabled = false;
  333. }
  334. if (valtype.indexOf("S") < 0) {
  335. grp_srch.attribute("background-color") = color;
  336. model.resetInstanceNode("/root/temp/term/srchlist/srchinfo");
  337. grd_srch.refresh();
  338. chk_srch.disabled = true;
  339. } else {
  340. grp_srch.attribute("background-color") = "#ffffff";
  341. chk_srch.disabled = false;
  342. }
  343. if (valtype.indexOf("E") < 0) {
  344. grp_enum.attribute("background-color") = color;
  345. chk_enum.disabled = true;
  346. } else {
  347. grp_enum.attribute("background-color") = "#ffffff";
  348. chk_enum.disabled = false;
  349. }
  350. if (valtype.indexOf("Q") < 0) {
  351. grp_qry.attribute("background-color") = color;
  352. chk_qry.disabled = true;
  353. } else {
  354. grp_qry.attribute("background-color") = "#ffffff";
  355. chk_qry.disabled = false;
  356. }
  357. if (valtype.indexOf("R") < 0) {
  358. grp_ref.attribute("background-color") = color;
  359. chk_ref.disabled = true;
  360. } else {
  361. grp_ref.attribute("background-color") = "#ffffff";
  362. chk_ref.disabled = false;
  363. }
  364. ipt_drct.visible = false;
  365. btn_drctipt.visible = false;
  366. btn_drctex.visible = false;
  367. rdo_enum.visible = false;
  368. chk_enumarr.visible = false;
  369. btn_srch.visible = false;
  370. btn_srchipt.visible = false;
  371. btn_delsrch.visible = false;
  372. grd_srch.visible = false;
  373. grd_qry.visible = false;
  374. btn_refipt.visible = false;
  375. cmb_ref.visible = false;
  376. ipt_addval.disabled = true;
  377. }
  378. function fSetTypeChk(valtype, chkyn) {
  379. model.setValue("/root/temp/term/valtype", valtype);
  380. if (valtype == "D") {
  381. model.setValue("/root/temp/iptval/val", "");
  382. model.setValue("/root/temp/iptval/valnm", "");
  383. ipt_drct.hint = "";
  384. ipt_drct.refresh();
  385. model.setValue("/root/hidden/valtype/qryyn", "");
  386. chk_qry.refresh();
  387. model.setValue("/root/hidden/valtype/srchyn", "");
  388. chk_srch.refresh();
  389. model.setValue("/root/hidden/valtype/enumyn", "");
  390. chk_enum.refresh();
  391. model.setValue("/root/hidden/valtype/refyn", "");
  392. chk_ref.refresh();
  393. ipt_drct.visible = btn_drctipt.visible = btn_drctex.visible = chkyn == "Y" ? true : false;
  394. rdo_enum.visible = false;
  395. chk_enumarr.visible = false;
  396. btn_srch.visible = false;
  397. btn_srchipt.visible = false;
  398. btn_delsrch.visible = false;
  399. grd_srch.visible = false;
  400. grd_qry.visible = false;
  401. btn_refipt.visible = false;
  402. cmb_ref.visible = false;
  403. } else if (valtype == "S") {
  404. model.setValue("/root/hidden/valtype/qryyn", "");
  405. chk_qry.refresh();
  406. model.setValue("/root/hidden/valtype/drctyn", "");
  407. chk_drct.refresh();
  408. model.setValue("/root/hidden/valtype/enumyn", "");
  409. chk_enum.refresh();
  410. model.setValue("/root/hidden/valtype/refyn", "");
  411. chk_ref.refresh();
  412. btn_srch.visible = btn_srchipt.visible = grd_srch.visible = btn_delsrch.visible = chkyn == "Y" ? true : false;
  413. ipt_drct.visible = false;
  414. btn_drctipt.visible = false;
  415. btn_drctex.visible = false;
  416. rdo_enum.visible = false;
  417. chk_enumarr.visible = false;
  418. grd_qry.visible = false;
  419. btn_refipt.visible = false;
  420. cmb_ref.visible = false;
  421. } else if (valtype == "E") {
  422. model.setValue("/root/hidden/valtype/qryyn", "");
  423. chk_qry.refresh();
  424. model.setValue("/root/hidden/valtype/drctyn", "");
  425. chk_drct.refresh();
  426. model.setValue("/root/hidden/valtype/srchyn", "");
  427. chk_srch.refresh();
  428. model.setValue("/root/hidden/valtype/refyn", "");
  429. chk_ref.refresh();
  430. var opcode = model.getValue("/root/temp/term/opcode");
  431. if (opcode == "IN" || opcode == "NI") {
  432. chk_enumarr.visible = chkyn == "Y" ? true : false;
  433. rdo_enum.visible = false;
  434. } else {
  435. rdo_enum.visible = chkyn == "Y" ? true : false;
  436. chk_enumarr.visible = false;
  437. }
  438. ipt_drct.visible = false;
  439. btn_drctipt.visible = false;
  440. btn_drctex.visible = false;
  441. btn_srch.visible = false;
  442. btn_srchipt.visible = false;
  443. btn_delsrch.visible = false;
  444. grd_srch.visible = false;
  445. grd_qry.visible = false;
  446. btn_refipt.visible = false;
  447. cmb_ref.visible = false;
  448. } else if (valtype == "Q") {
  449. model.setValue("/root/hidden/valtype/drctyn", "");
  450. chk_drct.refresh();
  451. model.setValue("/root/hidden/valtype/srchyn", "");
  452. chk_srch.refresh();
  453. model.setValue("/root/hidden/valtype/enumyn", "");
  454. chk_enum.refresh();
  455. model.setValue("/root/hidden/valtype/refyn", "");
  456. chk_ref.refresh();
  457. grd_qry.visible = chkyn == "Y" ? true : false;
  458. ipt_drct.visible = false;
  459. btn_drctipt.visible = false;
  460. btn_drctex.visible = false;
  461. rdo_enum.visible = false;
  462. chk_enumarr.visible = false;
  463. btn_srch.visible = false;
  464. btn_srchipt.visible = false;
  465. btn_delsrch.visible = false;
  466. grd_srch.visible = false;
  467. btn_refipt.visible = false;
  468. cmb_ref.visible = false;
  469. } else if (valtype == "R") {
  470. model.setValue("/root/temp/refval/val", "");
  471. model.setValue("/root/temp/refval/valnm", "");
  472. cmb_ref.refresh();
  473. model.setValue("/root/hidden/valtype/qryyn", "");
  474. chk_qry.refresh();
  475. model.setValue("/root/hidden/valtype/drctyn", "");
  476. chk_drct.refresh();
  477. model.setValue("/root/hidden/valtype/srchyn", "");
  478. chk_srch.refresh();
  479. model.setValue("/root/hidden/valtype/enumyn", "");
  480. chk_enum.refresh();
  481. btn_refipt.visible = cmb_ref.visible = chkyn == "Y" ? true : false;
  482. ipt_drct.visible = false;
  483. btn_drctipt.visible = false;
  484. btn_drctex.visible = false;
  485. rdo_enum.visible = false;
  486. chk_enumarr.visible = false;
  487. btn_srch.visible = false;
  488. btn_srchipt.visible = false;
  489. btn_delsrch.visible = false;
  490. grd_srch.visible = false;
  491. grd_qry.visible = false;
  492. }
  493. if (model.getValue("/root/hidden/addflag") == "Y") {
  494. ipt_addval.disabled = false;
  495. } else {
  496. ipt_addval.disabled = true;
  497. }
  498. }
  499. function fSetTermInfo() {
  500. grd_ctrl.attribute("height") = "220px";
  501. btn_expand.attribute("background-image") = "../../../com/commonweb/images/btn_send_bottom.gif";
  502. var row = grd_ctrl.row;
  503. grd_ctrl.rebuildStyle();
  504. grd_ctrl.focusColor = grd_ctrl.rowStyle(row, "all", "background-color") = "#ffcdcd";
  505. if (row > grd_ctrl.bottomRow) {
  506. grd_ctrl.bottomRow = row;
  507. }
  508. var rsrvplce = model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/rsrvplce");
  509. var suppdeptcd = model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/suppdeptcd");
  510. var excuroomcd = model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/excuroomcd");
  511. var excucd = model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/excucd");
  512. var ctrlseq = model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/ctrlseq");
  513. CURR_PLCE = rsrvplce;
  514. CURR_DEPT = suppdeptcd;
  515. CURR_ROOM = excuroomcd;
  516. CURR_CODE = excucd;
  517. model.setValue("/root/send/term/rsrvplce", rsrvplce);
  518. model.setValue("/root/send/term/suppdeptcd", suppdeptcd);
  519. model.setValue("/root/send/term/excuroomcd", excuroomcd);
  520. model.setValue("/root/send/term/excucd", excucd);
  521. model.setValue("/root/send/term/ctrlseq", ctrlseq);
  522. submit("TRPEA00206", false);
  523. var cnt = instance1.selectNodes("/root/send/rgst/termlist/terminfo").length;
  524. for (var i = 1; i <= cnt; i++) {
  525. var inflag = model.getValue("/root/send/rgst/termlist/terminfo[" + i + "]/inflag");
  526. var aoflag = model.getValue("/root/send/rgst/termlist/terminfo[" + i + "]/aoflag");
  527. var invalnm = fGetInFlagName(inflag, aoflag) + model.getValue("/root/send/rgst/termlist/terminfo[" + i + "]/valnm");
  528. model.makeValue("/root/send/rgst/termlist/terminfo[" + i + "]/invalnm", invalnm);
  529. }
  530. grd_rgst.refresh();
  531. for (var i = 1; i <= cnt; i++) {
  532. grd_rgst.tooltipText(i, grd_rgst.colRef("invalnm")) = model.getValue("/root/send/rgst/termlist/terminfo[" + i + "]/valnm");
  533. }
  534. model.setValue("/root/send/rgst/rsrvplce", rsrvplce);
  535. model.setValue("/root/send/rgst/suppdeptcd", suppdeptcd);
  536. cmb_rgstplce.refresh();
  537. cmb_rgstdept.refresh();
  538. cmb_rgstdept.dispatch("xforms-value-changed");
  539. model.setValue("/root/send/rgst/excuroomcd", excuroomcd);
  540. cmb_rgstroom.refresh();
  541. model.setValue("/root/send/rgst/excucd", excucd);
  542. cmb_rgstexcd.refresh();
  543. cmb_rgstexcd.dispatch("xforms-value-changed");
  544. model.setValue("/root/send/rgst/ctrlseq", ctrlseq);
  545. var ctrldesc = model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/ctrldesc");
  546. var fromdd = model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/fromdd");
  547. var todd = model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/todd");
  548. model.setValue("/root/send/rgst/ctrldesc", ctrldesc);
  549. tar_rgstdesc.refresh();
  550. model.setValue("/root/send/rgst/fromdd", fromdd);
  551. ipt_fromdd.refresh();
  552. model.setValue("/root/send/rgst/todd", todd);
  553. ipt_todd.refresh();
  554. }
  555. function fSetRgstStatus(isNew) {
  556. cap_status.value = btn_rgst.value = isNew ? "등록" : "수정";
  557. cap_status.attribute("color") = isNew ? "black" : "blue";
  558. }
  559. // -1 : 위로, 1 : 아래로, 0 : 삭제
  560. function fMoveTerm(mov) {
  561. if (mov != 0 && grd_rgst.rows < 2) {
  562. return;
  563. }
  564. var toprow = grd_rgst.topRow;
  565. var bottomrow = grd_rgst.bottomRow;
  566. var row = grd_rgst.row;
  567. if (row + mov == 0 || row + mov == grd_rgst.rows) {
  568. return;
  569. }
  570. var rpath = "/root/send/rgst/termlist/terminfo";
  571. var tpath = "/root/temp/templist/terminfo";
  572. var cnt = instance1.selectNodes(rpath).length;
  573. var idx = 1;
  574. var del = 0;
  575. // index 설정
  576. for (var i = 1; i <= cnt; i++) {
  577. if (mov == 0 && grd_rgst.isSelected(i)) { // 삭제
  578. del++;
  579. continue;
  580. } else if (i == row + mov) {
  581. idx = i + ( mov * -1 );
  582. } else if (i == row) {
  583. idx = i + mov;
  584. } else {
  585. idx = i;
  586. }
  587. model.makeValue(tpath + "[" + ( i - del ) + "]/ctrlseq", model.getValue(rpath + "[" + idx + "]/ctrlseq"));
  588. model.makeValue(tpath + "[" + ( i - del ) + "]/termseq", i - del);
  589. model.makeValue(tpath + "[" + ( i - del ) + "]/itemtype", model.getValue(rpath + "[" + idx + "]/itemtype"));
  590. model.makeValue(tpath + "[" + ( i - del ) + "]/itemseq", model.getValue(rpath + "[" + idx + "]/itemseq"));
  591. model.makeValue(tpath + "[" + ( i - del ) + "]/itemnm", model.getValue(rpath + "[" + idx + "]/itemnm"));
  592. model.makeValue(tpath + "[" + ( i - del ) + "]/opcode", model.getValue(rpath + "[" + idx + "]/opcode"));
  593. model.makeValue(tpath + "[" + ( i - del ) + "]/valtype", model.getValue(rpath + "[" + idx + "]/valtype"));
  594. model.makeValue(tpath + "[" + ( i - del ) + "]/valseq", model.getValue(rpath + "[" + idx + "]/valseq"));
  595. model.makeValue(tpath + "[" + ( i - del ) + "]/val", model.getValue(rpath + "[" + idx + "]/val"));
  596. model.makeValue(tpath + "[" + ( i - del ) + "]/valnm", model.getValue(rpath + "[" + idx + "]/valnm"));
  597. model.makeValue(tpath + "[" + ( i - del ) + "]/invalnm", model.getValue(rpath + "[" + idx + "]/invalnm"));
  598. model.makeValue(tpath + "[" + ( i - del ) + "]/inflag", model.getValue(rpath + "[" + idx + "]/inflag"));
  599. model.makeValue(tpath + "[" + ( i - del ) + "]/aoflag", model.getValue(rpath + "[" + idx + "]/aoflag"));
  600. }
  601. model.removenode("/root/send/rgst/termlist");
  602. model.makeNode("/root/send/rgst/termlist");
  603. cnt = instance1.selectNodes(tpath).length;
  604. // opcode 설정
  605. for (var i = 1; i <= cnt; i++) {
  606. var itemseq = model.getValue(tpath + "[" + i + "]/itemseq");
  607. var prevseq = i == 1 ? "" : model.getValue(tpath + "[" + ( i - 1 ) + "]/itemseq");
  608. var nextseq = i == cnt ? "" : model.getValue(tpath + "[" + ( i + 1 ) + "]/itemseq");
  609. var opcode = model.getValue(tpath + "[" + i + "]/opcode");
  610. var prevop = i == 1 ? "" : model.getValue(tpath + "[" + ( i - 1 ) + "]/opcode");
  611. var nextop = i == cnt ? "" : model.getValue(tpath + "[" + ( i + 1 ) + "]/opcode");
  612. var prevflag = true;
  613. var nextflag = true;
  614. if (itemseq == prevseq) {
  615. if (opcode == "EQ" && ( prevop == "EQ" || prevop == "IN" )) {
  616. opcode = "IN";
  617. } else if (opcode == "NE" && ( prevop == "NE" || prevop == "NI" )) {
  618. opcode = "NI";
  619. } else if (( opcode == "IN" && ( prevop != "IN" && prevop != "EQ" ) )
  620. || ( opcode == "NI" && ( prevop != "NI" && prevop != "NE" ) )) {
  621. prevflag = false;
  622. }
  623. } else {
  624. prevflag = false;
  625. }
  626. if (itemseq == nextseq) {
  627. if (opcode == "EQ" && ( nextop == "EQ" || nextop == "IN" )) {
  628. opcode = "IN";
  629. } else if (opcode == "NE" && ( nextop == "NE" || nextop == "NI" )) {
  630. opcode = "NI";
  631. } else if (( opcode == "IN" && ( nextop != "IN" && nextop != "EQ" ) )
  632. || ( opcode == "NI" && ( nextop != "NI" && nextop != "NE" ) )) {
  633. nextflag = false;
  634. }
  635. } else {
  636. nextflag = false;
  637. }
  638. if (( !prevflag && !nextflag ) || itemseq != prevseq && itemseq != nextseq) {
  639. if (opcode == "IN") {
  640. opcode = "EQ";
  641. } else if (opcode == "NI") {
  642. opcode = "NE";
  643. }
  644. }
  645. model.makeValue(tpath + "[" + i + "]/ctrlseq", model.getValue(tpath + "[" + i + "]/ctrlseq"));
  646. model.makeValue(tpath + "[" + i + "]/termseq", model.getValue(tpath + "[" + i + "]/termseq"));
  647. model.makeValue(tpath + "[" + i + "]/itemtype", model.getValue(tpath + "[" + i + "]/itemtype"));
  648. model.makeValue(tpath + "[" + i + "]/itemseq", model.getValue(tpath + "[" + i + "]/itemseq"));
  649. model.makeValue(tpath + "[" + i + "]/itemnm", model.getValue(tpath + "[" + i + "]/itemnm"));
  650. model.makeValue(tpath + "[" + i + "]/opcode", opcode);
  651. model.makeValue(tpath + "[" + i + "]/valtype", model.getValue(tpath + "[" + i + "]/valtype"));
  652. model.makeValue(tpath + "[" + i + "]/valseq", model.getValue(tpath + "[" + i + "]/valseq"));
  653. model.makeValue(tpath + "[" + i + "]/val", model.getValue(tpath + "[" + i + "]/val"));
  654. model.makeValue(tpath + "[" + i + "]/valnm", model.getValue(tpath + "[" + i + "]/valnm"));
  655. model.makeValue(tpath + "[" + i + "]/invalnm", model.getValue(tpath + "[" + i + "]/invalnm"));
  656. model.makeValue(tpath + "[" + i + "]/inflag", model.getValue(tpath + "[" + i + "]/inflag"));
  657. model.makeValue(tpath + "[" + i + "]/aoflag", model.getValue(tpath + "[" + i + "]/aoflag"));
  658. }
  659. // inflag 설정
  660. for (var i = 1; i <= cnt; i++) {
  661. var itemseq = model.getValue(tpath + "[" + i + "]/itemseq");
  662. var prevseq = i == 1 ? "" : model.getValue(tpath + "[" + ( i - 1 ) + "]/itemseq");
  663. var nextseq = i == cnt ? "" : model.getValue(tpath + "[" + ( i + 1 ) + "]/itemseq");
  664. var opcode = model.getValue(tpath + "[" + i + "]/opcode");
  665. var prevop = i == 1 ? "" : model.getValue(tpath + "[" + ( i - 1 ) + "]/opcode");
  666. var nextop = i == cnt ? "" : model.getValue(tpath + "[" + ( i + 1 ) + "]/opcode");
  667. var inflag = "";
  668. var inflagdp = "";
  669. if (opcode == "IN" || opcode == "NI") {
  670. if (itemseq != prevseq || ( itemseq == prevseq && opcode != prevop )) {
  671. inflag = "B";
  672. inflagdp = "┌ ";
  673. } else if (itemseq != nextseq || ( itemseq == nextseq && opcode != nextop )) {
  674. inflag = "E";
  675. inflagdp = "└ ";
  676. } else {
  677. inflag = "I";
  678. inflagdp = "│ ";
  679. }
  680. }
  681. // 순서 변경시 포괄 적용 항목은 모두 초기화됨
  682. model.makeValue(rpath + "[" + i + "]/ctrlseq", model.getValue(tpath + "[" + i + "]/ctrlseq"));
  683. model.makeValue(rpath + "[" + i + "]/termseq", model.getValue(tpath + "[" + i + "]/termseq"));
  684. model.makeValue(rpath + "[" + i + "]/itemtype", model.getValue(tpath + "[" + i + "]/itemtype"));
  685. model.makeValue(rpath + "[" + i + "]/itemseq", model.getValue(tpath + "[" + i + "]/itemseq"));
  686. model.makeValue(rpath + "[" + i + "]/itemnm", model.getValue(tpath + "[" + i + "]/itemnm"));
  687. model.makeValue(rpath + "[" + i + "]/opcode", opcode);
  688. model.makeValue(rpath + "[" + i + "]/valtype", model.getValue(tpath + "[" + i + "]/valtype"));
  689. model.makeValue(rpath + "[" + i + "]/valseq", model.getValue(tpath + "[" + i + "]/valseq"));
  690. model.makeValue(rpath + "[" + i + "]/val", model.getValue(tpath + "[" + i + "]/val"));
  691. model.makeValue(rpath + "[" + i + "]/valnm", model.getValue(tpath + "[" + i + "]/valnm"));
  692. model.makeValue(rpath + "[" + i + "]/invalnm", inflagdp + model.getValue(tpath + "[" + i + "]/valnm"));
  693. model.makeValue(rpath + "[" + i + "]/inflag", inflag);
  694. model.makeValue(rpath + "[" + i + "]/aoflag", inflag != "" ? "O" : "");
  695. }
  696. model.removenode("/root/temp/templist");
  697. grd_rgst.refresh();
  698. cnt = instance1.selectNodes("/root/send/rgst/termlist/terminfo").length;
  699. for (var i = 1; i <= cnt; i++) {
  700. grd_rgst.tooltipText(i, grd_rgst.colRef("invalnm")) = model.getValue("/root/send/rgst/termlist/terminfo[" + i + "]/valnm");
  701. }
  702. grd_rgst.row = row + mov;
  703. if (mov == 0) {
  704. grd_rgst.topRow = toprow;
  705. } else if (mov < 0 && row + mov < toprow) {
  706. grd_rgst.topRow = toprow - 1;
  707. } else if (mov > 0 && row + mov > bottomrow) {
  708. grd_rgst.bottomRow = bottomrow + 1;
  709. }
  710. }
  711. function fGetInFlagName(inflag, aoflag) {
  712. var invalnm = "";
  713. for (var j = 0; j < inflag.length; j++) {
  714. if (inflag.substr(j, 1) == "B") {
  715. invalnm += "┌";
  716. } else if (inflag.substr(j, 1) == "E") {
  717. invalnm += "└";
  718. } else if (inflag.substr(j, 1) == "I") {
  719. invalnm += "│";
  720. }
  721. invalnm += aoflag.substr(j, 1) == "A" ? "&" : "";
  722. }
  723. invalnm += ( inflag.length > 0 ? " " : "" );
  724. return invalnm;
  725. }
  726. ]]>
  727. </script>
  728. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  729. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  730. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  731. <script type="javascript" ev:event="xforms-ready">
  732. <![CDATA[
  733. if (getUserId() == "PAM") {
  734. btn_itemmng.visible = true;
  735. btn_easyrgst.visible = true;
  736. }
  737. grp_drctex.attribute("top") = "245px";
  738. chk_enumarr.attribute("top") = rdo_enum.attribute("top");
  739. chk_enumarr.attribute("height") = rdo_enum.attribute("height");
  740. // 제어 항목 조회
  741. submit("TRPEA00201");
  742. // 수행부서 & 검사실 조회
  743. submit("TRPEA00202", false);
  744. addComboItem("cmb_deptcd", "전체", "T");
  745. addComboItem("cmb_roomcd", "전체", "T");
  746. //model.makeValue("/root/init/srch/roomlist/roominfo/deptcd", ""); // nodeset 동적 변경을 위해 해당 항목 미리 만들어둠 (안만들면 오류 발생)
  747. cmb_deptcd.select(0);
  748. // 등록 기본 항목 기본 세팅
  749. cmb_rgstdept.select(0);
  750. // 제어 항목 설정
  751. model.makeValue("/root/init/srch/ctrllist/ctrlinfo/itemseq", "T");
  752. model.makeValue("/root/init/srch/ctrllist/ctrlinfo/itemnm", "전체");
  753. var cnt = instance1.selectNodes("/root/main/itemlist/iteminfo").length;
  754. var idx = 2;
  755. for (var i = 1; i <= cnt; i++) {
  756. if (model.getValue("/root/main/itemlist/iteminfo[" + i + "]/itemtype") == "C") {
  757. model.makeValue("/root/init/srch/ctrllist/ctrlinfo[" + idx + "]/itemseq", model.getValue("/root/main/itemlist/iteminfo[" + i + "]/itemseq"));
  758. model.makeValue("/root/init/srch/ctrllist/ctrlinfo[" + idx + "]/itemnm", model.getValue("/root/main/itemlist/iteminfo[" + i + "]/itemnm"));
  759. idx++;
  760. }
  761. }
  762. cmb_ctrl.refresh();
  763. cmb_ctrl.select(0);
  764. fSearchTerms();
  765. model.setValue("/root/send/rgst/fromdd", getCurrentDate());
  766. model.setValue("/root/send/rgst/todd", "99991231");
  767. ipt_fromdd.refresh();
  768. ipt_todd.refresh();
  769. ]]>
  770. </script>
  771. </xhtml:head>
  772. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  773. <caption id="cap_title" class="tit_1" style="left:0px; top:0px; width:165px; height:14px; font-family:돋움; vertical-align:middle; ">검사 예약 제어 정보 관리</caption>
  774. <caption id="caption7" class="tit_2" style="left:0px; top:70px; width:124px; height:13px; font-weight:bold; ">등록된 제어 내역</caption>
  775. <datagrid id="grd_rgst" nodeset="/root/send/rgst/termlist/terminfo" backcoloralternate="transparent" caption="제어순번^항번^구분^항목순번^항목^연산^형식^포괄^포괄구분^값순번^코드^비교값^비교값" colsep="^" colwidth="0, 35, 35, 0, 90, 45, 35, 0, 0, 0, 90, 0, 222" ellipsis="true" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:625px; top:345px; width:570px; height:280px; ">
  776. <col ref="ctrlseq"/>
  777. <col ref="termseq" style="text-align:center; "/>
  778. <col disabled="true" ref="itemtype" type="combo" style="text-align:center; ">
  779. <choices>
  780. <itemset nodeset="/root/init/itemtype/typeinfo">
  781. <label ref="nm"/>
  782. <value ref="cd"/>
  783. </itemset>
  784. </choices>
  785. </col>
  786. <col ref="itemseq"/>
  787. <col ref="itemnm" style="text-align:center; "/>
  788. <col disabled="true" ref="opcode" type="combo" style="text-align:center; ">
  789. <choices>
  790. <itemset nodeset="/root/init/opcode/cdinfo">
  791. <label ref="nm"/>
  792. <value ref="cd"/>
  793. </itemset>
  794. </choices>
  795. </col>
  796. <col disabled="true" ref="valtype" type="combo" style="text-align:center; ">
  797. <choices>
  798. <item>
  799. <label>직접</label>
  800. <value>D</value>
  801. </item>
  802. <item>
  803. <label>조회</label>
  804. <value>S</value>
  805. </item>
  806. <item>
  807. <label>열거</label>
  808. <value>E</value>
  809. </item>
  810. <item>
  811. <label>참조</label>
  812. <value>R</value>
  813. </item>
  814. <item>
  815. <label>질의</label>
  816. <value>Q</value>
  817. </item>
  818. </choices>
  819. </col>
  820. <col ref="inflag" style="text-align:right; "/>
  821. <col ref="aoflag" style="text-align:right; "/>
  822. <col ref="valseq"/>
  823. <col ref="val" style="text-align:center; "/>
  824. <col ref="valnm"/>
  825. <col ref="invalnm" style="text-align:left; "/>
  826. <script type="javascript" ev:event="ondblclick">
  827. <![CDATA[
  828. if (!grd_rgst.isCell(event.target)) {
  829. return;
  830. }
  831. var itemseq = model.getValue("/root/send/rgst/termlist/terminfo[" + grd_rgst.row + "]/itemseq");
  832. if (itemseq == 44 || itemseq == 119) { // 팝업메시지 & 가셔야할곳
  833. model.setValue("/root/hidden/popup", model.getValue("/root/send/rgst/termlist/terminfo[" + grd_rgst.row + "]/valnm"));
  834. tar_popup.refresh();
  835. grp_popup.visible = true;
  836. }
  837. ]]>
  838. </script>
  839. </datagrid>
  840. <caption id="caption9" class="tit_2" style="left:625px; top:325px; width:75px; height:13px; ">제어 문항</caption>
  841. <button id="btn_rgst" class="btn4_letter2" style="left:1139px; top:738px; width:56px; height:22px; ">
  842. <caption>등록</caption>
  843. <script type="javascript" ev:event="DOMActivate">
  844. <![CDATA[
  845. if (instance1.selectNodes("/root/send/rgst/termlist/terminfo[termseq != '']").length < 1 &&
  846. model.getValue("/root/send/rgst/ctrldesc") == "" ) {
  847. messageBox("등록할 조건 내역이 없습니다.", "E999");
  848. return;
  849. }
  850. // 기본 항목 변경 내역 확인
  851. if (model.getValue("/root/send/rgst/ctrlseq") != "" &&
  852. ( model.getValue("/root/send/rgst/rsrvplce") != CURR_PLCE ||
  853. model.getValue("/root/send/rgst/suppdeptcd") != CURR_DEPT ||
  854. model.getValue("/root/send/rgst/excuroomcd") != CURR_ROOM ||
  855. model.getValue("/root/send/rgst/excucd") != CURR_CODE )) {
  856. if (messageBox("기본 항목이 변경되었습니다.\n새로운 제어문으로 등록하시겠습니까?", "Q999") != 6) {
  857. return;
  858. }
  859. model.setValue("/root/send/rgst/ctrlseq", "");
  860. }
  861. var prevRow = 0
  862. var prevBottomRow = grd_ctrl.bottomRow;
  863. if (model.getValue("/root/send/rgst/ctrlseq") != "") { // 수정하는 경우
  864. prevRow = grd_ctrl.row;
  865. }
  866. submit("TXPEA00203");
  867. fClearValues();
  868. fSearchTerms();
  869. if (prevRow > 0) {
  870. grd_ctrl.row = prevRow;
  871. grd_ctrl.bottomRow = prevBottomRow;
  872. } else {
  873. var rsrvplce = model.getValue("/root/send/rgst/rsrvplce");
  874. var suppdeptcd = model.getValue("/root/send/rgst/suppdeptcd");
  875. var excuroomcd = model.getValue("/root/send/rgst/excuroomcd");
  876. var excucd = model.getValue("/root/send/rgst/excucd");
  877. var ctrlseq = model.getValue("/root/temp/rslt/ctrlseq");
  878. var cnt = instance1.selectNodes("/root/main/ctrllist/ctrlinfo").length;
  879. for (var i = 1; i <= cnt; i++) {
  880. if (rsrvplce == model.getValue("/root/main/ctrllist/ctrlinfo[" + i + "]/rsrvplce") &&
  881. suppdeptcd == model.getValue("/root/main/ctrllist/ctrlinfo[" + i + "]/suppdeptcd") &&
  882. excuroomcd == model.getValue("/root/main/ctrllist/ctrlinfo[" + i + "]/excuroomcd") &&
  883. excucd == model.getValue("/root/main/ctrllist/ctrlinfo[" + i + "]/excucd") &&
  884. ctrlseq == model.getValue("/root/main/ctrllist/ctrlinfo[" + i + "]/ctrlseq")) {
  885. grd_ctrl.row = i;
  886. grd_ctrl.bottomRow = i;
  887. break;
  888. }
  889. }
  890. }
  891. ]]>
  892. </script>
  893. </button>
  894. <button id="btn_itemmng" class="btn3_letter6" visibility="hidden" style="left:1033px; top:738px; width:104px; height:22px; ">
  895. <caption>제어항목관리</caption>
  896. <script type="javascript" ev:event="DOMActivate">
  897. <![CDATA[
  898. open("../../../pam/pamexcuweb/xrw/SPPEA00201_검사예약정보항목관리.xrw", "", "", "" ,"", "", "");
  899. ]]>
  900. </script>
  901. </button>
  902. <button id="btn_easyrgst" class="btn3_letter4" visibility="hidden" style="left:951px; top:738px; width:80px; height:22px; ">
  903. <caption>간편등록</caption>
  904. <script type="javascript" ev:event="DOMActivate">
  905. <![CDATA[
  906. open("SPPEA00203", "");
  907. ]]>
  908. </script>
  909. </button>
  910. <button id="btn_delterm" class="btn2_letter2" style="left:1088px; top:65px; width:42px; height:19px; ">
  911. <caption>삭제</caption>
  912. <script type="javascript" ev:event="DOMActivate">
  913. <![CDATA[
  914. var row = grd_ctrl.row;
  915. if (row < 1) {
  916. return;
  917. }
  918. if (messageBox("선택된 기본항목에 해당하는 모든 제어문이 삭제됩니다.\n삭제하시겠습니까?", "Q999") != 6) {
  919. return;
  920. }
  921. model.setValue("/root/send/term/rsrvplce", model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/rsrvplce"));
  922. model.setValue("/root/send/term/suppdeptcd", model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/suppdeptcd"));
  923. model.setValue("/root/send/term/excuroomcd", model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/excuroomcd"));
  924. model.setValue("/root/send/term/excucd", model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/excucd"));
  925. model.setValue("/root/send/term/ctrlseq", model.getValue("/root/main/ctrllist/ctrlinfo[" + row + "]/ctrlseq"));
  926. submit("TXPEA00205");
  927. fSearchTerms();
  928. ]]>
  929. </script>
  930. </button>
  931. <button id="btn_newrgst" class="btn2_letter4" style="left:551px; top:320px; width:64px; height:19px; ">
  932. <caption>신규등록</caption>
  933. <script type="javascript" ev:event="DOMActivate">
  934. <![CDATA[
  935. fSetRgstStatus(true);
  936. fClearValues();
  937. CURR_PLCE = "";
  938. CURR_DEPT = "";
  939. CURR_ROOM = "";
  940. CURR_CODE = "";
  941. model.setValue("/root/send/rgst/ctrlseq", "");
  942. model.setValue("/root/send/rgst/ctrldesc", "");
  943. tar_rgstdesc.refresh();
  944. model.resetInstanceNode("/root/send/rgst/termlist/terminfo");
  945. grd_rgst.refresh();
  946. grd_ctrl.focusColor = "#ece1ec";
  947. grd_ctrl.rebuildStyle();
  948. ]]>
  949. </script>
  950. </button>
  951. <button id="btn_delrgst" class="btn2_letter2" style="left:1153px; top:320px; width:42px; height:19px; ">
  952. <caption>삭제</caption>
  953. <script type="javascript" ev:event="DOMActivate">
  954. <![CDATA[
  955. fMoveTerm(0);
  956. ]]>
  957. </script>
  958. </button>
  959. <button id="btn_up" style="left:1099px; top:320px; width:26px; height:19px; background-image:../../../com/commonweb/images/btn_send_up.gif; ">
  960. <caption/>
  961. <script type="javascript" ev:event="DOMActivate">
  962. <![CDATA[
  963. if (grd_rgst.selectedRows > 1) {
  964. messageBox("행 이동은 단일 행 선택시만 가능합니다.", "E999");
  965. return;
  966. }
  967. fMoveTerm(-1);
  968. ]]>
  969. </script>
  970. </button>
  971. <button id="btn_down" style="left:1126px; top:320px; width:26px; height:19px; background-image:../../../com/commonweb/images/btn_send_down.gif; ">
  972. <caption/>
  973. <script type="javascript" ev:event="DOMActivate">
  974. <![CDATA[
  975. if (grd_rgst.selectedRows > 1) {
  976. messageBox("행 이동은 단일 행 선택시만 가능합니다.", "E999");
  977. return;
  978. }
  979. fMoveTerm(1);
  980. ]]>
  981. </script>
  982. </button>
  983. <caption id="caption4" class="cell_1" style="left:625px; top:630px; width:58px; height:105px; text-align:left; ">제어설명</caption>
  984. <textarea id="tar_rgstdesc" ref="/root/send/rgst/ctrldesc" scroll="autovscroll" maxbyte="4000" style="left:684px; top:630px; width:510px; height:105px; padding:5; "/>
  985. <caption id="caption14" class="tit_2" style="left:0px; top:325px; width:142px; height:13px; font-weight:bold; ">
  986. <![CDATA[제어문 등록 & 수정]]>
  987. </caption>
  988. <group id="group2" style="left:0px; top:392px; width:615px; height:368px; background-color:#fffbf2; border-color:#ffd799; border-style:solid; ">
  989. <caption id="cap_valnm" ref="/root/temp/term/valnm" style="left:209px; top:337px; width:275px; height:20px; text-align:center; background-color:#ffffa0; border-color:#999999; border-style:solid; "/>
  990. <group id="grp_qry" style="left:409px; top:179px; width:195px; height:150px; background-color:#fffbf2; border-color:#c0c0c0; border-style:solid; ">
  991. <select id="chk_qry" ref="/root/hidden/valtype/qryyn" disabled="true" overflow="visible" appearance="full" style="left:5px; top:5px; width:70px; height:20px; border-style:none; ">
  992. <choices>
  993. <item>
  994. <label>질의 항목</label>
  995. <value>Y</value>
  996. </item>
  997. </choices>
  998. <script type="javascript" ev:event="xforms-value-changed">
  999. <![CDATA[
  1000. fSetTypeChk("Q", chk_qry.value);
  1001. ]]>
  1002. </script>
  1003. </select>
  1004. <datagrid id="grd_qry" nodeset="/root/temp/qrylist/qryinfo" visibility="hidden" allowselection="false" autoresize="true" backcoloralternate="transparent" caption="acqid^구분^itemseq^itemid^항목" colsep="^" colwidth="0, 80, 0, 0, 100" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:4px; top:25px; width:185px; height:119px; ">
  1005. <col ref="acqid" visibility="hidden"/>
  1006. <col ref="acqnm"/>
  1007. <col ref="itemseq" visibility="hidden"/>
  1008. <col ref="itemid" visibility="hidden"/>
  1009. <col ref="itemnm"/>
  1010. <script type="javascript" ev:event="onclick">
  1011. <![CDATA[
  1012. if (!grd_qry.isCell(event.target)) {
  1013. return;
  1014. }
  1015. model.setValue("/root/temp/term/valseq", grd_qry.valueMatrix(grd_qry.row, grd_qry.colRef("itemseq")));
  1016. model.setValue("/root/temp/term/val", grd_qry.valueMatrix(grd_qry.row, grd_qry.colRef("itemid")));
  1017. model.setValue("/root/temp/term/valnm", grd_qry.valueMatrix(grd_qry.row, grd_qry.colRef("itemnm")));
  1018. cap_valnm.hint = model.getValue("/root/temp/term/valnm");
  1019. cap_valnm.refresh();
  1020. model.setValue("/root/temp/addval", "");
  1021. ipt_addval.refresh();
  1022. ]]>
  1023. </script>
  1024. </datagrid>
  1025. </group>
  1026. <group id="grp_drct" style="left:209px; top:29px; width:195px; height:50px; background-color:#fffbf2; border-color:#c0c0c0; border-style:solid; ">
  1027. <select id="chk_drct" ref="/root/hidden/valtype/drctyn" disabled="true" overflow="visible" appearance="full" style="left:5px; top:5px; width:75px; height:20px; border-style:none; ">
  1028. <choices>
  1029. <item>
  1030. <label>직접 입력</label>
  1031. <value>Y</value>
  1032. </item>
  1033. </choices>
  1034. <script type="javascript" ev:event="xforms-value-changed">
  1035. <![CDATA[
  1036. fSetTypeChk("D", chk_drct.value);
  1037. ]]>
  1038. </script>
  1039. </select>
  1040. <input id="ipt_drct" ref="/root/temp/iptval/valnm" visibility="hidden" style="left:5px; top:25px; width:184px; height:19px; ">
  1041. <script type="javascript" ev:event="onkeyup">
  1042. <![CDATA[
  1043. if (event.keyCode == "13") {
  1044. model.setValue("/root/temp/iptval/valnm", ipt_drct.currentText);
  1045. ipt_drct.refresh();
  1046. btn_drctipt.dispatch("DOMActivate");
  1047. }
  1048. ]]>
  1049. </script>
  1050. </input>
  1051. <button id="btn_drctipt" class="btn2_letter2" visibility="hidden" style="left:147px; top:4px; width:42px; height:19px; ">
  1052. <caption>입력</caption>
  1053. <script type="javascript" ev:event="DOMActivate">
  1054. <![CDATA[
  1055. var val = model.getValue("/root/temp/iptval/valnm");
  1056. model.setValue("/root/temp/iptval/val", val);
  1057. model.setValue("/root/temp/term/val", val);
  1058. model.setValue("/root/temp/term/valnm", val);
  1059. model.setValue("/root/temp/iptval/val", "");
  1060. model.setValue("/root/temp/iptval/valnm", "");
  1061. ipt_drct.hint = "";
  1062. ipt_drct.refresh();
  1063. cap_valnm.hint = model.getValue("/root/temp/term/valnm");
  1064. cap_valnm.refresh();
  1065. model.setValue("/root/temp/addval", "");
  1066. ipt_addval.refresh();
  1067. grp_drctex.visible = false;
  1068. ]]>
  1069. </script>
  1070. </button>
  1071. <button id="btn_drctex" class="btn2_letter2" visibility="hidden" style="left:80px; top:4px; width:42px; height:19px; ">
  1072. <caption>확장</caption>
  1073. <script type="javascript" ev:event="DOMActivate">
  1074. <![CDATA[
  1075. grp_drctex.visible = true;
  1076. ]]>
  1077. </script>
  1078. </button>
  1079. </group>
  1080. <datagrid id="grd_item" allowselection="false" backcoloralternate="transparent" colsep="^" colwidth="0, 0, 0, 0, 0, 0, 0, 0, 100" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:9px; top:84px; width:115px; height:245px; ">
  1081. <col ref="itemtype" visibility="hidden"/>
  1082. <col ref="itemseq" visibility="hidden"/>
  1083. <col ref="itemid" visibility="hidden"/>
  1084. <col ref="valtype" visibility="hidden"/>
  1085. <col ref="acqid" visibility="hidden"/>
  1086. <col ref="addflag" visibility="hidden"/>
  1087. <col ref="acqidarr" visibility="hidden"/>
  1088. <col ref="acqnmarr" visibility="hidden"/>
  1089. <col ref="itemnm"/>
  1090. <script type="javascript" ev:event="onclick">
  1091. <![CDATA[
  1092. if (!grd_item.isCell(event.target)) {
  1093. return;
  1094. }
  1095. // 조건 값 초기화
  1096. model.resetInstanceNode("/root/temp/qrylist/qryinfo");
  1097. grd_qry.refresh();
  1098. model.setValue("/root/temp/addval", "");
  1099. ipt_addval.refresh();
  1100. model.setValue("/root/temp/iptval/val", "");
  1101. model.setValue("/root/temp/iptval/valnm", "");
  1102. ipt_drct.refresh();
  1103. model.setValue("/root/temp/enumval/val", "");
  1104. model.setValue("/root/temp/enumval/valnm", "");
  1105. model.resetInstanceNode("/root/temp/enumlist/enuminfo");
  1106. rdo_enum.refresh();
  1107. chk_enumarr.refresh();
  1108. model.resetInstanceNode("/root/temp/srchlist/srchinfo");
  1109. grd_srch.refresh();
  1110. model.resetInstanceNode("/root/temp/term");
  1111. cap_opnm.refresh();
  1112. cap_valnm.refresh();
  1113. var row = grd_item.row;
  1114. model.setValue("/root/temp/term/itemtype", grd_item.valueMatrix(row, grd_item.colRef("itemtype")));
  1115. model.setValue("/root/temp/term/itemseq", grd_item.valueMatrix(row, grd_item.colRef("itemseq")));
  1116. model.setValue("/root/temp/term/itemnm", grd_item.valueMatrix(row, grd_item.colRef("itemnm")));
  1117. model.setValue("/root/temp/term/acqid", grd_item.valueMatrix(row, grd_item.colRef("acqid")));
  1118. cap_item.refresh();
  1119. // 값 형식 설정
  1120. var valtype = grd_item.valueMatrix(row, grd_item.colRef("valtype"));
  1121. fSetValType(valtype);
  1122. // 가산 여부 저장
  1123. model.setValue("/root/hidden/addflag", grd_item.valueMatrix(row, grd_item.colRef("addflag")));
  1124. // 참조 및 열거형 값목록 세팅
  1125. model.resetInstanceNode("/root/temp/qrylist/qryinfo");
  1126. model.resetInstanceNode("/root/temp/enumlist/enuminfo");
  1127. var cnt = instance1.selectNodes("/root/main/itemlist/iteminfo").length;
  1128. var acqidarr = grd_item.valueMatrix(row, grd_item.colRef("acqidarr")).split(",");
  1129. var acqnmarr = grd_item.valueMatrix(row, grd_item.colRef("acqnmarr")).split(",");
  1130. var eidx = 1;
  1131. var qidx = 1;
  1132. for (var i = 0; i < acqidarr.length; i++) {
  1133. for (var j = 1; j <= cnt; j++) {
  1134. var acqid = acqidarr[i];
  1135. var acqnm = acqnmarr[i];
  1136. if (model.getValue("/root/main/itemlist/iteminfo[" + j + "]/acqid") == acqid) {
  1137. var path = "/root/main/itemlist/iteminfo[" + j + "]/";
  1138. var itemtype = model.getValue(path + "itemtype");
  1139. if (itemtype == "E") {
  1140. model.makeValue("/root/temp/enumlist/enuminfo[" + eidx + "]/itemseq", model.getValue(path + "itemseq"));
  1141. model.makeValue("/root/temp/enumlist/enuminfo[" + eidx + "]/itemnm", model.getValue(path + "itemnm"));
  1142. eidx++;
  1143. } else if (itemtype == "Q") {
  1144. model.makeValue("/root/temp/qrylist/qryinfo[" + qidx + "]/acqid", acqid);
  1145. model.makeValue("/root/temp/qrylist/qryinfo[" + qidx + "]/acqnm", acqnm);
  1146. model.makeValue("/root/temp/qrylist/qryinfo[" + qidx + "]/itemseq", model.getValue(path + "itemseq"));
  1147. model.makeValue("/root/temp/qrylist/qryinfo[" + qidx + "]/itemid", model.getValue(path + "itemid"));
  1148. model.makeValue("/root/temp/qrylist/qryinfo[" + qidx + "]/itemnm", model.getValue(path + "itemnm"));
  1149. qidx++;
  1150. }
  1151. }
  1152. }
  1153. }
  1154. grd_qry.refresh();
  1155. rdo_enum.refresh();
  1156. chk_enumarr.refresh();
  1157. // 첫번째 연산 항목 선택
  1158. grd_opcode.row = 0;
  1159. model.setValue("/root/temp/term/opcode", grd_opcode.valueMatrix(0, grd_opcode.colRef("cd")));
  1160. model.setValue("/root/temp/term/opnm", grd_opcode.valueMatrix(0, grd_opcode.colRef("nm")));
  1161. cap_opnm.refresh();
  1162. ]]>
  1163. </script>
  1164. </datagrid>
  1165. <caption id="cap_opnm" ref="/root/temp/term/opnm" style="left:134px; top:337px; width:65px; height:20px; text-align:center; background-color:#ffffa0; border-color:#999999; border-style:solid; "/>
  1166. <caption id="cap_item" ref="/root/temp/term/itemnm" style="left:9px; top:337px; width:115px; height:20px; text-align:center; background-color:#ffffa0; border-color:#999999; border-style:solid; "/>
  1167. <datagrid id="grd_opcode" allowselection="false" backcoloralternate="transparent" colsep="^" colwidth="0, 50" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:134px; top:29px; width:65px; height:300px; ">
  1168. <col ref="cd" visibility="hidden"/>
  1169. <col ref="nm" style="text-align:center; "/>
  1170. <script type="javascript" ev:event="onclick">
  1171. <![CDATA[
  1172. if (!grd_opcode.isCell(event.target)) {
  1173. return;
  1174. }
  1175. var valtype = grd_item.valueMatrix(grd_item.row, grd_item.colRef("valtype"))
  1176. var opcode = grd_opcode.valueMatrix(grd_opcode.row, grd_opcode.colRef("cd"));
  1177. model.setValue("/root/temp/term/opcode", opcode);
  1178. model.setValue("/root/temp/term/opnm", grd_opcode.valueMatrix(grd_opcode.row, grd_opcode.colRef("nm")));
  1179. cap_opnm.refresh();
  1180. // 열거형 타입이 있는 경우, 연산자에 따라 Radio, Check 변경
  1181. if (valtype.indexOf("E") >= 0) {
  1182. var chkyn = model.getValue("/root/hidden/valtype/enumyn");
  1183. if (opcode == "IN" || opcode == "NI") {
  1184. chk_enumarr.visible = chkyn == "Y" ? true : false;
  1185. rdo_enum.visible = false;
  1186. } else {
  1187. var val = model.getValue("/root/temp/enumval/val");
  1188. if (val.length > 0) {
  1189. val = val.split(" ")[0];
  1190. var valnm = model.getValue("/root/main/itemlist/iteminfo[itemseq = '" + val + "']/itemnm");
  1191. model.setValue("/root/temp/enumval/val", val);
  1192. model.setValue("/root/temp/enumval/valnm", valnm);
  1193. rdo_enum.refresh();
  1194. chk_enumarr.refresh();
  1195. model.setValue("/root/temp/term/val", val);
  1196. model.setValue("/root/temp/term/valnm", valnm);
  1197. cap_valnm.refresh();
  1198. }
  1199. chk_enumarr.visible = false;
  1200. rdo_enum.visible = chkyn == "Y" ? true : false;
  1201. }
  1202. } else {
  1203. }
  1204. ]]>
  1205. </script>
  1206. </datagrid>
  1207. <group id="grp_enum" style="left:409px; top:29px; width:195px; height:145px; background-color:#fffbf2; border-color:#c0c0c0; border-style:solid; ">
  1208. <select id="chk_enum" ref="/root/hidden/valtype/enumyn" disabled="true" overflow="visible" appearance="full" style="left:5px; top:5px; width:70px; height:20px; border-style:none; ">
  1209. <choices>
  1210. <item>
  1211. <label>열거 항목</label>
  1212. <value>Y</value>
  1213. </item>
  1214. </choices>
  1215. <script type="javascript" ev:event="xforms-value-changed">
  1216. <![CDATA[
  1217. fSetTypeChk("E", chk_enum.value);
  1218. ]]>
  1219. </script>
  1220. </select>
  1221. <select1 id="rdo_enum" ref="/root/temp/enumval/val" visibility="hidden" appearance="full" cols="1" rows="100" vcellspacing="5" overflow="scroll" style="left:9px; top:25px; width:175px; height:114px; ">
  1222. <choices>
  1223. <itemset nodeset="/root/temp/enumlist/enuminfo">
  1224. <label ref="itemnm"/>
  1225. <value ref="itemseq"/>
  1226. </itemset>
  1227. </choices>
  1228. <script type="javascript" ev:event="onclick">
  1229. <![CDATA[
  1230. var itemid = model.getValue("/root/main/itemlist/iteminfo[itemseq = '" + rdo_enum.value + "']/itemid");
  1231. model.setValue("/root/temp/term/valseq", rdo_enum.value);
  1232. model.setValue("/root/temp/term/val", itemid);
  1233. model.setValue("/root/temp/term/valnm", rdo_enum.label);
  1234. cap_valnm.hint = model.getValue("/root/temp/term/valnm");
  1235. cap_valnm.refresh();
  1236. model.setValue("/root/temp/addval", "");
  1237. ipt_addval.refresh();
  1238. ]]>
  1239. </script>
  1240. </select1>
  1241. <select id="chk_enumarr" ref="/root/temp/enumval/val" visibility="hidden" overflow="scroll" appearance="full" cols="1" rows="100" vcellspacing="5" style="left:9px; top:79px; width:175px; height:60px; border-style:none; ">
  1242. <choices>
  1243. <itemset nodeset="/root/temp/enumlist/enuminfo">
  1244. <label ref="itemnm"/>
  1245. <value ref="itemseq"/>
  1246. </itemset>
  1247. </choices>
  1248. <script type="javascript" ev:event="onclick">
  1249. <![CDATA[
  1250. var seqarr = model.getValue("/root/temp/enumval/val").split(" ");
  1251. var valseq = "";
  1252. var val = "";
  1253. var valnm = "";
  1254. for (var i = 0; i < seqarr.length; i++) {
  1255. valseq += seqarr[i];
  1256. val += model.getValue("/root/main/itemlist/iteminfo[itemseq = '" + seqarr[i] + "']/itemid");
  1257. valnm += model.getValue("/root/main/itemlist/iteminfo[itemseq = '" + seqarr[i] + "']/itemnm");
  1258. if (i < seqarr.length - 1) {
  1259. valseq += ",";
  1260. val += ",";
  1261. valnm += ",";
  1262. }
  1263. }
  1264. model.setValue("/root/temp/term/valseq", valseq);
  1265. model.setValue("/root/temp/term/val", val);
  1266. model.setValue("/root/temp/term/valnm", valnm);
  1267. cap_valnm.hint = model.getValue("/root/temp/term/valnm");
  1268. cap_valnm.refresh();
  1269. model.setValue("/root/temp/addval", "");
  1270. ipt_addval.refresh();
  1271. ]]>
  1272. </script>
  1273. </select>
  1274. </group>
  1275. <caption id="caption5" class="tit_2" style="left:134px; top:9px; width:51px; height:13px; ">연산</caption>
  1276. <caption id="caption6" class="tit_2" style="left:209px; top:9px; width:39px; height:13px; ">값</caption>
  1277. <caption id="caption16" class="tit_2" style="left:9px; top:64px; width:74px; height:13px; ">항목</caption>
  1278. <caption id="cap_grid" class="tit_2" style="left:9px; top:9px; width:49px; height:13px; ">구분</caption>
  1279. <button id="btn_add" class="btn2_letter2" style="left:562px; top:337px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
  1280. <caption>추가</caption>
  1281. <script type="javascript" ev:event="DOMActivate">
  1282. <![CDATA[
  1283. if (model.getValue("/root/temp/term/itemseq") == "") {
  1284. messageBox("항목이 설정되지 않았습니다.", "E999");
  1285. return;
  1286. }
  1287. if (model.getValue("/root/temp/term/itemtype") != "C") {
  1288. if ( model.getValue("/root/temp/term/opcode") == "") {
  1289. messageBox("연산자가 설정되지 않았습니다.", "E999");
  1290. return;
  1291. }
  1292. if (model.getValue("/root/temp/term/valnm") == "") {
  1293. messageBox("값이 설정되지 않았습니다.", "E999");
  1294. return;
  1295. }
  1296. }
  1297. var idx = instance1.selectNodes("/root/send/rgst/termlist/terminfo[termseq != '']").length + 1;
  1298. var opcode = model.getValue("/root/temp/term/opcode");
  1299. var cnt = 0;
  1300. if (opcode == "IN" || opcode == "NI") {
  1301. var inflag = "";
  1302. var inflagdp = "";
  1303. var valtype = model.getValue("/root/temp/term/valtype");
  1304. if (valtype == "D") { // 직접
  1305. var val = model.getValue("/root/temp/term/val");
  1306. if (val.indexOf(",") > 0) {
  1307. var valarr = val.split(",");
  1308. for (var i = 0; i < valarr.length; i++) {
  1309. if (i == 0) {
  1310. inflag = "B";
  1311. inflagdp = "┌ ";
  1312. } else if (i == valarr.length - 1) {
  1313. inflag = "E";
  1314. inflagdp = "└ ";
  1315. } else {
  1316. inflag = "I";
  1317. inflagdp = "│ ";
  1318. }
  1319. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/ctrlseq", model.getValue("/root/temp/term/ctrlseq"));
  1320. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/termseq", idx);
  1321. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemtype", model.getValue("/root/temp/term/itemtype"));
  1322. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemseq", model.getValue("/root/temp/term/itemseq"));
  1323. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemnm", model.getValue("/root/temp/term/itemnm"));
  1324. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/opcode", opcode);
  1325. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valtype", model.getValue("/root/temp/term/valtype"));
  1326. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valseq", "");
  1327. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/val", valarr[i]);
  1328. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valnm", valarr[i]);
  1329. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/invalnm", inflagdp + valarr[i]);
  1330. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/inflag", inflag);
  1331. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/aoflag", "O");
  1332. idx++;
  1333. }
  1334. }
  1335. } else if (valtype == "E") { // 열거
  1336. var valseqarr = model.getValue("/root/temp/term/valseq").split(",");
  1337. var valarr = model.getValue("/root/temp/term/val").split(",");
  1338. var valnmarr = model.getValue("/root/temp/term/valnm").split(",");
  1339. for (var i = 0; i < valseqarr.length; i++) {
  1340. if (i == 0) {
  1341. inflag = "B";
  1342. inflagdp = "┌ ";
  1343. } else if (i == valseqarr.length - 1) {
  1344. inflag = "E";
  1345. inflagdp = "└ ";
  1346. } else {
  1347. inflag = "I";
  1348. inflagdp = "│ ";
  1349. }
  1350. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/ctrlseq", model.getValue("/root/temp/term/ctrlseq"));
  1351. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/termseq", idx);
  1352. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemtype", model.getValue("/root/temp/term/itemtype"));
  1353. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemseq", model.getValue("/root/temp/term/itemseq"));
  1354. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemnm", model.getValue("/root/temp/term/itemnm"));
  1355. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/opcode", opcode);
  1356. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valtype", model.getValue("/root/temp/term/valtype"));
  1357. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valseq", valseqarr[i]);
  1358. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/val", valarr[i]);
  1359. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valnm", valnmarr[i]);
  1360. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/invalnm", inflagdp + valnmarr[i]);
  1361. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/inflag", inflag);
  1362. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/aoflag", "O");
  1363. idx++;
  1364. }
  1365. } else if (valtype == "S") { // 조회
  1366. cnt = instance1.selectNodes("/root/temp/srchlist/srchinfo").length;
  1367. // 이내, 혹은 이외 이지만 건수가 1개밖에 없을 경우, 일치 혹은 불일치로 변경
  1368. if (cnt == 1) {
  1369. if (opcode == "IN") {
  1370. opcode = "EQ";
  1371. } else if (opcode == "NI") {
  1372. opcode = "NE";
  1373. }
  1374. }
  1375. for (var i = 1; i <= cnt; i++) {
  1376. if (cnt > 1 && i == 1) {
  1377. inflag = "B";
  1378. inflagdp = "┌ ";
  1379. } else if (cnt > 1 && i == cnt) {
  1380. inflag = "E";
  1381. inflagdp = "└ ";
  1382. } else {
  1383. inflag = "I";
  1384. inflagdp = "│ ";
  1385. }
  1386. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/ctrlseq", model.getValue("/root/temp/term/ctrlseq"));
  1387. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/termseq", idx);
  1388. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemtype", model.getValue("/root/temp/term/itemtype"));
  1389. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemseq", model.getValue("/root/temp/term/itemseq"));
  1390. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemnm", model.getValue("/root/temp/term/itemnm"));
  1391. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/opcode", opcode);
  1392. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valtype", model.getValue("/root/temp/term/valtype"));
  1393. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valseq", "");
  1394. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/val", model.getValue("/root/temp/srchlist/srchinfo[" + i + "]/val"));
  1395. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valnm", model.getValue("/root/temp/srchlist/srchinfo[" + i + "]/valnm"));
  1396. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/invalnm", inflagdp + model.getValue("/root/temp/srchlist/srchinfo[" + i + "]/valnm"));
  1397. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/inflag", inflag);
  1398. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/aoflag", "O");
  1399. idx++;
  1400. }
  1401. }
  1402. } else {
  1403. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/ctrlseq", model.getValue("/root/temp/term/ctrlseq"));
  1404. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/termseq", idx);
  1405. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemtype", model.getValue("/root/temp/term/itemtype"));
  1406. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemseq", model.getValue("/root/temp/term/itemseq"));
  1407. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/itemnm", model.getValue("/root/temp/term/itemnm"));
  1408. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/opcode", opcode);
  1409. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valtype", model.getValue("/root/temp/term/valtype"));
  1410. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valseq", model.getValue("/root/temp/term/valseq"));
  1411. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/val", model.getValue("/root/temp/term/val"));
  1412. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/valnm", model.getValue("/root/temp/term/valnm"));
  1413. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/invalnm", model.getValue("/root/temp/term/valnm"));
  1414. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/inflag", "");
  1415. model.makeValue("/root/send/rgst/termlist/terminfo[" + idx + "]/aoflag", "");
  1416. }
  1417. grd_rgst.refresh();
  1418. cnt = instance1.selectNodes("/root/send/rgst/termlist/terminfo").length;
  1419. for (var i = 1; i <= cnt; i++) {
  1420. grd_rgst.tooltipText(i, grd_rgst.colRef("invalnm")) = model.getValue("/root/send/rgst/termlist/terminfo[" + i + "]/valnm");
  1421. }
  1422. grd_rgst.row = grd_rgst.rows - 1;
  1423. grd_rgst.bottomRow = grd_rgst.rows - 1;
  1424. fClearValues();
  1425. ]]>
  1426. </script>
  1427. </button>
  1428. <select1 id="rdo_itemtype" ref="/root/temp/term/itemtype" appearance="full" cellspacing="5" cols="2" overflow="visible" style="left:9px; top:29px; width:100px; height:20px; border-style:none; ">
  1429. <choices>
  1430. <itemset nodeset="/root/init/itemtype/typeinfo">
  1431. <label ref="nm"/>
  1432. <value ref="cd"/>
  1433. </itemset>
  1434. </choices>
  1435. <script type="javascript" ev:event="xforms-value-changed">
  1436. <![CDATA[
  1437. var itemtype = model.getValue("/root/temp/term/itemtype");
  1438. grd_item.nodeset = "/root/main/itemlist/iteminfo[itemtype = '" + itemtype + "']";
  1439. // 항목 및 연산 코드 설정
  1440. model.setValue("/root/temp/term/opcode", "");
  1441. if (itemtype == "R") {
  1442. grd_opcode.nodeset = "/root/init/opcode/cdinfo";
  1443. } else {
  1444. grd_opcode.nodeset = "/";
  1445. }
  1446. // 값 형식 초기화
  1447. fSetValType("");
  1448. ]]>
  1449. </script>
  1450. </select1>
  1451. <group id="grp_srch" style="left:209px; top:84px; width:195px; height:185px; background-color:#fffbf2; border-color:#c0c0c0; border-style:solid; ">
  1452. <select id="chk_srch" ref="/root/hidden/valtype/srchyn" disabled="true" overflow="visible" appearance="full" style="left:5px; top:5px; width:70px; height:20px; border-style:none; ">
  1453. <choices>
  1454. <item>
  1455. <label>조회 입력</label>
  1456. <value>Y</value>
  1457. </item>
  1458. </choices>
  1459. <script type="javascript" ev:event="xforms-value-changed">
  1460. <![CDATA[
  1461. fSetTypeChk("S", chk_srch.value);
  1462. ]]>
  1463. </script>
  1464. </select>
  1465. <button id="btn_srch" class="icon_search" visibility="hidden" style="left:79px; top:6px; width:16px; height:16px; ">
  1466. <caption/>
  1467. <script type="javascript" ev:event="DOMActivate">
  1468. <![CDATA[
  1469. setParameter("SPPEA00202_srchcd", model.getValue("/root/temp/term/acqid"));
  1470. setParameter("SPPEA00202_opcode", model.getValue("/root/temp/term/opcode"));
  1471. setParameter("SPPEA00202_suppdeptcd", model.getValue("/root/send/rgst/suppdeptcd"));
  1472. modal("SPPEA00202");
  1473. grd_srch.refresh();
  1474. grd_srch.resizeCells();
  1475. var cnt = instance1.selectNodes("/root/temp/srchlist/srchinfo").length;
  1476. if (model.getValue("/root/temp/term/opcode") != "IN" &&
  1477. model.getValue("/root/temp/term/opcode") != "NI" &&
  1478. cnt > 1) {
  1479. messageBox("2개 이상의 조회 항목은 연산을 [이내], 혹은 [이외]로 지정해햐 합니다.", "E999");
  1480. return;
  1481. }
  1482. ]]>
  1483. </script>
  1484. </button>
  1485. <button id="btn_srchipt" class="btn2_letter2" visibility="hidden" style="left:147px; top:4px; width:42px; height:19px; ">
  1486. <caption>입력</caption>
  1487. <script type="javascript" ev:event="DOMActivate">
  1488. <![CDATA[
  1489. var cnt = instance1.selectNodes("/root/temp/srchlist/srchinfo").length;
  1490. if (cnt < 1) {
  1491. return;
  1492. }
  1493. if (model.getValue("/root/temp/term/opcode") != "IN" &&
  1494. model.getValue("/root/temp/term/opcode") != "NI" &&
  1495. cnt > 1) {
  1496. messageBox("2개 이상의 조회 항목은 연산을 [이내], 혹은 [이외]로 지정해햐 합니다.", "E999");
  1497. return;
  1498. }
  1499. var valnm = model.getValue("/root/temp/srchlist/srchinfo/valnm");
  1500. if (cnt > 1) {
  1501. valnm += " 외 " + ( cnt - 1 ) + " 건";
  1502. }
  1503. model.setValue("/root/temp/term/val", model.getValue("/root/temp/srchlist/srchinfo/val"));
  1504. model.setValue("/root/temp/term/valnm", valnm);
  1505. cap_valnm.hint = model.getValue("/root/temp/term/valnm");
  1506. cap_valnm.refresh();
  1507. model.setValue("/root/temp/addval", "");
  1508. ipt_addval.refresh();
  1509. ]]>
  1510. </script>
  1511. </button>
  1512. <datagrid id="grd_srch" nodeset="/root/temp/srchlist/srchinfo" visibility="hidden" autoresize="true" colsep="^" colwidth="0, 150" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:4px; top:25px; width:184px; height:154px; ">
  1513. <col ref="val"/>
  1514. <col ref="valnm"/>
  1515. </datagrid>
  1516. <button id="btn_delsrch" class="btn2_letter2" visibility="hidden" style="left:104px; top:4px; width:42px; height:19px; ">
  1517. <caption>삭제</caption>
  1518. <script type="javascript" ev:event="DOMActivate">
  1519. <![CDATA[
  1520. grd_srch.deleteRow(grd_srch.row, true);
  1521. ]]>
  1522. </script>
  1523. </button>
  1524. </group>
  1525. <group id="grp_ref" style="left:209px; top:279px; width:195px; height:50px; background-color:#fffbf2; border-color:#c0c0c0; border-style:solid; ">
  1526. <select id="chk_ref" ref="/root/hidden/valtype/refyn" disabled="true" overflow="visible" appearance="full" style="left:5px; top:5px; width:70px; height:20px; border-style:none; ">
  1527. <choices>
  1528. <item>
  1529. <label>참조 항목</label>
  1530. <value>Y</value>
  1531. </item>
  1532. </choices>
  1533. <script type="javascript" ev:event="xforms-value-changed">
  1534. <![CDATA[
  1535. fSetTypeChk("R", chk_ref.value);
  1536. ]]>
  1537. </script>
  1538. </select>
  1539. <button id="btn_refipt" class="btn2_letter2" visibility="hidden" style="left:147px; top:4px; width:42px; height:19px; ">
  1540. <caption>입력</caption>
  1541. <script type="javascript" ev:event="DOMActivate">
  1542. <![CDATA[
  1543. model.setValue("/root/temp/term/val", model.getValue("/root/temp/refval/val"));
  1544. model.setValue("/root/temp/term/valnm", cmb_ref.label);
  1545. cap_valnm.hint = model.getValue("/root/temp/term/valnm");
  1546. cap_valnm.refresh();
  1547. model.setValue("/root/temp/addval", "");
  1548. ipt_addval.refresh();
  1549. ]]>
  1550. </script>
  1551. </button>
  1552. <select1 id="cmb_ref" ref="/root/temp/refval/val" visibility="hidden" appearance="minimal" style="left:5px; top:25px; width:184px; height:19px; ">
  1553. <choices>
  1554. <itemset nodeset="/root/main/itemlist/iteminfo[itemtype = 'R']">
  1555. <label ref="itemnm"/>
  1556. <value ref="itemid"/>
  1557. </itemset>
  1558. </choices>
  1559. </select1>
  1560. </group>
  1561. <caption id="cap_addval" style="left:489px; top:339px; width:25px; height:15px; ">+/-</caption>
  1562. <input id="ipt_addval" ref="/root/temp/addval" disabled="true" style="left:514px; top:337px; width:40px; height:19px; ">
  1563. <script type="javascript" ev:event="onkeyup">
  1564. <![CDATA[
  1565. if (event.keyCode == "13") {
  1566. if (model.getValue("/root/temp/addval") != "") {
  1567. messageBox("이미 가산 항목이 입력되었습니다.\n항목을 다시 선택한 후 입력해 주십시오.", "E999");
  1568. return;
  1569. }
  1570. var val = ipt_addval.currentText;
  1571. model.setValue("/root/temp/addval", val);
  1572. ipt_addval.refresh();
  1573. var iVal = parseInt(val);
  1574. if (String(iVal) == "NaN") {
  1575. messageBox("가산 값은 숫자만 입력할 수 있습니다.", "E999");
  1576. model.setValue("/root/temp/addval", "");
  1577. ipt_addval.refresh();
  1578. model.setFocus("ipt_addval");
  1579. return;
  1580. }
  1581. if (iVal >= 0) {
  1582. val = " +" + val;
  1583. } else {
  1584. val = " " + val;
  1585. }
  1586. model.setValue("/root/temp/term/val", model.getValue("/root/temp/term/val") + val);
  1587. model.setValue("/root/temp/term/valnm", model.getValue("/root/temp/term/valnm") + val);
  1588. cap_valnm.hint = model.getValue("/root/temp/term/valnm");
  1589. cap_valnm.refresh();
  1590. }
  1591. ]]>
  1592. </script>
  1593. </input>
  1594. </group>
  1595. <caption id="cap_status" style="left:504px; top:323px; width:31px; height:15px; font-weight:bold; text-align:left; vertical-align:middle; ">등록</caption>
  1596. <caption id="caption18" style="left:469px; top:323px; width:35px; height:15px; ">상태 :</caption>
  1597. <line id="line1" class="line_1" style="x1:0px; y1:85px; x2:1195px; y2:85px; "/>
  1598. <line id="line2" class="line_1" style="x1:625px; y1:340px; x2:1195px; y2:340px; "/>
  1599. <caption id="caption8" class="cell_1" style="left:625px; top:739px; width:58px; height:21px; text-align:left; ">적용기간</caption>
  1600. <caption id="caption11" style="left:774px; top:743px; width:15px; height:15px; text-align:center; ">~</caption>
  1601. <input id="ipt_fromdd" ref="/root/send/rgst/fromdd" inputtype="date" style="left:684px; top:740px; width:90px; height:19px; "/>
  1602. <input id="ipt_todd" ref="/root/send/rgst/todd" inputtype="date" style="left:788px; top:740px; width:90px; height:19px; "/>
  1603. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:20px; width:1195px; height:41px; background-color:#fffbf2; border-color:#ffd799; "/>
  1604. <caption id="caption35" class="search_name" style="left:5px; top:33px; width:76px; height:17px; ">예약처 :</caption>
  1605. <select1 id="cmb_rsrvplce" ref="/root/send/srch/rsrvplce" class="combo_search" navindex="1" appearance="minimal" style="left:83px; top:31px; width:55px; height:19px; ">
  1606. <choices>
  1607. <item>
  1608. <label>전체</label>
  1609. <value>A</value>
  1610. </item>
  1611. <item>
  1612. <label>통합</label>
  1613. <value>T</value>
  1614. </item>
  1615. <item>
  1616. <label>입원</label>
  1617. <value>I</value>
  1618. </item>
  1619. <item>
  1620. <label>외래</label>
  1621. <value>O</value>
  1622. </item>
  1623. <item>
  1624. <label>건진</label>
  1625. <value>S</value>
  1626. </item>
  1627. </choices>
  1628. </select1>
  1629. <caption id="caption1" class="search_name" style="left:150px; top:33px; width:86px; height:17px; ">수행부서 :</caption>
  1630. <select1 id="cmb_deptcd" ref="/root/send/srch/suppdeptcd" class="combo_search" navindex="2" appearance="minimal" style="left:241px; top:31px; width:120px; height:19px; ">
  1631. <choices>
  1632. <itemset nodeset="/root/init/srch/deptlist/deptinfo">
  1633. <label ref="deptnm"/>
  1634. <value ref="deptcd"/>
  1635. </itemset>
  1636. </choices>
  1637. <script type="javascript" ev:event="xforms-value-changed">
  1638. <![CDATA[
  1639. var deptcd = model.getValue("/root/send/srch/suppdeptcd");
  1640. cmb_roomcd.choices.itemset.attribute("nodeset") = "/root/init/srch/roomlist/roominfo[deptcd='" + deptcd + "' or roomcd='T']";
  1641. cmb_roomcd.refresh();
  1642. cmb_roomcd.select(0);
  1643. ]]>
  1644. </script>
  1645. </select1>
  1646. <caption id="caption2" class="search_name" style="left:376px; top:33px; width:74px; height:17px; ">검사실 :</caption>
  1647. <select1 id="cmb_roomcd" ref="/root/send/srch/excuroomcd" class="combo_search" navindex="3" appearance="minimal" style="left:454px; top:31px; width:170px; height:19px; ">
  1648. <choices>
  1649. <itemset nodeset="/root/init/srch/roomlist/roominfo">
  1650. <label ref="roomnm"/>
  1651. <value ref="roomcd"/>
  1652. </itemset>
  1653. </choices>
  1654. </select1>
  1655. <caption id="caption3" class="search_name" style="left:805px; top:33px; width:20px; height:17px; "/>
  1656. <button id="btn_search" class="btn1_letter2" navindex="6" style="left:1130px; top:30px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
  1657. <caption>조회</caption>
  1658. <script type="javascript" ev:event="DOMActivate">
  1659. <![CDATA[
  1660. fSearchTerms();
  1661. ]]>
  1662. </script>
  1663. </button>
  1664. <line id="line13" style="x1:1120px; y1:30px; x2:1120px; y2:55px; border-color:#FFD799; border-left-style:solid; "/>
  1665. <line id="line3" class="line_1" style="x1:0px; y1:340px; x2:615px; y2:340px; "/>
  1666. <caption id="caption12" style="left:0px; top:347px; width:80px; height:20px; text-align:center; background-color:#cce8ff; ">예약처</caption>
  1667. <select1 id="cmb_rgstplce" ref="/root/send/rgst/rsrvplce" appearance="minimal" style="left:0px; top:370px; width:80px; height:19px; background-color:#ffffa0; ">
  1668. <choices>
  1669. <item>
  1670. <label>전체</label>
  1671. <value>A</value>
  1672. </item>
  1673. <item>
  1674. <label>통합</label>
  1675. <value>T</value>
  1676. </item>
  1677. <item>
  1678. <label>입원</label>
  1679. <value>I</value>
  1680. </item>
  1681. <item>
  1682. <label>외래</label>
  1683. <value>O</value>
  1684. </item>
  1685. <item>
  1686. <label>건진</label>
  1687. <value>S</value>
  1688. </item>
  1689. </choices>
  1690. </select1>
  1691. <caption id="caption13" style="left:81px; top:347px; width:120px; height:20px; text-align:center; background-color:#cce8ff; ">수행부서</caption>
  1692. <select1 id="cmb_rgstdept" ref="/root/send/rgst/suppdeptcd" appearance="minimal" style="left:81px; top:370px; width:120px; height:19px; background-color:#ffffa0; ">
  1693. <choices>
  1694. <itemset nodeset="/root/init/srch/deptlist/deptinfo">
  1695. <label ref="deptnm"/>
  1696. <value ref="deptcd"/>
  1697. </itemset>
  1698. </choices>
  1699. <script type="javascript" ev:event="xforms-value-changed">
  1700. <![CDATA[
  1701. var deptcd = model.getValue("/root/send/rgst/suppdeptcd");
  1702. cmb_rgstroom.choices.itemset.attribute("nodeset") = "/root/init/srch/roomlist/roominfo[deptcd='" + deptcd + "' or roomcd='T']";
  1703. cmb_rgstroom.refresh();
  1704. cmb_rgstroom.select(0);
  1705. model.setValue("/root/send/srch/deptcd", model.getValue("/root/send/rgst/suppdeptcd"));
  1706. model.setValue("/root/send/srch/roomcd", "T");
  1707. submit("TRPEA00204", false);
  1708. addComboItem("cmb_rgstexcd", "전체", "T");
  1709. cmb_rgstexcd.select(0);
  1710. ]]>
  1711. </script>
  1712. </select1>
  1713. <caption id="caption15" style="left:202px; top:347px; width:120px; height:20px; text-align:center; background-color:#cce8ff; ">검사실</caption>
  1714. <select1 id="cmb_rgstroom" ref="/root/send/rgst/excuroomcd" appearance="minimal" style="left:202px; top:370px; width:120px; height:19px; background-color:#ffffa0; ">
  1715. <choices>
  1716. <itemset nodeset="/root/init/srch/roomlist/roominfo">
  1717. <label ref="roomnm"/>
  1718. <value ref="roomcd"/>
  1719. </itemset>
  1720. </choices>
  1721. </select1>
  1722. <caption id="caption17" style="left:323px; top:347px; width:292px; height:20px; text-align:center; background-color:#cce8ff; ">검사명</caption>
  1723. <select1 id="cmb_rgstexcd" ref="/root/send/rgst/excucd" appearance="minimal" style="left:323px; top:370px; width:292px; height:19px; background-color:#ffffa0; ">
  1724. <choices>
  1725. <itemset nodeset="/root/init/rgst/excdlist/excdinfo">
  1726. <label ref="excunm"/>
  1727. <value ref="excucd"/>
  1728. </itemset>
  1729. </choices>
  1730. <script type="javascript" ev:event="xforms-value-changed">
  1731. <![CDATA[
  1732. cmb_rgstexcd.hint = cmb_rgstexcd.label;
  1733. ]]>
  1734. </script>
  1735. </select1>
  1736. <button id="btn_expand" style="left:1061px; top:65px; width:26px; height:19px; background-image:../../../com/commonweb/images/btn_send_bottom.gif; ">
  1737. <caption/>
  1738. <script type="javascript" ev:event="DOMActivate">
  1739. <![CDATA[
  1740. if (btn_expand.attribute("background-image") == "../../../com/commonweb/images/btn_send_bottom.gif") {
  1741. grd_ctrl.attribute("height") = "670px";
  1742. btn_expand.attribute("background-image") = "../../../com/commonweb/images/btn_send_top.gif";
  1743. } else {
  1744. grd_ctrl.attribute("height") = "220px";
  1745. btn_expand.attribute("background-image") = "../../../com/commonweb/images/btn_send_bottom.gif";
  1746. }
  1747. ]]>
  1748. </script>
  1749. </button>
  1750. <line id="line4" class="line_3" style="x1:0px; y1:345px; x2:615px; y2:345px; "/>
  1751. <line id="line5" class="line_3" style="x1:0px; y1:390px; x2:615px; y2:390px; "/>
  1752. <line id="line6" class="line_3" style="x1:0px; y1:368px; x2:615px; y2:368px; "/>
  1753. <button id="btn_excel" class="btn2_letter4" style="left:1131px; top:65px; width:64px; height:19px; ">
  1754. <caption>엑셀저장</caption>
  1755. <script type="javascript" ev:event="DOMActivate">
  1756. <![CDATA[
  1757. var filename = window.fileDialog("save", ",", false, "검사 예약 제어 정보", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  1758. grd_ctrl.saveExcel(filename, "sheetname:제어 내역;colhiddenextend:true;rowhiddenextend:false;");
  1759. messageBox("엑셀 저장이 완료되었습니다.", "I999");
  1760. ]]>
  1761. </script>
  1762. </button>
  1763. <select1 id="radio1" ref="/root/hidden/aoflag" appearance="full" cellspacing="3" cols="2" overflow="visible" style="left:864px; top:322px; width:100px; height:15px; border-style:none; ">
  1764. <choices>
  1765. <item>
  1766. <label>그리고</label>
  1767. <value>A</value>
  1768. </item>
  1769. <item>
  1770. <label>또는</label>
  1771. <value>O</value>
  1772. </item>
  1773. </choices>
  1774. </select1>
  1775. <caption id="caption10" style="left:799px; top:323px; width:65px; height:15px; ">포괄 구분 :</caption>
  1776. <button id="btn_include" class="btn2_letter4" style="left:969px; top:320px; width:64px; height:19px; ">
  1777. <caption>포괄적용</caption>
  1778. <script type="javascript" ev:event="DOMActivate">
  1779. <![CDATA[
  1780. if (grd_rgst.selectedRows < 2) {
  1781. messageBox("포괄적용은 2개 이상의 행을 선택했을 때만 가능합니다.", "E999");
  1782. return;
  1783. }
  1784. var cnt = grd_rgst.selectedRows;
  1785. for (var i = 0; i < cnt; i++) {
  1786. var row = grd_rgst.selectedRow(i);
  1787. /*
  1788. var opcode = model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/opcode");
  1789. if (opcode == "IN" || opcode == "NI") {
  1790. messageBox("선택된 항목 중 이내/이외 항목이 있습니다.\n이내/이외 항목은 포괄 적용에 포함될 수 없습니다.", "E999");
  1791. return;
  1792. }
  1793. */
  1794. var itemtype = model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/itemtype");
  1795. if (itemtype == "C") {
  1796. messageBox("선택된 항목 중 제어항이 있습니다.\n제어항은 포괄 적용에 포함될 수 없습니다.", "E999");
  1797. return;
  1798. }
  1799. }
  1800. // 기존 포괄 항목 체크
  1801. var flag = true;
  1802. var isfirst = true;
  1803. var eqflag = true;
  1804. for (var i = 0; i < cnt; i++) {
  1805. var row = grd_rgst.selectedRow(i);
  1806. var curflag = model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/inflag").substr(0, 1);
  1807. if (curflag == "B") {
  1808. flag = false;
  1809. } else if (curflag == "E") {
  1810. if (isfirst) {
  1811. flag = false;
  1812. break;
  1813. } else {
  1814. flag = !flag;
  1815. }
  1816. }
  1817. isfirst = false;
  1818. if (( i == 0 && curflag != "B" ) || ( i == cnt - 1 && curflag != "E" ) ||
  1819. ( i > 0 && curflag == "B" ) || ( i < cnt - 1 && curflag == "E" )) {
  1820. eqflag = false;
  1821. }
  1822. }
  1823. if (!flag){
  1824. messageBox("다중 포괄은 기존 포괄을 감싸는 영역을 지정해야 합니다.", "E999");
  1825. return;
  1826. }
  1827. var inflag = "";
  1828. var inflagdp = "";
  1829. var invalnm = "";
  1830. for (var i = 0; i < cnt; i++) {
  1831. var row = grd_rgst.selectedRow(i);
  1832. var aoflag = model.getValue("/root/hidden/aoflag");
  1833. var aoflagdp = aoflag == "A" ? "&" : "";
  1834. var prevaoflag = model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/aoflag");
  1835. // 동일 영역 설정시 aoflag 만 변경함
  1836. if (eqflag) {
  1837. inflag = model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/inflag");
  1838. aoflag += prevaoflag.substr(1, prevaoflag.length - 1);
  1839. model.setValue("/root/send/rgst/termlist/terminfo[" + row + "]/aoflag", aoflag);
  1840. invalnm = fGetInFlagName(inflag, aoflag) + model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/valnm");
  1841. model.setValue("/root/send/rgst/termlist/terminfo[" + row + "]/invalnm", invalnm);
  1842. continue;
  1843. }
  1844. aoflag += prevaoflag;
  1845. model.setValue("/root/send/rgst/termlist/terminfo[" + row + "]/aoflag", aoflag);
  1846. if (i == 0) {
  1847. inflag = "B";
  1848. inflagdp = "┌" + aoflagdp;
  1849. } else if (i == cnt - 1) {
  1850. inflag = "E";
  1851. inflagdp = "└" + aoflagdp;
  1852. } else {
  1853. inflag = "I";
  1854. inflagdp = "│" + aoflagdp;
  1855. }
  1856. // 안에서 밖으로 감싸나감
  1857. inflag += model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/inflag");
  1858. model.setValue("/root/send/rgst/termlist/terminfo[" + row + "]/inflag", inflag);
  1859. invalnm = fGetInFlagName(inflag, aoflag) + model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/valnm");
  1860. model.setValue("/root/send/rgst/termlist/terminfo[" + row + "]/invalnm", invalnm);
  1861. }
  1862. grd_rgst.refresh();
  1863. cnt = instance1.selectNodes("/root/send/rgst/termlist/terminfo").length;
  1864. for (var i = 1; i <= cnt; i++) {
  1865. grd_rgst.tooltipText(i, grd_rgst.colRef("invalnm")) = model.getValue("/root/send/rgst/termlist/terminfo[" + i + "]/valnm");
  1866. }
  1867. ]]>
  1868. </script>
  1869. </button>
  1870. <button id="btn_cnclinclude" class="btn2_letter4" style="left:1034px; top:320px; width:64px; height:19px; ">
  1871. <caption>포괄해제</caption>
  1872. <script type="javascript" ev:event="DOMActivate">
  1873. <![CDATA[
  1874. var cnt = grd_rgst.selectedRows;
  1875. var flag = true;
  1876. for (var i = 0; i < cnt; i++) {
  1877. var row = grd_rgst.selectedRow(i);
  1878. var inflag = model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/inflag").substr(0, 1);
  1879. if (i == 0 && inflag != "B") {
  1880. flag = false;
  1881. break;
  1882. }
  1883. if (i == cnt - 1 && inflag != "E") {
  1884. flag = false;
  1885. break;
  1886. }
  1887. if (i > 0 && i < cnt - 1 && inflag != "I") {
  1888. flag = false;
  1889. break;
  1890. }
  1891. /*
  1892. var opcode = model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/opcode");
  1893. if (opcode == "IN" || opcode == "NI") {
  1894. flag = false;
  1895. break;
  1896. }
  1897. */
  1898. }
  1899. if (!flag) {
  1900. messageBox("포괄 해제할 항목을 정확히 선택해 주십시오.", "E999");
  1901. return;
  1902. }
  1903. for (var i = 0; i < cnt; i++) {
  1904. var row = grd_rgst.selectedRow(i);
  1905. var inflag = model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/inflag");
  1906. inflag = inflag.length == 1 ? "" : inflag.substr(1, inflag.length - 1);
  1907. model.setValue("/root/send/rgst/termlist/terminfo[" + row + "]/inflag", inflag);
  1908. var aoflag = model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/aoflag");
  1909. aoflag = aoflag.length == 1 ? "" : aoflag.substr(1, aoflag.length - 1);
  1910. model.setValue("/root/send/rgst/termlist/terminfo[" + row + "]/aoflag", aoflag);
  1911. var invalnm = fGetInFlagName(inflag, aoflag) + model.getValue("/root/send/rgst/termlist/terminfo[" + row + "]/valnm");
  1912. model.setValue("/root/send/rgst/termlist/terminfo[" + row + "]/invalnm", invalnm);
  1913. }
  1914. grd_rgst.refresh();
  1915. cnt = instance1.selectNodes("/root/send/rgst/termlist/terminfo").length;
  1916. for (var i = 1; i <= cnt; i++) {
  1917. grd_rgst.tooltipText(i, grd_rgst.colRef("invalnm")) = model.getValue("/root/send/rgst/termlist/terminfo[" + i + "]/valnm");
  1918. }
  1919. ]]>
  1920. </script>
  1921. </button>
  1922. <datagrid id="grd_ctrl" nodeset="/root/main/ctrllist/ctrlinfo" allowselection="false" autoresize="true" backcoloralternate="transparent" caption="예약처^수행부서^수행부서^검사실^검사실^검사코드^검사명^순번^항수^설명^제어^적용시작일^적용종료일" colsep="^" colwidth="60, 0, 120, 0, 120, 0, 200, 40, 40, 370, 40, 80, 80" explorerbar="sort" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:0px; top:90px; width:1195px; height:220px; ">
  1923. <col disabled="true" ref="rsrvplce" type="combo" style="text-align:center; ">
  1924. <choices>
  1925. <item>
  1926. <label>통합예약</label>
  1927. <value>T</value>
  1928. </item>
  1929. <item>
  1930. <label>병동</label>
  1931. <value>I</value>
  1932. </item>
  1933. <item>
  1934. <label>외래</label>
  1935. <value>O</value>
  1936. </item>
  1937. <item>
  1938. <label>전체</label>
  1939. <value>A</value>
  1940. </item>
  1941. </choices>
  1942. </col>
  1943. <col ref="suppdeptcd"/>
  1944. <col ref="suppdeptnm" style="text-align:center; "/>
  1945. <col ref="excuroomcd"/>
  1946. <col ref="excuroomnm" style="text-align:center; "/>
  1947. <col ref="excucd"/>
  1948. <col ref="excunm" style="text-align:center; "/>
  1949. <col ref="ctrlseq" style="text-align:center; "/>
  1950. <col ref="termcnt" style="text-align:center; "/>
  1951. <col ref="ctrldesc"/>
  1952. <col ref="ctrltype" style="text-align:center; "/>
  1953. <col ref="fromdd" format="yyyy-mm-dd" style="text-align:center; "/>
  1954. <col ref="todd" format="yyyy-mm-dd" style="text-align:center; "/>
  1955. <script type="javascript" ev:event="ondblclick">
  1956. <![CDATA[
  1957. if (!grd_ctrl.isCell(event.target)) {
  1958. return;
  1959. }
  1960. fSetTermInfo();
  1961. fSetRgstStatus(false);
  1962. ]]>
  1963. </script>
  1964. <script type="javascript" ev:event="onmousedown">
  1965. <![CDATA[
  1966. grd_ctrl.focusColor = "#ece1ec";
  1967. ]]>
  1968. </script>
  1969. <script type="javascript" ev:event="onaftersort">
  1970. <![CDATA[
  1971. grd_ctrl.gridToInstance();
  1972. grd_ctrl.resizeCells();
  1973. ]]>
  1974. </script>
  1975. </datagrid>
  1976. <caption id="caption19" class="search_name" style="left:638px; top:33px; width:61px; height:17px; ">제어 :</caption>
  1977. <select1 id="cmb_ctrl" ref="/root/send/srch/itemseq" class="combo_search" appearance="minimal" style="left:703px; top:31px; width:90px; height:19px; ">
  1978. <choices>
  1979. <itemset nodeset="/root/init/srch/ctrllist/ctrlinfo">
  1980. <label ref="itemnm"/>
  1981. <value ref="itemseq"/>
  1982. </itemset>
  1983. </choices>
  1984. </select1>
  1985. <input id="ipt_srch" ref="/root/send/srch/srchstr" class="input_search" style="left:920px; top:31px; width:190px; height:19px; ">
  1986. <script type="javascript" ev:event="onkeypress">
  1987. <![CDATA[
  1988. if(event.keyCode == "13") {
  1989. inputEnterKey("btn_search", "DOMActivate");
  1990. }
  1991. ]]>
  1992. </script>
  1993. </input>
  1994. <select1 id="cmb_srchflag" ref="/root/send/srch/srchflag" appearance="minimal" style="left:826px; top:31px; width:75px; height:19px; ">
  1995. <choices>
  1996. <item>
  1997. <label>설명</label>
  1998. <value>D</value>
  1999. </item>
  2000. <item>
  2001. <label>검사명</label>
  2002. <value>N</value>
  2003. </item>
  2004. <item>
  2005. <label>검사코드</label>
  2006. <value>C</value>
  2007. </item>
  2008. </choices>
  2009. </select1>
  2010. <caption id="caption20" style="left:906px; top:33px; width:10px; height:17px; font-weight:bold; text-align:center; ">:</caption>
  2011. <group id="grp_drctex" visibility="hidden" style="left:210px; top:130px; width:395px; height:170px; background-color:#f0f0f0; border-color:#a0a0a0; border-width:1; border-style:solid; ">
  2012. <textarea id="tar_drctex" ref="/root/temp/iptval/valnm" scroll="autovscroll" maxbyte="4000" style="left:9px; top:9px; width:375px; height:128px; padding:5; ">
  2013. <script type="javascript" ev:event="onmaxlength">
  2014. <![CDATA[
  2015. messageBox("100 글자까지 입력 가능합니다.", "E999");
  2016. ]]>
  2017. </script>
  2018. </textarea>
  2019. <button id="btn_drctexclose" class="btn2_letter2" style="left:342px; top:143px; width:42px; height:19px; ">
  2020. <caption>닫기</caption>
  2021. <script type="javascript" ev:event="DOMActivate">
  2022. <![CDATA[
  2023. grp_drctex.visible = false;
  2024. ]]>
  2025. </script>
  2026. </button>
  2027. <button id="btn_drctexipt" class="btn2_letter2" style="left:295px; top:143px; width:42px; height:19px; ">
  2028. <caption>입력</caption>
  2029. <script type="javascript" ev:event="DOMActivate">
  2030. <![CDATA[
  2031. btn_drctipt.dispatch("DOMActivate");
  2032. ]]>
  2033. </script>
  2034. </button>
  2035. </group>
  2036. <group id="grp_popup" visibility="hidden" style="left:710px; top:405px; width:395px; height:170px; background-color:#f0f0f0; border-color:#a0a0a0; border-width:1; border-style:solid; ">
  2037. <textarea id="tar_popup" ref="/root/hidden/popup" scroll="autovscroll" maxbyte="4000" style="left:9px; top:9px; width:375px; height:128px; padding:5; "/>
  2038. <button id="btn_popupclose" class="btn2_letter2" style="left:342px; top:143px; width:42px; height:19px; ">
  2039. <caption>닫기</caption>
  2040. <script type="javascript" ev:event="DOMActivate">
  2041. <![CDATA[
  2042. grp_popup.visible = false;
  2043. model.setValue("/root/hidden/popup", "");
  2044. tar_popup.refresh();
  2045. ]]>
  2046. </script>
  2047. </button>
  2048. <button id="btn_popupipt" class="btn2_letter2" style="left:295px; top:143px; width:42px; height:19px; ">
  2049. <caption>입력</caption>
  2050. <script type="javascript" ev:event="DOMActivate">
  2051. <![CDATA[
  2052. var msg = model.getValue("/root/hidden/popup");
  2053. model.setValue("/root/send/rgst/termlist/terminfo[" + grd_rgst.row + "]/val", msg);
  2054. model.setValue("/root/send/rgst/termlist/terminfo[" + grd_rgst.row + "]/valnm", msg);
  2055. var inflag = model.getValue("/root/send/rgst/termlist/terminfo[" + grd_rgst.row + "]/inflag");
  2056. var aoflag = model.getValue("/root/send/rgst/termlist/terminfo[" + grd_rgst.row + "]/aoflag");
  2057. model.setValue("/root/send/rgst/termlist/terminfo[" + grd_rgst.row + "]/invalnm", fGetInFlagName(inflag, aoflag) + msg);
  2058. grd_rgst.refresh();
  2059. grp_popup.visible = false;
  2060. model.setValue("/root/hidden/popup", "");
  2061. tar_popup.refresh();
  2062. ]]>
  2063. </script>
  2064. </button>
  2065. </group>
  2066. </xhtml:body>
  2067. </xhtml:html>