SPADB63300_약품식별마스터성분별수정.xfdl 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPADB63300" position="absolute 0 0 1196 744" titletext="약품식별마스터성분별수정" oninit="SPADB63300_oninit" onload="SPADB63300_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" text="약품식별 마스터 - 성분별 수정" class="tit_1" position="absolute 0 0 240 25"/>
  8. <Div id="group2" taborder="1" position="absolute 0 25 1195 65" class="div_SA" anchor="left top right">
  9. <Layouts>
  10. <Layout>
  11. <Shape id="line13" linetype="vertical" position="absolute 1109 5 1115 35" anchor="top right"/>
  12. <Static id="caption2" text="검색조건 :" class="search_name" position="absolute 20 13 103 30" anchor="default"/>
  13. <Combo id="cmb_srchflag" taborder="1" codecolumn="codecolumn" datacolumn="datacolumn" class="combo_search" position="absolute 107 11 260 30" anchor="default">
  14. <Dataset id="innerdataset">
  15. <ColumnInfo>
  16. <Column id="codecolumn"/>
  17. <Column id="datacolumn"/>
  18. </ColumnInfo>
  19. <Rows>
  20. <Row>
  21. <Col id="codecolumn">drugcd</Col>
  22. <Col id="datacolumn">약품코드</Col>
  23. </Row>
  24. <Row>
  25. <Col id="codecolumn">hngnm</Col>
  26. <Col id="datacolumn">한글약품명</Col>
  27. </Row>
  28. <Row>
  29. <Col id="codecolumn">engnm</Col>
  30. <Col id="datacolumn">영문약품명</Col>
  31. </Row>
  32. <Row>
  33. <Col id="codecolumn">comcnts</Col>
  34. <Col id="datacolumn">성분 및 함량</Col>
  35. </Row>
  36. <Row>
  37. <Col id="codecolumn">atccode</Col>
  38. <Col id="datacolumn">ATC성분코드</Col>
  39. </Row>
  40. <Row>
  41. <Col id="codecolumn">atccodenm</Col>
  42. <Col id="datacolumn">ATC성분코드 명칭</Col>
  43. </Row>
  44. </Rows>
  45. </Dataset>
  46. </Combo>
  47. <Edit id="ipt_srchval" taborder="2" class="input_search" position="absolute 265 11 405 30" anchor="default" onkeydown="group2_ipt_srchval_onkeydown"/>
  48. <Button id="btn_sea" taborder="3" text="조회" class="btn1" position="absolute 1129 9 1185 31" anchor="top right" onclick="group2_btn_sea_onclick"/>
  49. <Static id="caption26" text="일자 :" class="search_name" position="absolute 460 13 522 30" anchor="default"/>
  50. <Calendar id="ipt_srchfromdd" taborder="4" class="input_search" position="absolute 620 11 725 30" anchor="default" onchanged="group2_ipt_srchfromdd_onchanged"/>
  51. <Combo id="cmb_srchflag2" taborder="5" codecolumn="codecolumn" datacolumn="datacolumn" class="combo_search" position="absolute 525 11 615 30" anchor="default">
  52. <Dataset id="innerdataset">
  53. <ColumnInfo>
  54. <Column id="codecolumn"/>
  55. <Column id="datacolumn"/>
  56. </ColumnInfo>
  57. <Rows>
  58. <Row>
  59. <Col id="codecolumn">fstrgstdt</Col>
  60. <Col id="datacolumn">등록일자</Col>
  61. </Row>
  62. <Row>
  63. <Col id="codecolumn">lastupdt</Col>
  64. <Col id="datacolumn">수정일자</Col>
  65. </Row>
  66. </Rows>
  67. </Dataset>
  68. </Combo>
  69. <Calendar id="ipt_srchtodd" taborder="6" class="input_search" position="absolute 745 11 850 30" anchor="default" onchanged="group2_ipt_srchtodd_onchanged"/>
  70. <Static id="caption1" text="~" position="absolute 729 10 744 30" anchor="default"/>
  71. </Layout>
  72. </Layouts>
  73. </Div>
  74. <Div id="group5" taborder="2" position="absolute 0 68 1195 90" anchor="left top right">
  75. <Layouts>
  76. <Layout>
  77. <Button id="btn_save" taborder="0" text="저장" class="btn4" position="absolute 1137 0 1193 22" anchor="top right" onclick="group5_btn_save_onclick"/>
  78. </Layout>
  79. </Layouts>
  80. </Div>
  81. <Div id="group3" taborder="3" position="absolute 0 90 1195 744" anchor="all">
  82. <Layouts>
  83. <Layout>
  84. <Grid id="grd_druginfo" taborder="1" binddataset="ds_main_druginfo_atcdruglist" useinputpanel="false" position="absolute 0 5 1195 654" anchor="all" cellsizingtype="both" selecttype="multiarea" autosizingtype="row" extendsizetype="row" onexpandup="group3_grd_druginfo_onexpandup" autoenter="key" onrbuttonup="group3_grd_druginfo_onrbuttonup" onlbuttondown="group3_grd_druginfo_onlbuttondown" oncellclick="group3_grd_druginfo_oncellclick" onkeydown="group3_grd_druginfo_onkeydown">
  85. <Formats>
  86. <Format id="default">
  87. <Columns>
  88. <Column size="25" band="left"/>
  89. <Column size="0"/>
  90. <Column size="83"/>
  91. <Column size="130"/>
  92. <Column size="80"/>
  93. <Column size="93"/>
  94. <Column size="230"/>
  95. <Column size="210"/>
  96. <Column size="100"/>
  97. <Column size="100"/>
  98. <Column size="215"/>
  99. <Column size="209"/>
  100. <Column size="100"/>
  101. </Columns>
  102. <Rows>
  103. <Row size="40" band="head"/>
  104. <Row size="24"/>
  105. </Rows>
  106. <Band id="head">
  107. <Cell/>
  108. <Cell col="1" text="idcd"/>
  109. <Cell col="2" text="ATC성분코드"/>
  110. <Cell col="3" text="ATC 성분코드명"/>
  111. <Cell col="4" text="본원사용"/>
  112. <Cell col="5" text="약품코드"/>
  113. <Cell col="6" text="성분 및 함량"/>
  114. <Cell col="7" text="효능 효과"/>
  115. <Cell col="8" text="동효약"/>
  116. <Cell col="9" text="동종약"/>
  117. <Cell col="10" text="한글상품명"/>
  118. <Cell col="11" text="영문상품명"/>
  119. <Cell col="12" text="제약회사"/>
  120. </Band>
  121. <Band id="body">
  122. <Cell celltype="head" displaytype="image"/>
  123. <Cell col="1" text="bind:idcd"/>
  124. <Cell col="2" displaytype="text" edittype="text" style="align:left middle;padding:3 3 3 3;" text="bind:atccode" wordwrap="char" editautoselect="true" expandshow="show" autosizerow="limitmin"/>
  125. <Cell col="3" style="align:left middle;padding:3 3 3 3;" text="bind:atccodenm" wordwrap="char" editautoselect="true" autosizerow="limitmin"/>
  126. <Cell col="4" displaytype="combo" edittype="combo" style="align:center middle;padding:3 3 3 3;" text="bind:useyn" wordwrap="char" editautoselect="true" combodataset="ds_init_A0635" combocodecol="cdid" combodatacol="cdnm" autosizerow="limitmin"/>
  127. <Cell col="5" displaytype="text" edittype="text" style="align:left middle;padding:3 3 3 3;" text="bind:drugcd" wordwrap="char" editautoselect="true" expandshow="show" autosizerow="limitmin"/>
  128. <Cell col="6" displaytype="text" edittype="text" style="align:left middle;padding:3 3 3 3;" text="bind:comcnts" wordwrap="char" editautoselect="true" autosizerow="limitmin"/>
  129. <Cell col="7" displaytype="text" edittype="text" style="align:left middle;padding:3 3 3 3;" text="bind:efcysmm" wordwrap="char" editautoselect="true" autosizerow="limitmin"/>
  130. <Cell col="8" displaytype="text" edittype="text" style="align:left middle;padding:3 3 3 3;" text="bind:samedrug" wordwrap="char" editautoselect="true" autosizerow="limitmin"/>
  131. <Cell col="9" displaytype="text" edittype="text" style="align:left middle;padding:3 3 3 3;" text="bind:homodrugflag" wordwrap="char" editautoselect="true" autosizerow="limitmin"/>
  132. <Cell col="10" displaytype="text" edittype="text" style="align:left middle;padding:3 3 3 3;" text="bind:hngnm" wordwrap="char" editautoselect="true" autosizerow="limitmin"/>
  133. <Cell col="11" displaytype="text" edittype="text" style="align:left middle;padding:3 3 3 3;" text="bind:engnm" wordwrap="char" editautoselect="true" autosizerow="limitmin"/>
  134. <Cell col="12" displaytype="text" edittype="text" style="align:left middle;padding:3 3 3 3;" text="bind:prodcmpynm" wordwrap="char" editautoselect="true" expandshow="show" autosizerow="limitmin"/>
  135. </Band>
  136. </Format>
  137. </Formats>
  138. </Grid>
  139. <Grid id="grd_com" taborder="2" binddataset="ds_temp_cominfo" useinputpanel="false" visible="false" position="absolute 65 105 415 165" anchor="default">
  140. <Formats>
  141. <Format id="default">
  142. <Columns>
  143. <Column size="100"/>
  144. <Column size="100"/>
  145. <Column size="100"/>
  146. </Columns>
  147. <Rows>
  148. <Row size="24" band="head"/>
  149. <Row size="24"/>
  150. </Rows>
  151. <Band id="head">
  152. <Cell text="caption1"/>
  153. <Cell col="1" text="caption2"/>
  154. <Cell col="2" text="caption3"/>
  155. </Band>
  156. <Band id="body">
  157. <Cell text="bind:comcd"/>
  158. <Cell col="1" text="bind:comexcd"/>
  159. <Cell col="2" text="bind:comnm"/>
  160. </Band>
  161. </Format>
  162. </Formats>
  163. </Grid>
  164. <Shape id="line13" class="line_1" position="absolute 0 0 1194 6" anchor="left top right"/>
  165. <Shape id="line00" class="line_1" position="absolute 0 -1 1194 5" anchor="left top right"/>
  166. <Shape id="line01" class="line_1" position="absolute 0 1 1194 7" anchor="left top right"/>
  167. </Layout>
  168. </Layouts>
  169. </Div>
  170. </Layout>
  171. </Layouts>
  172. <Objects>
  173. <Dataset id="ds_main_druginfo_atcdruglist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_druginfo_atcdruglist_oncolumnchanged">
  174. <ColumnInfo>
  175. <Column id="idcd" type="STRING" size="256"/>
  176. <Column id="atccode" type="STRING" size="256"/>
  177. <Column id="atccodenm" type="STRING" size="256"/>
  178. <Column id="useyn" type="STRING" size="256"/>
  179. <Column id="drugcd" type="STRING" size="256"/>
  180. <Column id="comcnts" type="STRING" size="256"/>
  181. <Column id="efcysmm" type="STRING" size="256"/>
  182. <Column id="samedrug" type="STRING" size="256"/>
  183. <Column id="homodrugflag" type="STRING" size="256"/>
  184. <Column id="hngnm" type="STRING" size="256"/>
  185. <Column id="engnm" type="STRING" size="256"/>
  186. <Column id="prodcmpynm" type="STRING" size="256"/>
  187. </ColumnInfo>
  188. <Rows>
  189. <Row>
  190. <Col id="idcd"/>
  191. <Col id="atccode"/>
  192. <Col id="atccodenm"/>
  193. <Col id="useyn"/>
  194. <Col id="drugcd"/>
  195. <Col id="comcnts"/>
  196. <Col id="efcysmm"/>
  197. <Col id="samedrug"/>
  198. <Col id="homodrugflag"/>
  199. <Col id="hngnm"/>
  200. <Col id="engnm"/>
  201. <Col id="prodcmpynm"/>
  202. </Row>
  203. </Rows>
  204. </Dataset>
  205. <Dataset id="ds_send_srchinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  206. <ColumnInfo>
  207. <Column id="srchflag" type="STRING" size="256"/>
  208. <Column id="srchval" type="STRING" size="256"/>
  209. <Column id="srchflag2" type="STRING" size="256"/>
  210. <Column id="srchfromdd" type="STRING" size="256"/>
  211. <Column id="srchtodd" type="STRING" size="256"/>
  212. <Column id="instcd" type="STRING" size="256"/>
  213. </ColumnInfo>
  214. <Rows>
  215. <Row>
  216. <Col id="srchflag">atccode</Col>
  217. <Col id="srchval"/>
  218. <Col id="srchflag2">fstrgstdt</Col>
  219. <Col id="srchfromdd"/>
  220. <Col id="srchtodd"/>
  221. <Col id="instcd"/>
  222. </Row>
  223. </Rows>
  224. </Dataset>
  225. <Dataset id="ds_send_saveitem_drugidinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  226. <Dataset id="ds_send_imginfo_drugidinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  227. <Dataset id="ds_send_srchcode" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  228. <ColumnInfo>
  229. <Column id="codetype" type="STRING" size="256"/>
  230. <Column id="code" type="STRING" size="256"/>
  231. </ColumnInfo>
  232. </Dataset>
  233. <Dataset id="ds_init_A0635" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  234. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  235. <ColumnInfo>
  236. <Column id="receivecom" type="STRING" size="256"/>
  237. <Column id="receiveref" type="STRING" size="256"/>
  238. <Column id="receivedrugcd" type="STRING" size="256"/>
  239. <Column id="receiveprodcmpy" type="STRING" size="256"/>
  240. </ColumnInfo>
  241. <Rows>
  242. <Row>
  243. <Col id="receivecom">ds_temp_cominfo</Col>
  244. <Col id="receiveref">ds_temp_receivedata</Col>
  245. <Col id="receivedrugcd">drugcd</Col>
  246. <Col id="receiveprodcmpy">ds_temp_prodcmpy</Col>
  247. </Row>
  248. </Rows>
  249. </Dataset>
  250. <Dataset id="ds_temp_cominfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  251. <ColumnInfo>
  252. <Column id="comcd" type="STRING" size="256"/>
  253. <Column id="comexcd" type="STRING" size="256"/>
  254. <Column id="comnm" type="STRING" size="256"/>
  255. </ColumnInfo>
  256. <Rows>
  257. <Row/>
  258. </Rows>
  259. </Dataset>
  260. <Dataset id="ds_temp_receivedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  261. <ColumnInfo>
  262. <Column id="receiveref" type="STRING" size="256"/>
  263. <Column id="receivedrugcd" type="STRING" size="256"/>
  264. <Column id="drugcd" type="STRING" size="256"/>
  265. <Column id="drugnm" type="STRING" size="256"/>
  266. <Column id="comcd" type="STRING" size="256"/>
  267. </ColumnInfo>
  268. <Rows>
  269. <Row>
  270. <Col id="receiveref">ds_temp_receivedata</Col>
  271. <Col id="receivedrugcd">drugcd</Col>
  272. </Row>
  273. </Rows>
  274. </Dataset>
  275. <Dataset id="ds_temp_codeinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  276. <ColumnInfo>
  277. <Column id="codenm" type="STRING" size="256"/>
  278. </ColumnInfo>
  279. <Rows>
  280. <Row/>
  281. </Rows>
  282. </Dataset>
  283. <Dataset id="ds_temp_prodcmpy" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  284. <ColumnInfo>
  285. <Column id="prodcmpy" type="STRING" size="256"/>
  286. </ColumnInfo>
  287. <Rows>
  288. <Row/>
  289. </Rows>
  290. </Dataset>
  291. </Objects>
  292. <Bind>
  293. <BindItem id="item0" compid="group2.cmb_srchflag" propid="value" datasetid="ds_send_srchinfo" columnid="srchflag"/>
  294. <BindItem id="item1" compid="group2.ipt_srchval" propid="value" datasetid="ds_send_srchinfo" columnid="srchval"/>
  295. <BindItem id="item2" compid="group2.cmb_srchflag2" propid="value" datasetid="ds_send_srchinfo" columnid="srchflag2"/>
  296. <BindItem id="item3" compid="group2.ipt_srchfromdd" propid="value" datasetid="ds_send_srchinfo" columnid="srchfromdd"/>
  297. <BindItem id="item4" compid="group2.ipt_srchtodd" propid="value" datasetid="ds_send_srchinfo" columnid="srchtodd"/>
  298. </Bind>
  299. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  300. * System Name :
  301. * Job Name :
  302. * Creator :
  303. * Make Date : 2015-11-13
  304. * Description :
  305. *---------------------------------------------------------------------------------------
  306. * Modify Date Modifier Modify Description
  307. *---------------------------------------------------------------------------------------
  308. * 2015-11-13 Live Converter TF->XP
  309. *
  310. *---------------------------------------------------------------------------------------
  311. ****************************************************************************************/
  312. //=======================================================================================
  313. // Lib Include
  314. //---------------------------------------------------------------------------------------
  315. include "com_commonxp::comm_main.xjs"
  316. include "emr_prcpmngtxp::MMOCommon.xjs"
  317. //=======================================================================================
  318. // Global Form Variable
  319. //---------------------------------------------------------------------------------------
  320. var arErrorCode = new HashArray();
  321. var gv_useyn = "";
  322. //=======================================================================================
  323. // Function
  324. //---------------------------------------------------------------------------------------
  325. /****************************************************************************************
  326. * Argument : N/A
  327. * Description : 복사하기
  328. ****************************************************************************************/
  329. function fRowCopy(){
  330. astgrid_oncopy();
  331. }
  332. /****************************************************************************************
  333. * Argument : N/A
  334. * Description : 붙여넣기
  335. ****************************************************************************************/
  336. function fPaste(){
  337. astgrid_onpaste();
  338. }
  339. /****************************************************************************************
  340. * Argument : N/A
  341. * Description : 지우기
  342. ****************************************************************************************/
  343. function fdel(){
  344. fgrid_clear();
  345. }
  346. /****************************************************************************************
  347. * Argument : N/A
  348. * Description : 본원사용 X 일괄수정
  349. ****************************************************************************************/
  350. function fchguseynX(){
  351. gv_useyn = "-";
  352. fchguseyn(gv_useyn);
  353. }
  354. /****************************************************************************************
  355. * Argument : N/A
  356. * Description : 본원사용 O 일괄수정
  357. ****************************************************************************************/
  358. function fchguseynO(){
  359. gv_useyn = "1";
  360. fchguseyn(gv_useyn);
  361. }
  362. /****************************************************************************************
  363. * Argument : N/A
  364. * Description : 타회사 일괄수정
  365. ****************************************************************************************/
  366. function fchguseynDP(){
  367. gv_useyn = "2";
  368. fchguseyn(gv_useyn);
  369. }
  370. /****************************************************************************************
  371. * Argument : N/A
  372. * Description : 타용량 일괄수정
  373. ****************************************************************************************/
  374. function fchguseynDQ(){
  375. gv_useyn = "3";
  376. fchguseyn(gv_useyn);
  377. }
  378. /****************************************************************************************
  379. * Argument : N/A
  380. * Description : 타회사-타용량 일괄수정
  381. ****************************************************************************************/
  382. function fchguseynDPQ(){
  383. gv_useyn = "4";
  384. fchguseyn(gv_useyn);
  385. }
  386. /****************************************************************************************
  387. * Argument : useyn - 입력할 값
  388. * Description : 본원사용여부 일괄수정 - 1. 선택된 셀들에 대해서 일괄수정 기능
  389. ****************************************************************************************/
  390. function fchguseyn(useyn){
  391. var firstCell = grdf_getFirstCell(group3.grd_druginfo);
  392. var lastCell = grdf_getLastCell(group3.grd_druginfo);
  393. var rowUseyn = ""
  394. for(var i = firstCell.row; i <= lastCell.row; i++ ) {
  395. rowUseyn = ds_main_druginfo_atcdruglist.getColumn(i,"useyn");
  396. if(rowUseyn != useyn){
  397. ds_main_druginfo_atcdruglist.setColumn(i,"useyn",useyn);
  398. }
  399. }
  400. }
  401. /****************************************************************************************
  402. * Argument : N/A
  403. * Description : 그리드 복사하기
  404. ****************************************************************************************/
  405. function astgrid_oncopy() {
  406. var cellValue;
  407. var rClipBoardValue = "";
  408. var gridObj = group3.grd_druginfo;
  409. var dsObj = objects[gridObj.binddataset];
  410. var selectedRows = grdf_getSelectedRows(gridObj);
  411. var selectedCols = grdf_getSelectedCols(gridObj)
  412. if(selectedRows.length == 0) return;
  413. var firstCell = grdf_getFirstCell(gridObj);
  414. var lastCell = grdf_getLastCell(gridObj);
  415. var i, j;
  416. for(var i = firstCell.row; i <= lastCell.row; i++ ) {
  417. for (var j = firstCell.col; j <= lastCell.col; j++ ) {
  418. if(j != gridObj.getBindCellIndex("body","atccodenm")) { // atc 성분코드명 변경 불가
  419. cellValue = dsObj.getColumn(i,lf_getBindCellName(gridObj,j));
  420. }
  421. rClipBoardValue += cellValue;
  422. if(j != lastCell.col) rClipBoardValue += "\t";
  423. }
  424. rClipBoardValue += "\r\n";
  425. }
  426. var setClipBoardFlag = true;
  427. // selectedCells 갯수와 rClipBoardValue의 갯수 비교
  428. var cntRClip = 0;
  429. var cntRRow = rClipBoardValue.split("\r\n").length;
  430. var cntRCol = rClipBoardValue.split("\r\n")[0].split("\t").length;
  431. if(selectedRows.length * selectedCols.length != ( cntRRow - 1 ) * cntRCol) {
  432. setClipBoardFlag = false;
  433. }
  434. // selectedCell이 firstCell부터 lastCell까지 속해있나 비교
  435. for(var i = 0; i < selectedRows.length; i++ ) {
  436. //sysf_trace(i+" 2222 "+firstCell.row +"/"+selectedRows[i]+"/"+lastCell.row);
  437. if(firstCell.row > selectedRows[i] || lastCell.row < selectedRows[i]) {
  438. setClipBoardFlag = false;
  439. break;
  440. }
  441. }
  442. for(var i = 0; i < selectedCols.length; i++ ) {
  443. //sysf_trace(i+" 3333 "+firstCell.col +"/"+selectedCols[i]+"/"+lastCell.col);
  444. if(firstCell.col > selectedCols[i] || lastCell.col < selectedCols[i]) {
  445. setClipBoardFlag = false;
  446. break;
  447. }
  448. }
  449. if( !setClipBoardFlag ) {
  450. sysf_messageBox("다중 선택 범위에서는", "E001");
  451. return;
  452. }
  453. if(!utlf_isNull(rClipBoardValue)) system.setClipboard("CF_TEXT",rClipBoardValue);
  454. }
  455. /****************************************************************************************
  456. * Argument : N/A
  457. * Description : 그리드 붙여넣기
  458. ****************************************************************************************/
  459. function astgrid_onpaste(){
  460. var gridObj = group3.grd_druginfo;
  461. var dsObj = objects[gridObj.binddataset];
  462. var selectedRows = grdf_getSelectedRows(gridObj);
  463. var selectedCols = grdf_getSelectedCols(gridObj)
  464. var rClipBoardValue = system.getClipboard("CF_TEXT").replace(",","");
  465. if(utlf_isNull(rClipBoardValue)) return;
  466. var clipBoardRow = rClipBoardValue.split("\r\n");
  467. var firstCell = grdf_getFirstCell(gridObj);
  468. var lastCell = grdf_getLastCell(gridObj);
  469. var row = firstCell.row;
  470. for(var i = 0; i < clipBoardRow.length-1; i++){
  471. var clipBoardCol = clipBoardRow[i].split("\t"); // 클립보드에 저장된 내용을 tab 단위로 분리
  472. var col = firstCell.col;
  473. for(var j = 0; j < clipBoardCol.length; j++){
  474. if(col != gridObj.getBindCellIndex("body","atccodenm")) { // atc 성분코드명 변경 불가
  475. dsObj.setColumn(row,lf_getBindCellName(gridObj,col),clipBoardCol[j]);
  476. }
  477. col++;
  478. }
  479. row++;
  480. }
  481. }
  482. /****************************************************************************************
  483. * Argument : N/A
  484. * Description : 마우스 우클릭 팝업메뉴 : 지우기
  485. * : 팝업메뉴 클릭시 모든 기능 동작
  486. * : 단일행, 셀에 대해서만 단축키 동작 가능
  487. * : 멀티행, 셀에 대해서는 단축키 동작 불능
  488. ****************************************************************************************/
  489. function fgrid_clear(){
  490. var firstCell = grdf_getFirstCell(group3.grd_druginfo);
  491. var lastCell = grdf_getLastCell(group3.grd_druginfo);
  492. for(var i = firstCell.row; i <= lastCell.row; i++){
  493. for(var j = firstCell.col; j <= lastCell.col; j++){
  494. var colnm = lf_getBindCellName(group3.grd_druginfo,j);
  495. if(colnm != "atccodenm") { // atc 성분코드명 변경 불가
  496. ds_main_druginfo_atcdruglist.setColumn(i,colnm,"");
  497. }
  498. }
  499. }
  500. }
  501. /****************************************************************************************
  502. * Argument : col - column index
  503. * : row - row index
  504. * Description : 코드 조회
  505. ****************************************************************************************/
  506. function fCodeChg(col, row){
  507. var atccode = ds_main_druginfo_atcdruglist.getColumn(ds_main_druginfo_atcdruglist.rowposition,"atccode");
  508. var drugcd = ds_main_druginfo_atcdruglist.getColumn(ds_main_druginfo_atcdruglist.rowposition,"drugcd");
  509. var codenm = "";
  510. var codenm2 = "";
  511. var drugtype = "";
  512. if(!utlf_isNull(atccode) || !utlf_isNull(drugcd)){
  513. // 조회조건 설정
  514. if(group3.grd_druginfo.getBindCellIndex("body","atccode") == col){
  515. ds_send_srchcode.setColumn(0,"codetype","atccode");
  516. ds_send_srchcode.setColumn(0,"code",atccode.toUpperCase());
  517. }else if(group3.grd_druginfo.getBindCellIndex("body","drugcd") == col){
  518. ds_send_srchcode.setColumn(0,"codetype","drugcd");
  519. ds_send_srchcode.setColumn(0,"code",drugcd.toUpperCase());
  520. }
  521. // 조회부
  522. var oParam = {};
  523. oParam.id = "TRADB63302";
  524. oParam.service = "pharmacybaseapp.DrugIdBase";
  525. oParam.method = "reqGetCodeInfo";
  526. oParam.inds = "req=ds_send_srchcode";
  527. oParam.outds = "ds_temp_codeinfo=codeinfo";
  528. oParam.async = false;
  529. oParam.callback = "cf_TRADB63302";
  530. tranf_submit(oParam);
  531. if(arErrorCode.pop("TRADB63302") > -1) {
  532. codenm = ds_temp_codeinfo.getColumn(0,"codenm");
  533. codenm2 = ds_temp_codeinfo.getColumn(0,"codenm2");
  534. if(utlf_isNull(codenm)){
  535. sysf_messageBox("조회된 사항이", "I004");
  536. }else{
  537. drugtype = ds_temp_codeinfo.getColumn(0,"codetype");
  538. if(drugtype == "atccode"){
  539. ds_main_druginfo_atcdruglist.setColumn(ds_main_druginfo_atcdruglist.rowposition,"atccode" ,atccode.toUpperCase());
  540. ds_main_druginfo_atcdruglist.setColumn(ds_main_druginfo_atcdruglist.rowposition,"atccodenm" ,codenm);
  541. }else if(drugtype == "drugcd"){
  542. ds_main_druginfo_atcdruglist.setColumn(ds_main_druginfo_atcdruglist.rowposition,"drugcd" ,drugcd.toUpperCase());
  543. ds_main_druginfo_atcdruglist.setColumn(ds_main_druginfo_atcdruglist.rowposition,"comcnts" ,codenm);
  544. ds_main_druginfo_atcdruglist.setColumn(ds_main_druginfo_atcdruglist.rowposition,"hngnm" ,codenm2);
  545. }
  546. ds_temp_codeinfo.setColumn(0,"codenm","");
  547. }
  548. }
  549. }else{
  550. ds_send_srchcode.setColumn(0,"codetype" , "");
  551. ds_send_srchcode.setColumn(0,"code" , "");
  552. }
  553. }
  554. function cf_TRADB63302(sSvcId, nErrorCode, sErrorMsg) {
  555. arErrorCode.push(sSvcId, nErrorCode);
  556. }
  557. //=======================================================================================
  558. // Event
  559. //---------------------------------------------------------------------------------------
  560. /****************************************************************************************
  561. * Components : Form
  562. * Components ID : SPADB63300
  563. * Event : oninit
  564. * Argument : 01.obj : Object Event has occurred
  565. * : 02.e : Event Object
  566. * Description : 화면 처음 초기화시 폼초기화
  567. ****************************************************************************************/
  568. function SPADB63300_oninit(obj:Form, e:InitEventInfo)
  569. {
  570. frmf_initForm(obj); // 폼 초기화
  571. }
  572. /****************************************************************************************
  573. * Components : Form
  574. * Components ID : SPADB63300
  575. * Event : onload
  576. * Argument : 01.obj : Object Event has occurred
  577. * : 02.e : Event Object
  578. * Description : 화면 처음 초기화시 폼초기화
  579. ****************************************************************************************/
  580. function SPADB63300_onload(obj:Form, e:LoadEventInfo)
  581. {
  582. var arrParam = [{dsNm: "ds_init_A0635", cdGrpId: "A0635"} ///root/init/comboitem/useyn
  583. ]
  584. appf_getCodeList(arrParam);
  585. ds_main_druginfo_atcdruglist.clearData(); // 약품식별 그리드 초기화
  586. ds_temp_cominfo.clearData(); // 성분명 임시 그리드 초기화
  587. grdf_setRowTypeIcon(group3.grd_druginfo,0);
  588. frmf_createPopupMenu("pop_grd_druginfo"
  589. ,"fPopupMenu"
  590. ,[{id: "fRowCopy" , level: "0", title: "복사하기 Ctrl+C"}
  591. ,{id: "fPaste" , level: "0", title: "붙여넣기 Ctrl+V"}
  592. ,{id: "fdel" , level: "0", title: "지우기"}
  593. ]
  594. );
  595. frmf_createPopupMenu("pop_popupuseynmenu"
  596. ,"fPopupMenu"
  597. ,[{id: "-" , level: "0", title: "본원사용 일괄수정"}
  598. ,{id: "1" , level: "0", title: "-------------------"}
  599. ,{id: "X" , level: "0", title: "X"}
  600. ,{id: "O" , level: "0", title: "O"}
  601. ,{id: "DP" , level: "0", title: "O (타회사)"}
  602. ,{id: "DQ" , level: "0", title: "O (타용량)"}
  603. ,{id: "DPQ" , level: "0", title: "O (타회사-타용량)"}
  604. ,{id: "2" , level: "0", title: "-------------------"}
  605. ,{id: "fdel" , level: "0", title: "지우기"}
  606. ]
  607. );
  608. }
  609. /****************************************************************************************
  610. * Function : fPopupMenu
  611. * Description :
  612. * Argument :
  613. * return type :
  614. * Creator :
  615. ****************************************************************************************/
  616. function fPopupMenu(obj:PopupMenu, e:MenuClickEventInfo) {
  617. //pop_grd_druginfo
  618. if(e.id == "fRowCopy") {
  619. fRowCopy();
  620. }
  621. if(e.id == "fPaste") {
  622. fPaste();
  623. }
  624. if(e.id == "fdel") {
  625. fdel();
  626. }
  627. //pop_popupuseynmenu
  628. if(e.id == "X") {
  629. fchguseynX();
  630. }
  631. if(e.id == "O") {
  632. fchguseynO();
  633. }
  634. if(e.id == "DP") {
  635. fchguseynDP();
  636. }
  637. if(e.id == "DQ") {
  638. fchguseynDQ();
  639. }
  640. if(e.id == "DPQ") {
  641. fchguseynDPQ();
  642. }
  643. }
  644. /****************************************************************************************
  645. * Components : Button
  646. * Components ID : group2.btn_sea
  647. * Event : onclick
  648. * Argument : 01.obj : Object Event has occurred
  649. * : 02.e : Event Object
  650. * Description : 조회실행
  651. ****************************************************************************************/
  652. function group2_btn_sea_onclick(obj:Button, e:ClickEventInfo)
  653. {
  654. var srchval = ds_send_srchinfo.getColumn(0,"srchval");
  655. if(srchval.length >= 2) {
  656. ds_send_srchinfo.setColumn(0,"srchval", srchval.toUpperCase());
  657. var oParam = {};
  658. oParam.id = "TRADB63301";
  659. oParam.service = "pharmacybaseapp.DrugIdBase";
  660. oParam.method = "reqGetAtcDrugcd";
  661. oParam.inds = "req=ds_send_srchinfo";
  662. oParam.outds = "ds_main_druginfo_atcdruglist=atcdruglist";
  663. oParam.async = false;
  664. oParam.callback = "cf_TRADB63301";
  665. tranf_submit(oParam);
  666. }else {
  667. sysf_messageBox("최소 2글자 이상","C001");
  668. group2.ipt_srchval.setFocus();
  669. }
  670. }
  671. function cf_TRADB63301(sSvcId, nErrorCode, sErrorMsg) {
  672. if(nErrorCode < 0) return;
  673. dsf_setTypeFormat(ds_main_druginfo_atcdruglist, "idcd:INT");
  674. }
  675. /****************************************************************************************
  676. * Components : Edit
  677. * Components ID : group2.ipt_srchval
  678. * Event : onkeydown
  679. * Argument : 01.obj : Object Event has occurred
  680. * : 02.e : Event Object
  681. * Description : 검색조건 입력 후 조회
  682. ****************************************************************************************/
  683. function group2_ipt_srchval_onkeydown(obj:Edit, e:KeyEventInfo)
  684. {
  685. if(e.keycode == 13) {
  686. obj.updateToDataset();
  687. var ev = new ClickEventInfo;
  688. frmf_inputEnterKey("group2.btn_sea", "onclick", ev );
  689. }
  690. }
  691. /****************************************************************************************
  692. * Components : Edit
  693. * Components ID : group2.ipt_srchfromdd
  694. * Event : onchanged
  695. * Argument : 01.obj : Object Event has occurred
  696. * : 02.e : Event Object
  697. * Description : 검색조건 입력 후 조회
  698. ****************************************************************************************/
  699. function group2_ipt_srchfromdd_onchanged(obj:Calendar, e:ChangeEventInfo)
  700. {
  701. var ev = new ClickEventInfo;
  702. frmf_inputEnterKey("group2.btn_sea", "onclick", ev );
  703. }
  704. /****************************************************************************************
  705. * Components : Edit
  706. * Components ID : group2.ipt_srchtodd
  707. * Event : onchanged
  708. * Argument : 01.obj : Object Event has occurred
  709. * : 02.e : Event Object
  710. * Description : 검색조건 입력 후 조회
  711. ****************************************************************************************/
  712. function group2_ipt_srchtodd_onchanged(obj:Calendar, e:ChangeEventInfo)
  713. {
  714. var ev = new ClickEventInfo;
  715. frmf_inputEnterKey("group2.btn_sea", "onclick", ev );
  716. }
  717. /****************************************************************************************
  718. * Components : Grid
  719. * Components ID : group3.grd_druginfo
  720. * Event : onexpandup
  721. * Argument : 01.obj : Object Event has occurred
  722. * : 02.e : Event Object
  723. * Description : 리스트 버튼 클릭
  724. ****************************************************************************************/
  725. function group3_grd_druginfo_onexpandup(obj:Grid, e:GridMouseEventInfo)
  726. {
  727. var row = e.row;
  728. var col = e.col;
  729. if(col == obj.getBindCellIndex("body","atccode")) {
  730. frmf_setParameter("srchtype","B");
  731. frmf_modal("SPADB61300","SPADB61300", "", "", 0, 100, 150, "", "", "", "", "", "M");
  732. dsf_makeValue(ds_temp_cominfo,"comcd" ,"string",frmf_getParameter("comcd"));
  733. dsf_makeValue(ds_temp_cominfo,"comexcd" ,"string",frmf_getParameter("comexcd"));
  734. dsf_makeValue(ds_temp_cominfo,"comnm" ,"string",frmf_getParameter("comnm"));
  735. if(!utlf_isNull(ds_temp_cominfo.getColumn(0,"comcd"))) {
  736. ds_main_druginfo_atcdruglist.setColumn(row,"atccode" ,ds_temp_cominfo.getColumn(0,"comcd"));
  737. ds_main_druginfo_atcdruglist.setColumn(row,"atccodenm" ,ds_temp_cominfo.getColumn(0,"comnm"));
  738. // grd_druginfo.rowStatus(row) = 2;
  739. ds_temp_cominfo.clearData();
  740. }
  741. } else if(col == obj.getBindCellIndex("body","drugcd")) {
  742. var objArg = new Object();
  743. objArg.arg_ds_temp_receivedata = ds_temp_receivedata;
  744. frmf_modal("SPADB60100","SPADB60100", objArg, "", "", 100, 150, "", "", "", "", "", "M");
  745. drugcode = ds_temp_receivedata.getColumn(0,"drugcd");
  746. if(!utlf_isNull(drugcode)) {
  747. ds_main_druginfo_atcdruglist.setColumn(row,"drugcd", drugcode);
  748. fCodeChg(col, row);
  749. // grd_druginfo.rowStatus(row) = 2;
  750. }
  751. } else if(col == obj.getBindCellIndex("body","prodcmpynm")) {
  752. dsf_createDsRow("ds_send_SPADB63400",[{col:"receiveref" , val:ds_hidden.getColumn(0,"receiveprodcmpy")}
  753. ,{col:"receiveprodcmpy", val:"prodcmpy"}
  754. ]);
  755. var objArg = new Object();
  756. objArg.arg_ds_hidden = ds_send_SPADB63400;
  757. frmf_modal("SPADB63400","SPADB63400", objArg, "", "", 50, 50, "", "", "", "", "", "M");
  758. ds_main_druginfo_atcdruglist.setColumn(ds_main_druginfo_atcdruglist.rowposition,"prodcmpynm",ds_temp_prodcmpy.getColumn(0,"prodcmpy"));
  759. }
  760. obj.autoenter = "none";
  761. }
  762. /****************************************************************************************
  763. * Components : Grid
  764. * Components ID : group3.grd_druginfo
  765. * Event : onrbuttonup
  766. * Argument : 01.obj : Object Event has occurred
  767. * : 02.e : Event Object
  768. * Description : 우클릭 팝업메뉴
  769. ****************************************************************************************/
  770. function group3_grd_druginfo_onrbuttonup(obj:Grid, e:GridMouseEventInfo)
  771. {
  772. if(e.row > -1){
  773. if(e.col != obj.getBindCellIndex("body","useyn")) {
  774. grdf_setSelectedCell(obj, e); // 선택된 행 확실히 선택해줌
  775. pop_grd_druginfo.trackPopup(e.screenX,e.screenY);
  776. } else {
  777. grdf_setSelectedCell(obj, e); // 선택된 행 확실히 선택해줌
  778. pop_popupuseynmenu.trackPopup(e.screenX,e.screenY);
  779. }
  780. }
  781. return true;
  782. }
  783. /****************************************************************************************
  784. * Components : Grid
  785. * Components ID : group3.grd_druginfo
  786. * Event : onlbuttondown
  787. * Argument : 01.obj : Object Event has occurred
  788. * : 02.e : Event Object
  789. * Description : 버튼있는 컬럼 클릭시 한번에 버튼 실행되도록
  790. ****************************************************************************************/
  791. function group3_grd_druginfo_onlbuttondown(obj:Grid, e:GridMouseEventInfo)
  792. {
  793. // autoenter 가 select 일때만 원클릭으로 버튼클릭이 되서.. expand 버튼 설정된곳에선 select로 변경.
  794. if(e.col == obj.getBindCellIndex("body","atccode") || e.col == obj.getBindCellIndex("body","drugcd") || e.col == obj.getBindCellIndex("body","prodcmpynm")) {
  795. obj.autoenter = "select";
  796. } else {
  797. obj.autoenter = "key";
  798. }
  799. }
  800. /****************************************************************************************
  801. * Components : Grid
  802. * Components ID : group3.grd_druginfo
  803. * Event : onkeydown
  804. * Argument : 01.obj : Object Event has occurred
  805. * : 02.e : Event Object
  806. * Description : 단축키로 copy,paste,delete 실행
  807. ****************************************************************************************/
  808. function group3_grd_druginfo_onkeydown(obj:Grid, e:KeyEventInfo)
  809. {
  810. if(e.ctrlKey == true && e.keycode == 67) {
  811. astgrid_oncopy();
  812. }
  813. if(e.ctrlKey == true && e.keycode == 86) {
  814. astgrid_onpaste();
  815. }
  816. if(e.keycode == 46) {
  817. fgrid_clear();
  818. }
  819. }
  820. /****************************************************************************************
  821. * Components : Dataset
  822. * Components ID : ds_main_druginfo_atcdruglist
  823. * Event : oncolumnchanged
  824. * Argument : 01.obj : Object Event has occurred
  825. * : 02.e : Event Object
  826. * Description : 약품코드 변경시 약품 조회
  827. ****************************************************************************************/
  828. function ds_main_druginfo_atcdruglist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  829. {
  830. if(e.columnid == "atccode") {
  831. var col = group3.grd_druginfo.getBindCellIndex("body","atccode");
  832. fCodeChg(col, e.row);
  833. }
  834. }
  835. /****************************************************************************************
  836. * Components : Button
  837. * Components ID : group5.btn_save
  838. * Event : onclick
  839. * Argument : 01.obj : Object Event has occurred
  840. * : 02.e : Event Object
  841. * Description : 저장버튼 클릭
  842. ****************************************************************************************/
  843. function group5_btn_save_onclick(obj:Button, e:ClickEventInfo)
  844. {
  845. var updatedata = grdf_getGridUpdateData(group3.grd_druginfo, "all");
  846. var updateCnt = updatedata.rowcount;
  847. /* 변경사항 유무 체크 Start */
  848. // for (var i = grd_druginfo.fixedRows; i < grd_druginfo.rows; i++){
  849. // if(grd_druginfo.rowStatus(i) != 0) updateCnt ++;
  850. // }
  851. if(updateCnt == 0) {
  852. sysf_messageBox("변경사항이","I004");
  853. return;
  854. }
  855. /* 변경사항 유무 체크 End */
  856. if(sysf_messageBox("","Q002") == "6"){
  857. ds_send_saveitem_drugidinfo.clear();
  858. grdf_setStatusColumn(updatedata, "m");
  859. ds_send_saveitem_drugidinfo.copyData(updatedata,true);
  860. ds_send_saveitem_drugidinfo.updateColID("m","saveflag");
  861. dsf_setDefaultVal(ds_send_saveitem_drugidinfo, "useyn:-");
  862. var oParam = {};
  863. oParam.id = "TXADB63301";
  864. oParam.service = "pharmacybaseapp.DrugIdBase";
  865. oParam.method = "reqExeAtcDrugcd";
  866. oParam.inds = "req=ds_send_saveitem_drugidinfo";
  867. oParam.outds = "ds_main_druginfo_atcdruglist=atcdruglist";
  868. oParam.async = false;
  869. //oParam.callback = "cf_TXADB63301";
  870. tranf_submit(oParam);
  871. var ev = new ClickEventInfo;
  872. frmf_inputEnterKey("group2.btn_sea", "onclick", ev );
  873. }
  874. }
  875. ]]></Script>
  876. </Form>
  877. </FDL>