SMLLF00800_검사소견코드관리.xfdl 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMLLF00800" position="absolute 0 0 1256 805" titletext="검사소견코드관리" onload="SMLLF00800_onload">
  5. <Layouts>
  6. <Layout>
  7. <Button id="btn_save" taborder="1" text="저장" class="btn4" position="absolute 1200 0 1256 20" anchor="top right" positiontype="position" onclick="btn_save_onclick"/>
  8. <Static id="caption6" text="검사소견코드관리" class="tit_1" position="absolute 0 0 177 25" positiontype="position"/>
  9. <Static id="caption1" text="검사소견목록" class="tit_2" position="absolute 0 77 300 97" positiontype="position"/>
  10. <Grid id="grd_testcmtlist" taborder="6" useinputpanel="false" position="absolute 0 97 602 805" onclick="grd_TestCmtList_onclick" autofittype="col" anchor="left top bottom" binddataset="ds_grid_grd_testcmtlist" positiontype="position" oncellclick="grd_testcmtlist_oncellclick" autoenter="select">
  11. <Formats>
  12. <Format id="default">
  13. <Columns>
  14. <Column size="0"/>
  15. <Column size="30"/>
  16. <Column size="80"/>
  17. <Column size="447"/>
  18. <Column size="70"/>
  19. <Column size="0"/>
  20. <Column size="0"/>
  21. <Column size="0"/>
  22. </Columns>
  23. <Rows>
  24. <Row size="24" band="head"/>
  25. <Row size="24"/>
  26. </Rows>
  27. <Band id="head">
  28. <Cell/>
  29. <Cell col="1" text="상태"/>
  30. <Cell col="2" text="소견코드"/>
  31. <Cell col="3" text="소견내용"/>
  32. <Cell col="4" text="표시순서"/>
  33. <Cell col="5" text="상세내용"/>
  34. <Cell col="6" text="cmtcd1"/>
  35. <Cell col="7" text="tsectcd"/>
  36. </Band>
  37. <Band id="body">
  38. <Cell celltype="head" expr="expr:currow+1"/>
  39. <Cell col="1" celltype="head" displaytype="image"/>
  40. <Cell col="2" displaytype="text" edittype="expr:getRowType(currow) == 2 ? 'text' : 'none'" style="align:center middle;" text="bind:cmtcd"/>
  41. <Cell col="3" displaytype="text" edittype="text" text="bind:cmtcnts" editlimit="100" editlengthunit="utf8"/>
  42. <Cell col="4" displaytype="text" edittype="text" style="align:center middle;" text="bind:cmtdispseq"/>
  43. <Cell col="5" displaytype="text" edittype="text" text="bind:cmtdetlcnts"/>
  44. <Cell col="6" text="bind:cmtcd2"/>
  45. <Cell col="7" text="bind:tsectcd"/>
  46. </Band>
  47. </Format>
  48. </Formats>
  49. </Grid>
  50. <Button id="btn_deleterow" taborder="7" text="행삭제" class="btn2" position="absolute 487 74 543 94" positiontype="position" onclick="btn_deleterow_onclick"/>
  51. <Button id="btn_addrow" taborder="8" text="행추가" class="btn2" position="absolute 546 74 602 94" positiontype="position" onclick="btn_addrow_onclick"/>
  52. <Static id="caption3" text="소견상세내용" class="tit_2" position="absolute 612 77 743 97" positiontype="position"/>
  53. <TextArea id="tar_CmtDetlCnts" taborder="9" position="absolute 612 97 1256 805" anchor="all" imemode="hangul" positiontype="position" canchange="tar_CmtDetlCnts_canchange" lengthunit="utf8" maxlength="2000" style="font:돋움체,9;" acceptstab="false" wordwrap="both" autoselect="true"/>
  54. <Div id="grp_sea" anchor="left top right" taborder="10" style="align:center top;" position="absolute 0 25 1256 67" class="div_SA">
  55. <Layouts>
  56. <Layout>
  57. <Static id="caption2" text="조회구분" class="search_name" position="absolute 8 10 98 30" positiontype="position"/>
  58. <Button id="btn_search" taborder="22" text="조회" class="btn1" position="absolute 1116 10 1172 30" anchor="top right" positiontype="position" onclick="grp_sea_btn_search_onclick"/>
  59. <Combo id="cmb_tsectcd" taborder="23" class="combo_s_essential" position="absolute 264 10 444 30" positiontype="position" innerdataset="@ds_init_lb0106" codecolumn="cd" datacolumn="nm" onitemchanged="grp_sea_cmb_tsectcd_onitemchanged"/>
  60. <Combo id="cmb_sectcd" taborder="24" class="combo_s_essential" position="absolute 81 10 261 30" positiontype="position" innerdataset="@ds_init_lb0111" codecolumn="cd" datacolumn="nm" onitemchanged="grp_sea_cmb_sectcd_onitemchanged"/>
  61. <Button id="btn_reset" taborder="25" text="초기화" class="btn1" position="absolute 1175 10 1244 30" anchor="top right" positiontype="position" onclick="grp_sea_btn_reset_onclick"/>
  62. </Layout>
  63. </Layouts>
  64. </Div>
  65. </Layout>
  66. </Layouts>
  67. <Objects>
  68. <Dataset id="ds_grid_grd_testcmtlist" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_grid_grd_testcmtlist_oncolumnchanged" onrowposchanged="ds_grid_grd_testcmtlist_onrowposchanged">
  69. <ColumnInfo>
  70. <Column id="cmtcd" type="STRING"/>
  71. <Column id="cmtcnts" type="STRING"/>
  72. <Column id="cmtdispseq" type="STRING"/>
  73. <Column id="cmtdetlcnts"/>
  74. <Column id="cmtcd1" type="STRING"/>
  75. <Column id="tsectcd" type="STRING"/>
  76. <Column id="workflagcd" type="STRING" size="0"/>
  77. </ColumnInfo>
  78. </Dataset>
  79. <Dataset id="ds_init_lb0111" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  80. <ColumnInfo>
  81. <Column id="cd" type="STRING"/>
  82. <Column id="nm" type="STRING"/>
  83. </ColumnInfo>
  84. </Dataset>
  85. <Dataset id="ds_init_lb0000" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  86. <ColumnInfo>
  87. <Column id="cd" type="STRING"/>
  88. <Column id="nm" type="STRING"/>
  89. </ColumnInfo>
  90. </Dataset>
  91. <Dataset id="ds_init_lb0106" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  92. <ColumnInfo>
  93. <Column id="cd" type="STRING"/>
  94. <Column id="nm" type="STRING"/>
  95. </ColumnInfo>
  96. </Dataset>
  97. <Dataset id="ds_init_lb0106_add" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  98. <ColumnInfo>
  99. <Column id="cd" type="STRING" size="256"/>
  100. <Column id="nm" type="STRING" size="256"/>
  101. <Column id="chk" type="STRING" size="256"/>
  102. <Column id="etc01" type="STRING" size="256"/>
  103. <Column id="etc02" type="STRING" size="256"/>
  104. <Column id="etc03" type="STRING" size="256"/>
  105. <Column id="etc04" type="STRING" size="256"/>
  106. <Column id="ect05" type="STRING" size="256"/>
  107. </ColumnInfo>
  108. <Rows>
  109. <Row>
  110. <Col id="cd">99</Col>
  111. <Col id="nm">[99] 자동소견</Col>
  112. <Col id="chk"/>
  113. <Col id="etc01">-</Col>
  114. <Col id="etc02"/>
  115. <Col id="etc03">13</Col>
  116. <Col id="etc04">1</Col>
  117. <Col id="ect05"/>
  118. </Row>
  119. </Rows>
  120. </Dataset>
  121. <Dataset id="ds_print" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  122. <ColumnInfo>
  123. <Column id="able" type="STRING" size="256"/>
  124. </ColumnInfo>
  125. </Dataset>
  126. <Dataset id="ds_execute" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  127. <ColumnInfo>
  128. <Column id="able" type="STRING" size="256"/>
  129. </ColumnInfo>
  130. </Dataset>
  131. </Objects>
  132. <Bind>
  133. <BindItem id="item0" compid="btn_deleterow" propid="enable" datasetid="ds_execute" columnid="able"/>
  134. <BindItem id="item1" compid="btn_addrow" propid="enable" datasetid="ds_execute" columnid="able"/>
  135. <BindItem id="item2" compid="btn_save" propid="enable" datasetid="ds_execute" columnid="able"/>
  136. <BindItem id="item3" compid="tar_CmtDetlCnts" propid="enable" datasetid="ds_execute" columnid="able"/>
  137. </Bind>
  138. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  139. * System Name :
  140. * Job Name :
  141. * Creator :
  142. * Make Date : 2015-11-09
  143. * Description :
  144. *---------------------------------------------------------------------------------------
  145. * Modify Date Modifier Modify Description
  146. *---------------------------------------------------------------------------------------
  147. * 2015-11-09 Live Converter TF->XP
  148. *
  149. *---------------------------------------------------------------------------------------
  150. ****************************************************************************************/
  151. include "com_commonxp::comm_main.xjs";
  152. include "lis_commonxp::LLZ001.xjs";
  153. function SMLLF00800_onload(obj:Form, e:LoadEventInfo)
  154. {
  155. frmf_initForm(obj);
  156. //초기값 셋팀
  157. lf_initDataSet();
  158. grp_sea.cmb_sectcd.index = 0;
  159. grp_sea.cmb_tsectcd.index = 0;
  160. grdf_setRowTypeIcon(grd_testcmtlist, 1);
  161. var objOpener = this.opener;
  162. //핵의학이라면
  163. if (ds_init_lb0111.findRow("cd","N") > -1) {
  164. grp_sea.cmb_sectcd.value = "N";
  165. grp_sea.cmb_tsectcd.value = "NR";
  166. }
  167. //조회
  168. //lf_getTestCmtList();
  169. //그리드 Sort
  170. grdf_setGridSort(grd_testcmtlist);
  171. lf_menumaster();//메뉴권한
  172. }
  173. //초기화 데이타셋 조회
  174. function lf_initDataSet(){
  175. lf_getDbDeptcd("0111|0106|","cbf_SMLLF00800");
  176. }
  177. //검사소견항목 조회
  178. function lf_getTestCmtList(){
  179. var sInDsName = dsf_createDsRow("ds_temp_search"
  180. , [{col: "sectcd" , val: grp_sea.cmb_sectcd.value}
  181. , {col: "tsectcd" , val: grp_sea.cmb_tsectcd.value} ]);
  182. ds_grid_grd_testcmtlist.clearData();
  183. tar_CmtDetlCnts.value="";
  184. var oParam = {};
  185. oParam.id = "TRLLF00801";
  186. oParam.service = "diagtestbaseinfomngtapp.GeneralTestBaseInfoMngt";
  187. oParam.method = "reqGetTestCmtList";
  188. oParam.inds = "cond="+sInDsName;
  189. oParam.outds = "ds_grid_grd_testcmtlist=getTestCmtList";
  190. oParam.async = false;
  191. //oParam.callback = "cf_TRLLF00801";
  192. tranf_submit(oParam);
  193. if(ds_grid_grd_testcmtlist.rowcount > 0) tar_CmtDetlCnts.value = ds_grid_grd_testcmtlist.getColumn(0,"cmtdetlcnts");
  194. }
  195. // 그리드 필수값 체크
  196. function lf_ckeckNull(){
  197. if(grp_sea.cmb_tsectcd.value == "00"){
  198. sysf_messageBox("시행부서 검사계가 선택되지 않았습니다.시행부서 검사계를 선택하여 주세요","I001","");
  199. return;
  200. }
  201. if(tar_CmtDetlCnts.value == ""){
  202. sysf_messageBox("소견상세내용을 입력하지 않았습니다.소견상세내용을 입력하세요","I001","");
  203. return;
  204. }
  205. if (ds_grid_grd_testcmtlist.rowcount > 0){
  206. var bChkValue= frmf_chkMdtGrid(grd_testcmtlist,[2,3,4],["소견코드","소견내용","표시순서"]);
  207. if(bChkValue==true) lf_saveTestCmtInfo();
  208. }
  209. }
  210. //소견 저장
  211. function lf_saveTestCmtInfo(){
  212. var oParam = {};
  213. oParam.id = "TXLLF00801";
  214. oParam.service = "diagtestbaseinfomngtapp.GeneralTestBaseInfoMngt";
  215. oParam.method = "reqExeTestCmtList";
  216. oParam.inds = "cond=ds_grid_grd_testcmtlist:U";
  217. oParam.async = false;
  218. oParam.callback = "cbf_SMLLF00800";
  219. tranf_submit(oParam);
  220. }
  221. //콜백함수
  222. function cbf_SMLLF00800(strSvcID, nErrorCode, strErrorMag){
  223. if(strSvcID == "TXLLF00801" && nErrorCode==0){
  224. lf_getTestCmtList();
  225. sysf_messageBox("","I001","");
  226. }
  227. }
  228. //상세시행부서 셋팅
  229. function lf_setSect(){
  230. var sEtc = grp_sea.cmb_sectcd.value;
  231. var sFilter = "cd =='00' || etc01 =='" + sEtc + "'";
  232. grp_sea.cmb_tsectcd.innerdataset="ds_init_lb0106";
  233. if(sEtc != "00") ds_init_lb0106.filter(sFilter);
  234. grp_sea.cmb_tsectcd.codecolumn="cd";
  235. grp_sea.cmb_tsectcd.datacolumn="nm";
  236. grp_sea.cmb_tsectcd.index=0;
  237. }
  238. function lf_setCmtDetlCnts(){
  239. tar_CmtDetlCnts.value = ds_grid_grd_testcmtlist.getColumn(ds_grid_grd_testcmtlist.rowposition,"cmtdetlcnts");
  240. }
  241. //진검 사용자별 메뉴권한
  242. function lf_menumaster(){
  243. var edit = frmf_checkAuth("X");
  244. var print = frmf_checkAuth("P");
  245. var eRow = ds_execute.addRow();
  246. var pRow = ds_print.addRow();
  247. if(edit == true){
  248. ds_execute.setColumn(eRow,"able",true);
  249. }
  250. if(print == true){
  251. ds_print.setColumn(pRow,"able",true);
  252. }
  253. }
  254. function grp_sea_btn_search_onclick(obj:Button, e:ClickEventInfo)
  255. {
  256. lf_getTestCmtList();
  257. }
  258. function grd_testcmtlist_oncellclick(obj:Grid, e:GridClickEventInfo)
  259. {
  260. lf_setCmtDetlCnts();
  261. }
  262. function grp_sea_cmb_sectcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  263. {
  264. lf_setSect();
  265. }
  266. function btn_addrow_onclick(obj:Button, e:ClickEventInfo)
  267. {
  268. if(grp_sea.cmb_tsectcd.value == "00"){
  269. sysf_messageBox("시행부서 검사계가 선택되지 않았습니다.시행부서 검사계를 선택하여 주세요","I","");
  270. return;
  271. }
  272. if(ds_grid_grd_testcmtlist.rowcount > 0) {
  273. var sCheckCdde = ds_grid_grd_testcmtlist.getColumn(ds_grid_grd_testcmtlist.rowcount-1,"cmtcd");
  274. if(utlf_isNull(sCheckCdde)) {
  275. sysf_messageBox("추가하지 않은 혈액바코드 데이터가 존재합니다.","I","");
  276. grd_testcmtlist.setFocus();
  277. ds_grid_grd_testcmtlist.rowposition= ds_grid_grd_testcmtlist.rowcount-1;
  278. var nCellIdx=grd_testcmtlist.getBindCellIndex("body","cmtcd");
  279. grd_testcmtlist.setCellPos(nCellIdx);
  280. grd_testcmtlist.showEditor(true);
  281. return;
  282. }
  283. }
  284. var nRow = ds_grid_grd_testcmtlist.addRow();
  285. ds_grid_grd_testcmtlist.setColumn(nRow,"cmtdispseq",ds_grid_grd_testcmtlist.rowcount);
  286. ds_grid_grd_testcmtlist.setColumn(nRow,"tsectcd",grp_sea.cmb_tsectcd.value);
  287. grd_testcmtlist_oncellclick();
  288. }
  289. function btn_deleterow_onclick(obj:Button, e:ClickEventInfo)
  290. {
  291. var arrPostion = new Array();
  292. arrPostion[0] = ds_grid_grd_testcmtlist.rowposition;
  293. if(ds_grid_grd_testcmtlist.getRowType(arrPostion)==Dataset.ROWTYPE_INSERT){
  294. ds_grid_grd_testcmtlist.deleteRow(arrPostion);
  295. } else {
  296. grdf_setStatus(grd_testcmtlist, "D", arrPostion);
  297. }
  298. }
  299. function grp_sea_btn_reset_onclick(obj:Button, e:ClickEventInfo)
  300. {
  301. // ds_grid_grd_testcmtlist.clearData();
  302. // tar_CmtDetlCnts.value="";
  303. this.reload();
  304. }
  305. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  306. {
  307. lf_ckeckNull();
  308. }
  309. function grp_sea_cmb_tsectcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  310. {
  311. lf_getTestCmtList();
  312. }
  313. function tar_CmtDetlCnts_canchange(obj:TextArea, e:ChangeEventInfo)
  314. {
  315. var nRow = ds_grid_grd_testcmtlist.rowposition;
  316. ds_grid_grd_testcmtlist.setColumn(nRow,"cmtdetlcnts",tar_CmtDetlCnts.value);
  317. ds_grid_grd_testcmtlist.setColumn(nRow,"cmtcd1",ds_grid_grd_testcmtlist.getColumn(nRow,"cmtcd"));
  318. }
  319. function ds_grid_grd_testcmtlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  320. {
  321. if(e.columnid=="cmtcd"){
  322. var sCmtCd = ds_grid_grd_testcmtlist.getColumn(e.row,"cmtcd")
  323. ds_grid_grd_testcmtlist.setColumn(e.row,"cmtcd",sCmtCd.toUpperCase());
  324. }
  325. if(e.columnid == "cmtcnts")
  326. {
  327. var sCmtCd = ds_grid_grd_testcmtlist.getColumn(e.row,"cmtcd")
  328. ds_grid_grd_testcmtlist.setColumn(e.row, "cmtcd1", sCmtCd.toUpperCase());
  329. }
  330. }
  331. function ds_grid_grd_testcmtlist_onrowposchanged(obj:Dataset, e:DSRowPosChangeEventInfo)
  332. {
  333. lf_setCmtDetlCnts();
  334. }
  335. ]]></Script>
  336. </Form>
  337. </FDL>