SMADT12120_마약류검색.xfdl 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPADB60100" position="absolute 0 0 1085 599" titletext="마약류 검색" onload="SMADT12120_onload" oninit="SMADT12120_oninit">
  5. <Layouts>
  6. <Layout>
  7. <Static text="약품조회" position="absolute 0 49 95 65" id="caption7" class="tit_2"/>
  8. <Shape position="absolute 0 63 1081 74" linetype="horizontal" id="line1" class="line_1" style="strokepen:3 solid #33bbbbff;border:0 none #808080ff ;"/>
  9. <Button position="absolute 1019 561 1075 583" id="btn_cls" class="btn3" text="닫기" visible="true" onclick="btn_cls_onclick"/>
  10. <Div id="grp_srch" taborder="1" class="div_SA2" position="absolute 0 0 1085 37">
  11. <Layouts>
  12. <Layout>
  13. <Static id="caption6" text="조회조건 :" class="search_name" position="absolute 16 11 88 28" style="align:left middle;" anchor="default"/>
  14. <Button id="btn_sea" taborder="1" text="조회" class="btn1" position="absolute 394 7 450 29" anchor="default" onclick="grp_srch_btn_sea_onclick"/>
  15. <Combo id="cmb_srchflag" taborder="4" codecolumn="codecolumn" datacolumn="datacolumn" class="combo_search" position="absolute 91 9 176 28" anchor="default" style="align:center;" oncloseup="grp_srch_cmb_srchflag_oncloseup">
  16. <Dataset id="innerdataset">
  17. <ColumnInfo>
  18. <Column id="codecolumn" size="256"/>
  19. <Column id="datacolumn" size="256"/>
  20. </ColumnInfo>
  21. <Rows>
  22. <Row>
  23. <Col id="codecolumn">2</Col>
  24. <Col id="datacolumn">처방명칭</Col>
  25. </Row>
  26. <Row>
  27. <Col id="codecolumn">1</Col>
  28. <Col id="datacolumn">약품코드</Col>
  29. </Row>
  30. <Row>
  31. <Col id="codecolumn">3</Col>
  32. <Col id="datacolumn">한글명칭</Col>
  33. </Row>
  34. </Rows>
  35. </Dataset>
  36. </Combo>
  37. <Edit id="ipt_srchcnts" taborder="5" class="input_search" position="absolute 179 9 386 28" anchor="default" onkeydown="grp_srch_ipt_srchcnts_onkeydown" inputmode="upper" autoselect="true"/>
  38. <Button id="btn_api" taborder="6" text="품목정보조회(OpenAPI) 테스트" onclick="grp_srch_btn_api_onclick" class="btn1" position="absolute 843 7 1073 29" visible="false" anchor="default"/>
  39. </Layout>
  40. </Layouts>
  41. </Div>
  42. <Grid id="grd_prdlist" taborder="2" binddataset="ds_prdlist" useinputpanel="false" oncelldblclick="grd_prdlist_oncelldblclick" position="absolute 0 70 1081 553">
  43. <Formats>
  44. <Format id="default">
  45. <Columns>
  46. <Column size="27"/>
  47. <Column size="93"/>
  48. <Column size="238"/>
  49. <Column size="246"/>
  50. <Column size="99"/>
  51. <Column size="57"/>
  52. <Column size="34"/>
  53. <Column size="44"/>
  54. <Column size="40"/>
  55. <Column size="44"/>
  56. <Column size="70"/>
  57. <Column size="70"/>
  58. </Columns>
  59. <Rows>
  60. <Row size="24" band="head"/>
  61. <Row size="24"/>
  62. </Rows>
  63. <Band id="head">
  64. <Cell/>
  65. <Cell col="1" text="약품코드"/>
  66. <Cell col="2" text="처방명칭"/>
  67. <Cell col="3" text="한글명칭"/>
  68. <Cell col="4" text="제품코드"/>
  69. <Cell col="5" text="관리구분"/>
  70. <Cell col="6" colspan="2" text="유통단위" taborder="undefined"/>
  71. <Cell col="8" colspan="2" text="낱개단위" taborder="undefined"/>
  72. <Cell col="10" text="시작일자"/>
  73. <Cell col="11" text="종료일자"/>
  74. </Band>
  75. <Band id="body">
  76. <Cell celltype="head" text="expr:currow+1"/>
  77. <Cell col="1" style="align:center;padding:0 3 0 3;" text="bind:drugcd"/>
  78. <Cell col="2" style="align:left;padding:0 3 0 3;" text="bind:ordnm"/>
  79. <Cell col="3" style="align:left;padding:0 3 0 3;" text="bind:hngnm"/>
  80. <Cell col="4" style="align:center;padding:0 3 0 3;" text="bind:gtin"/>
  81. <Cell col="5" text="bind:prtm_se_nm"/>
  82. <Cell col="6" text="bind:prd_min_distb_qy"/>
  83. <Cell col="7" text="bind:prd_min_distb_unit"/>
  84. <Cell col="8" text="bind:prd_tot_pce_qy"/>
  85. <Cell col="9" text="bind:prd_pce_unit"/>
  86. <Cell col="10" displaytype="date" text="bind:fromdd"/>
  87. <Cell col="11" displaytype="date" text="bind:todd"/>
  88. </Band>
  89. </Format>
  90. </Formats>
  91. </Grid>
  92. <Button id="btn_download" taborder="3" text="엑셀 Download" class="btn2" position="absolute 973 45 1081 64" anchor="top right" onclick="btn_download_onclick" visible="false"/>
  93. <Static id="Static00" text="※ 시작일자 및 종료일자는 구입 기준 일자입니다." onclick="Static00_onclick" position="absolute 1 559 803 579" anchor="left bottom" style="color:red;"/>
  94. </Layout>
  95. </Layouts>
  96. <Objects>
  97. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  98. <ColumnInfo>
  99. <Column id="basedd" type="STRING" size="256"/>
  100. <Column id="srchflag" type="STRING" size="256"/>
  101. <Column id="srchcnts" type="STRING" size="256"/>
  102. </ColumnInfo>
  103. <Rows>
  104. <Row/>
  105. </Rows>
  106. </Dataset>
  107. <Dataset id="ds_prdlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  108. <Column id="instcd" type="STRING" size="256"/>
  109. <Column id="drugcd" type="STRING" size="256"/>
  110. <Column id="fromdd" type="STRING" size="256"/>
  111. <Column id="todd" type="STRING" size="256"/>
  112. <Column id="ordnm" type="STRING" size="256"/>
  113. <Column id="hngnm" type="STRING" size="256"/>
  114. <Column id="gtin" type="STRING" size="256"/>
  115. <Column id="gtins" type="STRING" size="256"/>
  116. <Column id="gtine" type="STRING" size="256"/>
  117. <Column id="lots" type="STRING" size="256"/>
  118. <Column id="lote" type="STRING" size="256"/>
  119. <Column id="exps" type="STRING" size="256"/>
  120. <Column id="expe" type="STRING" size="256"/>
  121. <Column id="sns" type="STRING" size="256"/>
  122. <Column id="sne" type="STRING" size="256"/>
  123. <Column id="prtm_se_nm" type="STRING" size="256"/>
  124. <Column id="prd_min_distb_qy" type="STRING" size="256"/>
  125. <Column id="prd_min_distb_unit" type="STRING" size="256"/>
  126. <Column id="prd_tot_pce_qy" type="STRING" size="256"/>
  127. <Column id="prd_pce_unit" type="STRING" size="256"/>
  128. <ColumnInfo>
  129. <Column id="drugcd" type="STRING" size="256"/>
  130. <Column id="ordnm" type="STRING" size="256"/>
  131. <Column id="hngnm" type="STRING" size="256"/>
  132. <Column id="gtin" type="STRING" size="256"/>
  133. <Column id="lots" type="STRING" size="256"/>
  134. <Column id="lote" type="STRING" size="256"/>
  135. <Column id="exps" type="STRING" size="256"/>
  136. <Column id="expe" type="STRING" size="256"/>
  137. <Column id="sns" type="STRING" size="256"/>
  138. <Column id="sne" type="STRING" size="256"/>
  139. <Column id="prtm_se_nm" type="STRING" size="256"/>
  140. <Column id="prd_min_distb_qy" type="STRING" size="256"/>
  141. <Column id="prd_min_distb_unit" type="STRING" size="256"/>
  142. <Column id="prd_tot_pce_qy" type="STRING" size="256"/>
  143. <Column id="prd_pce_unit" type="STRING" size="256"/>
  144. <Column id="fromdd" type="STRING" size="256"/>
  145. <Column id="todd" type="STRING" size="256"/>
  146. </ColumnInfo>
  147. </Dataset>
  148. <Dataset id="ds_temp_receivedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  149. <ColumnInfo>
  150. <Column id="receiveref" type="STRING" size="256"/>
  151. <Column id="receive_drugcd" type="STRING" size="256"/>
  152. <Column id="receive_hngnm" type="STRING" size="256"/>
  153. <Column id="receive_gtin" type="STRING" size="256"/>
  154. <Column id="receive_prtm_se_nm" type="STRING" size="256"/>
  155. <Column id="receive_prd_min_distb_qy" type="STRING" size="256"/>
  156. <Column id="receive_prd_min_distb_unit" type="STRING" size="256"/>
  157. <Column id="receive_prd_tot_pce_qy" type="STRING" size="256"/>
  158. <Column id="receive_prd_pce_unit" type="STRING" size="256"/>
  159. <Column id="basedd" type="STRING" size="256"/>
  160. </ColumnInfo>
  161. <Rows>
  162. <Row/>
  163. </Rows>
  164. </Dataset>
  165. </Objects>
  166. <Bind>
  167. <BindItem id="item5" compid="grp_srch.cmb_srchflag" propid="value" datasetid="ds_send" columnid="srchflag"/>
  168. <BindItem id="item6" compid="grp_srch.ipt_srchcnts" propid="value" datasetid="ds_send" columnid="srchcnts"/>
  169. </Bind>
  170. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  171. * System Name : 경대 의료정보시스템
  172. * Job Name : ast_pharmacydrugsumxp-> SMADT12120
  173. * Creator : pjb
  174. * Make Date : 2018-03-26
  175. * Description :
  176. *---------------------------------------------------------------------------------------
  177. * Modify Date Modifier Modify Description
  178. *---------------------------------------------------------------------------------------
  179. * 2018-03-26 pjb XP개발
  180. *
  181. *---------------------------------------------------------------------------------------
  182. ****************************************************************************************/
  183. //=======================================================================================
  184. // Lib Include
  185. //---------------------------------------------------------------------------------------
  186. include "com_commonxp::comm_main.xjs"
  187. //=======================================================================================
  188. // Global Form Variable
  189. //---------------------------------------------------------------------------------------
  190. var arErrorCode = new HashArray();
  191. //=======================================================================================
  192. // Function
  193. //---------------------------------------------------------------------------------------
  194. function btn_cls_onclick(obj:Button, e:ClickEventInfo)
  195. {
  196. this.close();
  197. }
  198. //=======================================================================================
  199. // Event
  200. //---------------------------------------------------------------------------------------
  201. /****************************************************************************************
  202. * Components : Form
  203. * Components ID : SMADT12120
  204. * Event : oninit
  205. * Argument : 01.obj : Object Event has occurred
  206. * : 02.e : Event Object
  207. * Description : 화면 처음 초기화시
  208. ****************************************************************************************/
  209. function SMADT12120_oninit(obj:Form, e:InitEventInfo)
  210. {
  211. frmf_initForm(obj); //폼 초기화
  212. }
  213. /****************************************************************************************
  214. * Components : Form
  215. * Components ID : SMADT12120
  216. * Event : onload
  217. * Argument : 01.obj : Object Event has occurred
  218. * : 02.e : Event Object
  219. * Description : 화면 로딩 완료시
  220. ****************************************************************************************/
  221. function SMADT12120_onload(obj:Form, e:LoadEventInfo)
  222. {
  223. // grdf_setRowTypeIcon(grd_prdlist, 0);
  224. grdf_setGridSort(grd_prdlist);
  225. // 오프너에서 전달받은 정보
  226. try{
  227. dsf_copyDs(ds_temp_receivedata, arg_ds_temp_receivedata, "replace");
  228. }catch(e){}
  229. ds_send.setColumn(0, "srchflag", "1"); //1:약품코드, 3:한글명칭
  230. ds_send.setColumn(0, "srchcnts", "");
  231. ds_send.setColumn(0, "basedd", ds_temp_receivedata.getColumn(0,"basedd"));
  232. //조회버튼 Click Event Call
  233. var e = new ClickEventInfo;
  234. grp_srch.btn_sea.onclick.fireEvent(grp_srch.btn_sea, e);
  235. grp_srch.ipt_srchcnts.setFocus();
  236. }
  237. /****************************************************************************************
  238. * Components : Button
  239. * Components ID : grp_srch.btn_sea
  240. * Event : onclick
  241. * Argument : 01.obj : Object Event has occurred
  242. * : 02.e : Event Object
  243. * Description : 조회버튼 클릭
  244. ****************************************************************************************/
  245. function grp_srch_btn_sea_onclick(obj:Button, e:ClickEventInfo)
  246. {
  247. //마약류 품목 목록 조회(기준일자 없이 전체 이력 조회)
  248. var oParam = {};
  249. oParam.id = "TRADT12121";
  250. oParam.service = "pharmacydrugsumapp.NarcManagent";
  251. oParam.method = "reqGetPrdList";
  252. oParam.inds = "req=ds_send";
  253. oParam.outds = "ds_prdlist=prdlist";
  254. oParam.async = false;
  255. oParam.callback = "cf_TRADT12121";
  256. tranf_submit(oParam);
  257. if (arErrorCode.pop("TRADT12121") > -1){
  258. if(ds_prdlist.rowcount > 0) {
  259. grd_prdlist.setFocus();
  260. } else {
  261. grp_srch.ipt_srchcnts.setFocus();
  262. }
  263. }
  264. }
  265. function cf_TRADT12121(sSvcId, nErrorCode, sErrorMsg) {
  266. arErrorCode.push(sSvcId, nErrorCode);
  267. }
  268. /****************************************************************************************
  269. * Components : Edit
  270. * Components ID : grp_srch.ipt_srchcnts
  271. * Event : onkeydown
  272. * Argument : 01.obj : Object Event has occurred
  273. * : 02.e : Event Object
  274. * Description : 조회조건 입력 후 엔터키로 조회
  275. ****************************************************************************************/
  276. function grp_srch_ipt_srchcnts_onkeydown(obj:Edit, e:KeyEventInfo)
  277. {
  278. if(e.keycode == 13) {
  279. grp_srch.ipt_srchcnts.updateToDataset();
  280. var ev = new ClickEventInfo;
  281. frmf_inputEnterKey("grp_srch.btn_sea", "onclick", ev);
  282. }
  283. }
  284. /****************************************************************************************
  285. * Components : Grid
  286. * Components ID : grd_prdlist
  287. * Event : oncelldblclick
  288. * Argument : 01.obj : Object Event has occurred
  289. * : 02.e : Event Object
  290. * Description : 처방 더블클릭하여 호출한 화면에 전달
  291. ****************************************************************************************/
  292. function grd_prdlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  293. {
  294. var receiveref = ds_temp_receivedata.getColumn(0,"receiveref");
  295. // opener 에서 TF 에선 xpath를 다 보내줬지만 XP에선 불가. DS 따로 cd나 nm을 받을 컬럼을 따로 구분하여 호출해야한다.
  296. var drugcd = ds_temp_receivedata.getColumn(0,"receive_drugcd");
  297. var hngnm = ds_temp_receivedata.getColumn(0,"receive_hngnm");
  298. var gtin = ds_temp_receivedata.getColumn(0,"receive_gtin");
  299. var prtm_se_nm = ds_temp_receivedata.getColumn(0,"receive_prtm_se_nm");
  300. var prd_min_distb_qy = ds_temp_receivedata.getColumn(0,"receive_prd_min_distb_qy");
  301. var prd_min_distb_unit = ds_temp_receivedata.getColumn(0,"receive_prd_min_distb_unit");
  302. var prd_tot_pce_qy = ds_temp_receivedata.getColumn(0,"receive_prd_tot_pce_qy");
  303. var prd_pce_unit = ds_temp_receivedata.getColumn(0,"receive_prd_pce_unit");
  304. /* Null일때 명칭 잡아주는 부분임. 여기서는 불필요
  305. if(utlf_isNull(receiveref)) receiveref = "ds_temp_receivedata";
  306. if(utlf_isNull(drugcd)) drugcd = "drugcd";
  307. if(utlf_isNull(hngnm)) hngnm = "hngnm";
  308. if(utlf_isNull(gtin)) gtin = "gtin";
  309. */
  310. if(this.getOwnerFrame().form.frmf_checkOpener()) {
  311. dsf_makeValue(this.getOwnerFrame().form.opener.objects[receiveref],drugcd,"string",ds_prdlist.getColumn(e.row,"drugcd"));
  312. dsf_makeValue(this.getOwnerFrame().form.opener.objects[receiveref],hngnm,"string",ds_prdlist.getColumn(e.row,"hngnm"));
  313. dsf_makeValue(this.getOwnerFrame().form.opener.objects[receiveref],gtin,"string",ds_prdlist.getColumn(e.row,"gtin"));
  314. dsf_makeValue(this.getOwnerFrame().form.opener.objects[receiveref],prtm_se_nm,"string",ds_prdlist.getColumn(e.row,"prtm_se_nm"));
  315. dsf_makeValue(this.getOwnerFrame().form.opener.objects[receiveref],prd_min_distb_qy,"string",ds_prdlist.getColumn(e.row,"prd_min_distb_qy"));
  316. dsf_makeValue(this.getOwnerFrame().form.opener.objects[receiveref],prd_min_distb_unit,"string",ds_prdlist.getColumn(e.row,"prd_min_distb_unit"));
  317. dsf_makeValue(this.getOwnerFrame().form.opener.objects[receiveref],prd_tot_pce_qy,"string",ds_prdlist.getColumn(e.row,"prd_tot_pce_qy"));
  318. dsf_makeValue(this.getOwnerFrame().form.opener.objects[receiveref],prd_pce_unit,"string",ds_prdlist.getColumn(e.row,"prd_pce_unit"));
  319. this.getOwnerFrame().form.close();
  320. } else {
  321. sysf_messageBox("상위화면이 변경되어 데이터를 전달할 수 없습니다.","E");
  322. }
  323. }
  324. /****************************************************************************************
  325. * Components : Button
  326. * Components ID : grp_srch.btn_api
  327. * Event : onclick
  328. * Argument : 01.obj : Object Event has occurred
  329. * : 02.e : Event Object
  330. * Description : api 버튼 클릭
  331. ****************************************************************************************/
  332. function grp_srch_btn_api_onclick(obj:Button, e:ClickEventInfo)
  333. {
  334. //마약류 품목 목록 조회
  335. var oParam = {};
  336. oParam.id = "TRADT12122";
  337. oParam.service = "pharmacydrugsumapp.NarcManagent";
  338. oParam.method = "reqGetPrdListAPI";
  339. oParam.inds = "req=ds_send";
  340. oParam.outds = "ds_prdlist=prdlist";
  341. oParam.async = false;
  342. //oParam.callback = "cf_TRADT12122";
  343. tranf_submit(oParam);
  344. }
  345. function btn_download_onclick(obj:Button, e:ClickEventInfo)
  346. {
  347. //조회된 자료가 없으면 먼저 조회하라고 message
  348. if(ds_prdlist.rowcount < 1) {
  349. sysf_messageBox("조회된 결과가 존재하지 않습니다. \n\n먼저 조회 후 Download 하십시요. ", "E999", "");
  350. return;
  351. }
  352. grdf_exportExcel(grd_prdlist, "excel", "savetype", false, "", "user", false);
  353. }
  354. function grp_srch_cmb_srchflag_oncloseup(obj:Combo, e:ComboCloseUpEventInfo)
  355. {
  356. grp_srch.ipt_srchcnts.setFocus();
  357. }
  358. ]]></Script>
  359. </Form>
  360. </FDL>