SMLIF00400_장비검사별시약관리.xfdl 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMLIF00400" position="absolute 0 0 1100 700" titletext="장비검사별시약관리" oninit="SMLIF00400_oninit" onload="SMLIF00400_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static text="장비검사별 시약관리" position="absolute 0 0 163 20" id="caption1" class="tit_1"/>
  8. <Div position="absolute 0 20 490 700" id="grp_left" anchor="left top bottom">
  9. <Layouts>
  10. <Layout>
  11. <Grid position="absolute 0 132 490 680" id="grd_reagenttree" binddataset="ds_main_reagenttree" selecttype="row" useinputpanel="false" treeusecheckbox="false" anchor="left top bottom" autofittype="col" oncellclick="grp_left_grd_reagenttree_oncellclick">
  12. <Formats>
  13. <Format id="default">
  14. <Columns>
  15. <Column size="489"/>
  16. </Columns>
  17. <Rows>
  18. <Row size="24" band="head"/>
  19. <Row size="24"/>
  20. </Rows>
  21. <Band id="head">
  22. <Cell displaytype="normal" text="장비정보 ( 자산코드 [장비코드] 장비명) - 검사정보 (검사코드 검사명)"/>
  23. </Band>
  24. <Band id="body">
  25. <Cell displaytype="tree" edittype="tree" style="background:EXPR(fDragOverColorChng(currow));background2:EXPR(fDragOverColorChng(currow));" text="bind:displaynm" treestartlevel="1" treelevel="bind:levl" autosizecol="limitmax"/>
  26. </Band>
  27. </Format>
  28. </Formats>
  29. </Grid>
  30. <Div id="roundrect2" taborder="6" class="div_SA2" position="absolute 0 28 490 101" type="roundrectangle">
  31. <Layouts>
  32. <Layout>
  33. <Button id="btn_fixasetcd" taborder="0" class="icon_search" position="absolute 231 5 251 25" onclick="grp_left_roundrect2_btn_fixasetcd_onclick"/>
  34. <Button id="btn_eraserfixasetcd" taborder="1" class="icon_eraser" position="absolute 252 2 278 28" tooltiptext="자산코 초기화" onclick="grp_left_roundrect2_btn_eraserfixasetcd_onclick"/>
  35. <Button id="btn_goodcd" taborder="2" class="icon_search" position="absolute 231 28 251 48" onclick="grp_left_roundrect2_btn_goodcd_onclick"/>
  36. <Button id="btn_erasergoodcd" taborder="3" class="icon_eraser" position="absolute 252 25 278 51" tooltiptext="자산코 초기화" onclick="grp_left_roundrect2_btn_erasergoodcd_onclick"/>
  37. </Layout>
  38. </Layouts>
  39. </Div>
  40. <Shape id="line00" class="line_10" position="absolute 0 125 490 131" anchor="default"/>
  41. <Shape id="line1" linetype="vertical" position="absolute 399 34 408 94"/>
  42. <Static id="caption00" text="시약코드 :" class="search_name" position="absolute 6 56 80 73"/>
  43. <Static id="caption2" text="자산코드 :" class="search_name" position="absolute 6 35 80 52"/>
  44. <Edit id="ipt_search_fixasetcd" taborder="1" onkeydown="grp_left_ipt_search_usercd_onkeydown" class="input_search" position="absolute 83 33 232 52" enable="false"/>
  45. <Edit id="ipt_search_goodcd" taborder="2" onkeydown="grp_left_ipt_search_cdid_onkeydown" class="input_search" position="absolute 83 55 232 74" enable="false"/>
  46. <Static id="caption9" text="검사코드 :" class="search_name" position="absolute 6 79 80 96"/>
  47. <Edit id="ipt_search_tclscd" taborder="3" class="input_search" position="absolute 83 77 232 96" onkeydown="grp_left_ipt_search_tclscd_onkeydown"/>
  48. <CheckBox id="chk_endyn" taborder="4" text="종료/이력포함" value="N" truevalue="Y" falsevalue="N" position="absolute 295 32 398 52" onclick="grp_left_chk_endyn_onclick"/>
  49. <Button id="btn_search" taborder="5" text="조회" onclick="grp_left_btn_search_onclick" class="btn1" position="absolute 414 54 470 74"/>
  50. <Shape id="line2" class="line_10" position="absolute 0 23 490 29"/>
  51. <Static id="caption6" text="장비별 검사코드 조회" class="tit_2" position="absolute 0 7 220 23"/>
  52. <CheckBox id="chk_useyn" taborder="7" text="시약사용" value="N" truevalue="Y" falsevalue="N" position="absolute 295 76 375 96" onclick="grp_left_chk_useyn_onclick"/>
  53. <Static id="caption01" text="장비별 검사코드 항목" class="tit_2" position="absolute 0 107 220 123"/>
  54. <CheckBox id="chk_prcppossyn" taborder="8" text="처방가능" value="N" truevalue="Y" falsevalue="N" position="absolute 295 54 398 74" onclick="grp_left_chk_prcppossyn_onclick"/>
  55. </Layout>
  56. </Layouts>
  57. </Div>
  58. <Div position="absolute 500 123 1100 700" id="grp_right_bottom" anchor="all">
  59. <Layouts>
  60. <Layout>
  61. <Static text="장비 검사코드 시약정보" position="absolute 0 4 220 24" align="align:left middle;" id="caption11" class="tit_2" anchor="default"/>
  62. <Shape position="absolute 0 21 600 27" linetype="horizontal" id="line6" class="line_10" anchor="left top right"/>
  63. <Button position="absolute 544 0 600 20" id="btn_Save" class="btn4" text="저장" anchor="top right" onclick="grp_right_bottom_btn_Save_onclick"/>
  64. <Button position="absolute 452 0 494 20" id="button8" class="btn2" text="추가" onclick="grp_right_bottom_button8_onclick" anchor="top right"/>
  65. <Button position="absolute 496 0 538 20" id="button9" class="btn2" text="삭제" onclick="grp_right_bottom_button9_onclick" anchor="top right"/>
  66. <Grid position="absolute 0 29 600 577" id="grd_reagentlist" binddataset="ds_main_reagentlist" style="align:center middle;" autosizingtype="row" extendsizetype="row" anchor="all" selecttype="multirow" autofittype="none" onrbuttondown="grp_right_bottom_grd_reagentlist_onrbuttondown">
  67. <Formats>
  68. <Format id="default">
  69. <Columns>
  70. <Column size="25" band="left"/>
  71. <Column size="0"/>
  72. <Column size="35"/>
  73. <Column size="40"/>
  74. <Column size="100"/>
  75. <Column size="200"/>
  76. <Column size="40"/>
  77. <Column size="80"/>
  78. <Column size="80"/>
  79. <Column size="30"/>
  80. <Column size="60"/>
  81. <Column size="110"/>
  82. <Column size="60"/>
  83. <Column size="110"/>
  84. </Columns>
  85. <Rows>
  86. <Row size="24" band="head"/>
  87. <Row size="24"/>
  88. </Rows>
  89. <Band id="head">
  90. <Cell/>
  91. <Cell col="1" displaytype="normal" text="hardcdno"/>
  92. <Cell col="2" displaytype="normal" text="순번"/>
  93. <Cell col="3" text="주/부"/>
  94. <Cell col="4" displaytype="normal" text="시약코드"/>
  95. <Cell col="5" displaytype="normal" text="시약명"/>
  96. <Cell col="6" text="상태"/>
  97. <Cell col="7" displaytype="normal" text="시작일자"/>
  98. <Cell col="8" displaytype="normal" text="종료일자"/>
  99. <Cell col="9" text="이력"/>
  100. <Cell col="10" text="등록자"/>
  101. <Cell col="11" text="등록일시"/>
  102. <Cell col="12" text="수정"/>
  103. <Cell col="13" text="수정일"/>
  104. </Band>
  105. <Band id="body">
  106. <Cell celltype="head"/>
  107. <Cell col="1" displaytype="normal" text="bind:hardcdno"/>
  108. <Cell col="2" displaytype="normal" edittype="text" style="align:center;" text="bind:dispseq"/>
  109. <Cell col="3" displaytype="combo" edittype="combo" style="align:center;" text="bind:msgubun" combodataset="ds_msgubun" combocodecol="cdid" combodatacol="cdnm"/>
  110. <Cell col="4" displaytype="normal" edittype="none" style="align:center;" text="bind:goodcd" editautoselect="true" expandshow="hide" expandsize="20"/>
  111. <Cell col="5" displaytype="normal" edittype="none" style="align:left middle;" text="bind:goodnm" editautoselect="true" autosizerow="limitmin"/>
  112. <Cell col="6" displaytype="combo" style="align:center;" text="bind:histcd" combodataset="ds_histcd" combocodecol="cdid" combodatacol="cdnm"/>
  113. <Cell col="7" displaytype="date" edittype="date" text="bind:fromdd"/>
  114. <Cell col="8" displaytype="date" edittype="date" text="bind:todd"/>
  115. <Cell col="9" text="bind:histno"/>
  116. <Cell col="10" style="align:center;" text="bind:fstrgstnm"/>
  117. <Cell col="11" displaytype="text" style="align:center;" text="bind:fstrgstdt" mask="####-##-## ##:##"/>
  118. <Cell col="12" text="bind:lastupdtrnm"/>
  119. <Cell col="13" displaytype="text" text="bind:lastupdtdt" mask="####-##-## ##:##"/>
  120. </Band>
  121. </Format>
  122. </Formats>
  123. </Grid>
  124. <Button id="btn_excel" taborder="1" text="Excel" onclick="btn_excel_onclick" class="btn7" position="absolute 383 0 446 20" anchor="top right"/>
  125. <Button id="btn_copy" taborder="2" text="복사" class="btn2" position="absolute 266 0 308 20" anchor="top right" onclick="grp_right_bottom_btn_copy_onclick"/>
  126. <Button id="btn_paste" taborder="3" text="붙혀넣기" class="btn2" position="absolute 310 0 377 20" anchor="top right" onclick="grp_right_bottom_btn_paste_onclick"/>
  127. </Layout>
  128. </Layouts>
  129. </Div>
  130. <Div id="grp_right_top" anchor="left top right" taborder="1" position="absolute 500 20 1100 120">
  131. <Layouts>
  132. <Layout>
  133. <Static id="caption3" text="장비 검사코드 정보" class="tit_2" position="absolute 0 7 220 23" anchor="default"/>
  134. <Shape id="line5" class="line_10" position="absolute 0 23 600 29" anchor="left top right"/>
  135. <Static id="caption4" text="자산코드" class="cell_1" position="absolute 0 28 60 51" anchor="default"/>
  136. <Edit id="ipt_main_fixasetcd" taborder="6" maxlength="5" class="input" position="absolute 64 30 204 49" style="font:arial,9,bold;" anchor="default" enable="false"/>
  137. <Static id="caption10" text="자산명" class="cell_1" position="absolute 209 28 269 51" anchor="default"/>
  138. <Edit id="ipt_main_fixasetnm" taborder="7" maxlength="5" class="input" position="absolute 271 30 600 49" anchor="left top right" enable="false"/>
  139. <Static id="caption5" text="장비명" class="cell_1" position="absolute 209 53 269 76" anchor="default"/>
  140. <Edit id="ipt_main_eqmtnm" taborder="8" class="input" position="absolute 271 55 600 74" anchor="left top right" enable="false"/>
  141. <Static id="caption00" text="장비코드" class="cell_1" position="absolute 0 52 60 75" anchor="default"/>
  142. <Edit id="ipt_main_eqmtcd" taborder="10" maxlength="5" class="input" position="absolute 64 54 204 73" anchor="default" enable="false" style=":disabled {font:arial,9,bold;}"/>
  143. <Static id="caption01" text="검사코드" class="cell_1" position="absolute 0 76 60 99" anchor="default"/>
  144. <Edit id="ipt_main_tclscd" taborder="11" maxlength="5" class="input" position="absolute 64 78 204 97" anchor="default" enable="false" style=":disabled {font:arial,9,bold;}"/>
  145. <Static id="caption02" text="검사명" class="cell_1" position="absolute 209 77 269 100" anchor="default"/>
  146. <Edit id="ipt_main_tclsnm" taborder="12" class="input" position="absolute 271 79 600 98" anchor="left top right" enable="false"/>
  147. </Layout>
  148. </Layouts>
  149. </Div>
  150. <PopupMenu id="pmn_menu" innerdataset="ds_mouserght" idcolumn="func" captioncolumn="label" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 1112 200 1215 246"/>
  151. </Layout>
  152. </Layouts>
  153. <Objects>
  154. <Dataset id="ds_main_reagenttree" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  155. <ColumnInfo>
  156. <Column id="levl" type="STRING" size="256"/>
  157. <Column id="displaynm" type="STRING" size="256"/>
  158. <Column id="supcd" type="STRING" size="256"/>
  159. <Column id="setcd" type="STRING" size="256"/>
  160. <Column id="eqmtcd" type="STRING" size="256"/>
  161. <Column id="fixasetcd" type="STRING" size="256"/>
  162. <Column id="tclscd" type="STRING" size="256"/>
  163. <Column id="dispseq" type="STRING" size="256"/>
  164. <Column id="useyn" type="STRING" size="256"/>
  165. </ColumnInfo>
  166. </Dataset>
  167. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  168. <ColumnInfo>
  169. <Column id="fixasetcd" type="STRING" size="256"/>
  170. <Column id="tclscd" type="STRING" size="256"/>
  171. <Column id="goodcd" type="STRING" size="256"/>
  172. <Column id="endyn" type="STRING" size="256"/>
  173. <Column id="useyn" type="STRING" size="256"/>
  174. <Column id="prcppossyn" type="STRING" size="256"/>
  175. </ColumnInfo>
  176. <Rows>
  177. <Row>
  178. <Col id="fixasetcd"/>
  179. <Col id="tclscd"/>
  180. <Col id="goodcd"/>
  181. <Col id="endyn"/>
  182. <Col id="useyn"/>
  183. <Col id="prcppossyn"/>
  184. </Row>
  185. </Rows>
  186. </Dataset>
  187. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  188. <Dataset id="ds_main_reagentinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  189. <ColumnInfo>
  190. <Column id="eqmtcd" type="STRING" size="256"/>
  191. <Column id="eqmtnm" type="STRING" size="256"/>
  192. <Column id="fixasetcd" type="STRING" size="256"/>
  193. <Column id="goodflaghngnm" type="STRING" size="256"/>
  194. <Column id="tclscd" type="STRING" size="256"/>
  195. <Column id="testdispnm" type="STRING" size="256"/>
  196. </ColumnInfo>
  197. </Dataset>
  198. <Dataset id="ds_main_reagentlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  199. <ColumnInfo>
  200. <Column id="instcd" type="STRING" size="256"/>
  201. <Column id="fixasetcd" type="STRING" size="256"/>
  202. <Column id="tclscd" type="STRING" size="256"/>
  203. <Column id="goodcd" type="STRING" size="256"/>
  204. <Column id="goodnm" type="STRING" size="256"/>
  205. <Column id="histno" type="STRING" size="256"/>
  206. <Column id="histcd" type="STRING" size="256"/>
  207. <Column id="fromdd" type="STRING" size="256"/>
  208. <Column id="todd" type="STRING" size="256"/>
  209. <Column id="msgubun" type="STRING" size="256"/>
  210. <Column id="dispseq" type="STRING" size="256"/>
  211. <Column id="fstrgstnm" type="STRING" size="256"/>
  212. <Column id="fstrgstdt" type="STRING" size="256"/>
  213. <Column id="lastupdtrnm" type="STRING" size="256"/>
  214. <Column id="lastupdtdt" type="STRING" size="256"/>
  215. </ColumnInfo>
  216. </Dataset>
  217. <Dataset id="ds_msgubun" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  218. <ColumnInfo>
  219. <Column id="cdid" type="STRING" size="256"/>
  220. <Column id="cdnm" type="STRING" size="256"/>
  221. </ColumnInfo>
  222. <Rows>
  223. <Row>
  224. <Col id="cdid">M</Col>
  225. <Col id="cdnm">주</Col>
  226. </Row>
  227. <Row>
  228. <Col id="cdid">S</Col>
  229. <Col id="cdnm">부</Col>
  230. </Row>
  231. </Rows>
  232. </Dataset>
  233. <Dataset id="ds_popgood_goodlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  234. <ColumnInfo>
  235. <Column id="goodcd" type="STRING" size="256"/>
  236. <Column id="goodnm" type="STRING" size="256"/>
  237. </ColumnInfo>
  238. </Dataset>
  239. <Dataset id="ds_histcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  240. <ColumnInfo>
  241. <Column id="cdid" type="STRING" size="256"/>
  242. <Column id="cdnm" type="STRING" size="256"/>
  243. </ColumnInfo>
  244. <Rows>
  245. <Row>
  246. <Col id="cdid">O</Col>
  247. <Col id="cdnm">정상</Col>
  248. </Row>
  249. <Row>
  250. <Col id="cdid">H</Col>
  251. <Col id="cdnm">이력</Col>
  252. </Row>
  253. <Row>
  254. <Col id="cdid">D</Col>
  255. <Col id="cdnm">삭제</Col>
  256. </Row>
  257. </Rows>
  258. </Dataset>
  259. <Dataset id="ds_mouserght" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  260. <ColumnInfo>
  261. <Column id="func" type="STRING" size="256"/>
  262. <Column id="label" type="STRING" size="256"/>
  263. <Column id="level" type="STRING" size="256"/>
  264. </ColumnInfo>
  265. <Rows>
  266. <Row>
  267. <Col id="label">복사</Col>
  268. <Col id="func">fCopyRow</Col>
  269. <Col id="level">0</Col>
  270. </Row>
  271. <Row>
  272. <Col id="label">-</Col>
  273. <Col id="func"/>
  274. <Col id="level">0</Col>
  275. </Row>
  276. <Row>
  277. <Col id="label">붙여넣기</Col>
  278. <Col id="func">fPasteRow</Col>
  279. <Col id="level">0</Col>
  280. </Row>
  281. </Rows>
  282. </Dataset>
  283. <Dataset id="ds_copy_reagentlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  284. <ColumnInfo>
  285. <Column id="instcd" type="STRING" size="256"/>
  286. <Column id="fixasetcd" type="STRING" size="256"/>
  287. <Column id="tclscd" type="STRING" size="256"/>
  288. <Column id="goodcd" type="STRING" size="256"/>
  289. <Column id="goodnm" type="STRING" size="256"/>
  290. <Column id="histno" type="STRING" size="256"/>
  291. <Column id="histcd" type="STRING" size="256"/>
  292. <Column id="fromdd" type="STRING" size="256"/>
  293. <Column id="todd" type="STRING" size="256"/>
  294. <Column id="msgubun" type="STRING" size="256"/>
  295. <Column id="dispseq" type="STRING" size="256"/>
  296. <Column id="fstrgstnm" type="STRING" size="256"/>
  297. <Column id="fstrgstdt" type="STRING" size="256"/>
  298. </ColumnInfo>
  299. </Dataset>
  300. </Objects>
  301. <Bind>
  302. <BindItem id="item7" compid="grp_left.chk_endyn" propid="value" datasetid="ds_main_cond" columnid="endyn"/>
  303. <BindItem id="item1" compid="grp_left.ipt_search_tclscd" propid="value" datasetid="ds_main_cond" columnid="tclscd"/>
  304. <BindItem id="item6" compid="grp_left.ipt_search_goodcd" propid="value" datasetid="ds_main_cond" columnid="goodcd"/>
  305. <BindItem id="item0" compid="grp_left.ipt_search_fixasetcd" propid="value" datasetid="ds_main_cond" columnid="fixasetcd"/>
  306. <BindItem id="item2" compid="grp_left.chk_useyn" propid="value" datasetid="ds_main_cond" columnid="useyn"/>
  307. <BindItem id="item3" compid="grp_right_top.ipt_main_fixasetcd" propid="value" datasetid="ds_main_reagentinfo" columnid="fixasetcd"/>
  308. <BindItem id="item4" compid="grp_right_top.ipt_main_fixasetnm" propid="value" datasetid="ds_main_reagentinfo" columnid="goodflaghngnm"/>
  309. <BindItem id="item5" compid="grp_right_top.ipt_main_eqmtcd" propid="value" datasetid="ds_main_reagentinfo" columnid="eqmtcd"/>
  310. <BindItem id="item8" compid="grp_right_top.ipt_main_eqmtnm" propid="value" datasetid="ds_main_reagentinfo" columnid="eqmtnm"/>
  311. <BindItem id="item9" compid="grp_right_top.ipt_main_tclscd" propid="value" datasetid="ds_main_reagentinfo" columnid="tclscd"/>
  312. <BindItem id="item10" compid="grp_right_top.ipt_main_tclsnm" propid="value" datasetid="ds_main_reagentinfo" columnid="testdispnm"/>
  313. <BindItem id="item11" compid="grp_left.chk_prcppossyn" propid="value" datasetid="ds_main_cond" columnid="prcppossyn"/>
  314. </Bind>
  315. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  316. * System Name :
  317. * Job Name :
  318. * Creator :
  319. * Make Date : 2020-01-20
  320. * Description :
  321. *---------------------------------------------------------------------------------------
  322. * Modify Date Modifier Modify Description
  323. *---------------------------------------------------------------------------------------
  324. * 2020-01-20 엄영만 Create
  325. *
  326. *---------------------------------------------------------------------------------------
  327. ****************************************************************************************/
  328. include "com_commonxp::comm_main.xjs";
  329. include "emr_prcpmngtxp::MMO001.xjs";
  330. var g_prevmouserow = -1;
  331. function SMLIF00400_oninit(obj:Form, e:InitEventInfo)
  332. {
  333. frmf_initForm(obj);
  334. grdf_initGrid(grp_right_bottom.grd_reagentlist);
  335. }
  336. function SMLIF00400_onload(obj:Form, e:LoadEventInfo)
  337. {
  338. fInitialize_SMLIF00400();
  339. grdf_setRowTypeIcon(grp_right_bottom.grd_reagentlist, 0);
  340. grdf_setToolTipBind(grp_right_bottom.grd_reagentlist);
  341. grdf_setToolTipBind(grp_left.grd_reagenttree);
  342. }
  343. function grp_right_bottom_btn_Save_onclick(obj:Button, e:ClickEventInfo)
  344. {
  345. fSaveReagentList();
  346. }
  347. function grp_right_bottom_button8_onclick(obj:Button, e:ClickEventInfo)
  348. {
  349. fReagentListGridAdd(); // 시약항목 추가
  350. }
  351. function grp_right_bottom_button9_onclick(obj:Button, e:ClickEventInfo)
  352. {
  353. var cur_row = "";
  354. var iStatus = "";
  355. var sTclsCd = ds_main_reagentinfo.getColumn(0, "tclscd");
  356. if(utlf_isNull(sTclsCd) || sTclsCd == "-") {
  357. alert("선택 된 검사코드가 없습니다.");
  358. return;
  359. }
  360. var selectedRows = grdf_getSelectedRows(grp_right_bottom.grd_reagentlist);
  361. for( var i = selectedRows.length - 1; i >= 0 ; i--) {
  362. cur_row = selectedRows[i];
  363. iStatus = ds_main_reagentlist.getRowType(cur_row);
  364. if (iStatus == 2) { // 새로 삽입된 행이면
  365. ds_main_reagentlist.deleteRow(cur_row);
  366. } else if (iStatus == 8) { // 삭제 상태이면
  367. grdf_setStatus(grp_right_bottom.grd_reagentlist, "", [cur_row])
  368. } else {
  369. grdf_setStatus(grp_right_bottom.grd_reagentlist, "D", [cur_row])
  370. }
  371. }
  372. }
  373. /**
  374. * @desc : 화면 초기화
  375. * @
  376. * @param :
  377. * @return :
  378. * @author : 엄영만
  379. * @---------------------------------------------------
  380. */
  381. function fInitialize_SMLIF00400(){
  382. ds_main_cond.setColumn(0, "endyn", "N");
  383. ds_main_cond.setColumn(0, "useyn", "N");
  384. ds_main_cond.setColumn(0, "prcppossyn", "Y");
  385. fGetReagentTree();
  386. }
  387. /**
  388. * @desc : 장비검사별 시약 리스트 조회
  389. * @
  390. * @param :
  391. * @return :
  392. * @author : 엄영만
  393. * @---------------------------------------------------
  394. */
  395. function fGetReagentTree(){
  396. ds_main_reagentinfo.clearData();
  397. ds_main_reagentinfo.addRow();
  398. ds_main_reagenttree.clearData();
  399. ds_main_reagentlist.clearData();
  400. var oParam = {};
  401. oParam.id = "TRLIF00401";
  402. oParam.service = "diagtestbaseinfomngtapp.InterfaceTestBaseInfoMngt";
  403. oParam.method = "reqGetReagentTree";
  404. oParam.inds = "req=ds_main_cond";
  405. oParam.outds = "ds_main_reagenttree=reagenttree";
  406. oParam.async = false;
  407. tranf_submit(oParam);
  408. grdf_expandDepth(grp_left.grd_reagenttree, 0);
  409. }
  410. /**
  411. * @desc : 시약 코드 리스트 클릭시 기본정보 설정
  412. * @
  413. * @param :
  414. * @return :
  415. * @author : 엄영만
  416. * @---------------------------------------------------
  417. */
  418. function fSetReagentInfo(){
  419. ds_main_reagentinfo.clearData();
  420. ds_main_reagentlist.clearData();
  421. var nRow = ds_main_reagenttree.rowposition;
  422. var sFixasetCd = ds_main_reagenttree.getColumn(nRow, "fixasetcd");
  423. var sTclsCd = ds_main_reagenttree.getColumn(nRow, "tclscd");
  424. var sGoodCd = ds_main_cond.getColumn(0, "goodcd");
  425. var sEndYn = ds_main_cond.getColumn(0, "endyn");
  426. if(!utlf_isNull(sTclsCd) && sTclsCd != "-") {
  427. dsf_makeValue(ds_send_reqdata, "fixasetcd", "string", sFixasetCd);
  428. dsf_makeValue(ds_send_reqdata, "tclscd", "string", sTclsCd);
  429. dsf_makeValue(ds_send_reqdata, "goodcd", "string", sGoodCd);
  430. dsf_makeValue(ds_send_reqdata, "endyn", "string", sEndYn);
  431. var oParam = {};
  432. oParam.id = "TRLIF00402";
  433. oParam.service = "diagtestbaseinfomngtapp.InterfaceTestBaseInfoMngt";
  434. oParam.method = "reqGetReagentInfo";
  435. oParam.inds = "req=ds_send_reqdata";
  436. oParam.outds = "ds_main_reagentinfo=reagentinfo ds_main_reagentlist=reagentlist";
  437. oParam.async = false;
  438. tranf_submit(oParam);
  439. }
  440. }
  441. /**
  442. * @desc : 시약 리스트 저장
  443. * @
  444. * @param :
  445. * @return :
  446. * @author : 엄영만
  447. * @---------------------------------------------------
  448. */
  449. function fSaveReagentList(){
  450. if( sysf_messageBox("시약정보를","Q002") == 6 ){
  451. dsf_createDs("ds_send_reagentlist");
  452. var updateData = grdf_getGridUpdateData(grp_right_bottom.grd_reagentlist);
  453. grdf_setStatusColumn(updateData, "status");
  454. ds_send_reagentlist.copyData(updateData, true);
  455. var oParam = {};
  456. oParam.id = "TXLIF00401";
  457. oParam.service = "diagtestbaseinfomngtapp.InterfaceTestBaseInfoMngt";
  458. oParam.method = "reqExeReagentList";
  459. oParam.inds = "req=ds_send_reagentlist";
  460. oParam.outds = "";
  461. oParam.async = false;
  462. if(tranf_submit(oParam)) {
  463. fSetReagentInfo();
  464. }
  465. }
  466. }
  467. function btn_excel_onclick(obj:Button, e:ClickEventInfo)
  468. {
  469. var sFixasetCd = ds_main_reagentinfo.getColumn(0, "fixasetcd");
  470. var sTclsCd = ds_main_reagentinfo.getColumn(0, "tclscd");
  471. if(utlf_isNull(sTclsCd) || sTclsCd == "-") {
  472. alert("선택 된 사용자코드가 없습니다.");
  473. return;
  474. }
  475. grdf_exportExcel(grp_right_bottom.grd_reagentlist, "장비검사별시약정보" +sFixasetCd + "_" + sTclsCd, sTclsCd, false, null, "user", true);
  476. }
  477. /*
  478. * 시약리스트에 항목 추가
  479. */
  480. function fReagentListGridAdd(){
  481. var sGoodCd = "";
  482. var sGoodNm = "";
  483. var sTclsCd = ds_main_reagentinfo.getColumn(0, "tclscd");
  484. if(utlf_isNull(sTclsCd) || sTclsCd == "-") {
  485. alert("선택 된 검사코드가 없습니다.");
  486. return;
  487. }
  488. frmf_modal("SMLIF00500", "SMLIF00500",null,null,null,null,null,null,null,null,null,null,"M");
  489. var sSelYn = frmf_getParameter("SMLIF00500_rtn_selyn");
  490. if(sSelYn == "Y"){
  491. frmf_setParameter("SMLIF00500_rtn_selyn", "");
  492. var totcnt = ds_popgood_goodlist.rowcount;
  493. for(var i = 0 ; i < totcnt ; i++) {
  494. sGoodCd = ds_popgood_goodlist.getColumn(i,"goodcd");
  495. sGoodNm = ds_popgood_goodlist.getColumn(i,"goodnm");
  496. ds_main_reagentlist.addRow();
  497. grp_right_bottom.grd_reagentlist.showEditor(true);
  498. var nRow = ds_main_reagentlist.rowposition;
  499. ds_main_reagentlist.setColumn(nRow, "dispseq", nRow+1);
  500. ds_main_reagentlist.setColumn(nRow, "fixasetcd", ds_main_reagentinfo.getColumn(0, "fixasetcd"));
  501. ds_main_reagentlist.setColumn(nRow, "tclscd", ds_main_reagentinfo.getColumn(0, "tclscd"));
  502. ds_main_reagentlist.setColumn(nRow, "goodcd", sGoodCd);
  503. ds_main_reagentlist.setColumn(nRow, "goodnm", sGoodNm);
  504. ds_main_reagentlist.setColumn(nRow, "histno", "");
  505. ds_main_reagentlist.setColumn(nRow, "histcd", "O");
  506. ds_main_reagentlist.setColumn(nRow, "fromdd", utlf_getCurrentDate());
  507. ds_main_reagentlist.setColumn(nRow, "todd", "99991231");
  508. ds_main_reagentlist.setColumn(nRow, "msgubun", "M");
  509. }
  510. }
  511. }
  512. function grp_left_roundrect2_btn_fixasetcd_onclick(obj:Button, e:ClickEventInfo)
  513. {
  514. var sReturn = frmf_modal("SMLIF00300","SMLIF00300", null, null, 1, 200, 200, null, null, null, null, null, "M");
  515. ds_main_cond.setColumn(0, "fixasetcd", sReturn.fixasetcd);
  516. fGetReagentTree();
  517. }
  518. function grp_left_roundrect2_btn_eraserfixasetcd_onclick(obj:Button, e:ClickEventInfo)
  519. {
  520. ds_main_cond.setColumn(0, "fixasetcd", "");
  521. fGetReagentTree();
  522. }
  523. function grp_left_roundrect2_btn_goodcd_onclick(obj:Button, e:ClickEventInfo)
  524. {
  525. var sGoodCd = "";
  526. frmf_modal("SMLIF00500", "SMLIF00500",null,null,null,null,null,null,null,null,null,null,"M");
  527. var sSelYn = frmf_getParameter("SMLIF00500_rtn_selyn");
  528. if(sSelYn == "Y"){
  529. frmf_setParameter("SMLIF00500_rtn_selyn", "");
  530. sGoodCd = ds_popgood_goodlist.getColumn(0, "goodcd");
  531. }
  532. ds_main_cond.setColumn(0, "goodcd", sGoodCd);
  533. fGetReagentTree();
  534. }
  535. function grp_left_roundrect2_btn_erasergoodcd_onclick(obj:Button, e:ClickEventInfo)
  536. {
  537. ds_main_cond.setColumn(0, "goodcd", "");
  538. fGetReagentTree();
  539. }
  540. function grp_left_ipt_search_tclscd_onkeydown(obj:Edit, e:KeyEventInfo)
  541. {
  542. if(e.keycode == 13) {
  543. grp_left.ipt_search_tclscd.updateToDataset();
  544. fGetReagentTree();
  545. }
  546. }
  547. function grp_left_btn_search_onclick(obj:Button, e:ClickEventInfo)
  548. {
  549. fGetReagentTree();
  550. }
  551. function grp_left_grd_reagenttree_oncellclick(obj:Grid, e:GridClickEventInfo)
  552. {
  553. fSetReagentInfo();
  554. }
  555. function grp_left_chk_useyn_onclick(obj:CheckBox, e:ClickEventInfo)
  556. {
  557. fGetReagentTree();
  558. }
  559. function grp_left_chk_endyn_onclick(obj:CheckBox, e:ClickEventInfo)
  560. {
  561. fGetReagentTree();
  562. }
  563. function grp_left_chk_prcppossyn_onclick(obj:CheckBox, e:ClickEventInfo)
  564. {
  565. fGetReagentTree();
  566. }
  567. function grp_right_bottom_grd_reagentlist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  568. {
  569. if(e.row < 0 || e.col < 0) return;
  570. obj.setFocus();
  571. grdf_setSelectedCell(obj, e);
  572. obj.oncellclick.fireEvent(obj, new GridClickEventInfo());
  573. pmn_menu.trackPopup(e.screenX,e.screenY);
  574. }
  575. function fCopyRow () {
  576. var selectedRows = grdf_getSelectedRows(grp_right_bottom.grd_reagentlist);
  577. var cnt=0;
  578. for (var i = 0; i < selectedRows.length; i++) {
  579. fCopyBuffer( ++cnt, selectedRows[i], "ds_copy_reagentlist", "ds_main_reagentlist" );
  580. }
  581. }
  582. /**@desc : 함수 호출시 선택된 데이터를 특정 노드에 담아둔다.
  583. * @param1 : bufCnt: 첫번째 cnt일때 기존 노드를 삭제하기 위한 count
  584. * @param2 : bufRow: 노드에 담아놓을 그리드 row
  585. * @param4 : strDest: 목적지 주소값
  586. * @param3 : strSrc: 출발지 주소값
  587. * @return : void
  588. * @authur : 마정민 2007. 4. 3
  589. */
  590. function fCopyBuffer( bufCnt, bufRow, strDest, strSrc ) {
  591. var ds_src = this.objects[strSrc];
  592. var ds_dest = this.objects[strDest];
  593. if (bufCnt == 1) { //첫번째 데이터이면 기존 노드를 삭제한다.
  594. ds_dest.clearData();
  595. }
  596. //대상노드로 복사한다.
  597. var toRow = ds_dest.addRow();
  598. ds_dest.copyRow(toRow, ds_src, bufRow);
  599. }
  600. function fPasteRow() {
  601. var sTclsCd = ds_main_reagentinfo.getColumn(0, "tclscd");
  602. if(utlf_isNull(sTclsCd) || sTclsCd == "-") {
  603. alert("선택 된 검사코드가 없습니다.");
  604. return;
  605. }
  606. for(var i = 0 ; i < ds_copy_reagentlist.rowcount ; i++) {
  607. ds_main_reagentlist.addRow();
  608. grp_right_bottom.grd_reagentlist.showEditor(true);
  609. var nRow = ds_main_reagentlist.rowposition;
  610. ds_main_reagentlist.setColumn(nRow, "fixasetcd", ds_main_reagentinfo.getColumn(0,"fixasetcd"));
  611. ds_main_reagentlist.setColumn(nRow, "tclscd", ds_main_reagentinfo.getColumn(0,"tclscd"));
  612. ds_main_reagentlist.setColumn(nRow, "msgubun", ds_copy_reagentlist.getColumn(i,"msgubun"));
  613. ds_main_reagentlist.setColumn(nRow, "goodcd", ds_copy_reagentlist.getColumn(i,"goodcd"));
  614. ds_main_reagentlist.setColumn(nRow, "goodnm", ds_copy_reagentlist.getColumn(i,"goodnm"));
  615. ds_main_reagentlist.setColumn(nRow, "dispseq", nRow+1);
  616. ds_main_reagentlist.setColumn(nRow, "histno", "");
  617. ds_main_reagentlist.setColumn(nRow, "histcd", "O");
  618. ds_main_reagentlist.setColumn(nRow, "fromdd", utlf_getCurrentDate());
  619. ds_main_reagentlist.setColumn(nRow, "todd", "99991231");
  620. }
  621. //ds_copy_reagentlist.clearData();
  622. }
  623. function pmn_menu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  624. {
  625. eval(e.id + "()");
  626. }
  627. function grp_right_bottom_btn_copy_onclick(obj:Button, e:ClickEventInfo)
  628. {
  629. fCopyRow();
  630. }
  631. function grp_right_bottom_btn_paste_onclick(obj:Button, e:ClickEventInfo)
  632. {
  633. fPasteRow();
  634. }
  635. ]]></Script>
  636. </Form>
  637. </FDL>