SPMNP04600_수술방재고조회.xfdl 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMNP04600" position="absolute 0 0 1054 150" titletext="수술방 재고조회" oninit="SPMNP04600_oninit" onload="SPMNP04600_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static text="수술방 재고조회" position="absolute 1 4 123 21" id="caption1" class="tit_2"/>
  8. <Shape position="absolute 0 20 1050 26" linetype="horizontal" id="line1" class="line_10"/>
  9. <Grid position="absolute 0 25 1050 97" align="align:right middle;" id="grd_oproomstoclist" binddataset="ds_temp_oproomstoclist" autoenter="select">
  10. <Formats>
  11. <Format id="default">
  12. <Columns>
  13. <Column size="40"/>
  14. </Columns>
  15. <Rows>
  16. <Row size="24" band="head"/>
  17. <Row size="22"/>
  18. </Rows>
  19. <Band id="head">
  20. <Cell/>
  21. </Band>
  22. <Band id="body">
  23. <Cell style="align:right middle;"/>
  24. </Band>
  25. </Format>
  26. </Formats>
  27. </Grid>
  28. <Button position="absolute 933 100 989 122" id="btn_save" class="btn4" text="저장" onclick="btn_save_onclick"/>
  29. <Button position="absolute 992 100 1048 122" id="btn_cncl" class="btn4" text="닫기" onclick="btn_cncl_onclick"/>
  30. </Layout>
  31. </Layouts>
  32. <Objects>
  33. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  34. <ColumnInfo>
  35. <Column id="goodcd" type="STRING" size="256"/>
  36. <Column id="allsizespecid" type="STRING" size="256"/>
  37. <Column id="refdeptflag" type="STRING" size="256"/>
  38. <Column id="refdept" type="STRING" size="256"/>
  39. </ColumnInfo>
  40. <Rows>
  41. <Row/>
  42. </Rows>
  43. </Dataset>
  44. <Dataset id="ds_init_goodflaglist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  45. <ColumnInfo>
  46. <Column id="goodflagcd" type="STRING" size="256"/>
  47. <Column id="goodflagnm" type="STRING" size="256"/>
  48. </ColumnInfo>
  49. </Dataset>
  50. <Dataset id="Dataset00" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  51. <Dataset id="ds_init_oproomlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  52. <ColumnInfo>
  53. <Column id="oproomcd" type="STRING" size="256"/>
  54. <Column id="oproomnm" type="STRING" size="256"/>
  55. </ColumnInfo>
  56. </Dataset>
  57. <Dataset id="ds_temp_oproomstoclist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  58. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  59. <Dataset id="ds_main_roomstoclist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  60. <Dataset id="ds_send_savedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  61. </Objects>
  62. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  63. * System Name :
  64. * Job Name :
  65. * Creator :
  66. * Make Date : 2016-10-12
  67. * Description :
  68. *---------------------------------------------------------------------------------------
  69. * Modify Date Modifier Modify Description
  70. *---------------------------------------------------------------------------------------
  71. * 2016-10-12 Live Converter TF->XP
  72. *
  73. *---------------------------------------------------------------------------------------
  74. ****************************************************************************************/
  75. include "com_commonxp::comm_main.xjs";
  76. function SPMNP04600_oninit(obj:Form, e:InitEventInfo)
  77. {
  78. frmf_initForm(obj);
  79. }
  80. function SPMNP04600_onload(obj:Form, e:LoadEventInfo)
  81. {
  82. if( frmf_checkOpener() ) {
  83. ds_main_cond.setColumn(0, "goodcd", opener.frmf_getParameter("goodcd"));
  84. ds_main_cond.setColumn(0, "allsizespecid", opener.frmf_getParameter("allsizespecid"));
  85. ds_main_cond.setColumn(0, "refdeptflag", opener.frmf_getParameter("refdeptflag"));
  86. ds_main_cond.setColumn(0, "refdept", opener.frmf_getParameter("refdept"));
  87. //대분류 조회
  88. var oParam = {};
  89. oParam.id = "TRMNP04403";
  90. oParam.service = "opanstapp.OpAnstStocMngt";
  91. oParam.method = "reqGetGoodFlagList";
  92. oParam.inds = "";
  93. oParam.outds = "ds_init_goodflaglist=goodflaglist ds_init_oproomlist=oproomlist";
  94. oParam.async = false;
  95. tranf_submit(oParam);
  96. fChangeDept();//수술방 그리드 생성
  97. fSearch();
  98. }
  99. }
  100. //수술실 물품 부서별 부서 재고 화면 변경
  101. function fChangeDept() {
  102. var deptflag = ds_main_cond.getColumn(0, "refdept"); //부서구분
  103. //var nodeCnt = parseInt(getNodesetCount("/root/init/oproomlist")) + 1;
  104. var nodeCnt = ds_init_oproomlist.rowcount + 1;
  105. if (deptflag != "R") { //수술, 마취
  106. var scrwidth = (nodeCnt * 49) + 14;
  107. if (nodeCnt > 25) { //수술방이 25개 이상이면 스크롤 바로 인해 크기 조절
  108. btn_save.position.left = 933;
  109. btn_save.position.top = 117;
  110. btn_save.position.width = 56;
  111. btn_save.position.height = 22;
  112. btn_cncl.position.left = 992;
  113. btn_cncl.position.top = 117;
  114. btn_cncl.position.width = 56;
  115. btn_cncl.position.height = 22;
  116. //line1.attribute("style") = "x1:0px; y1:20px; x2:1050px; y2:20px; ";
  117. grd_oproomstoclist.position.left = 0;
  118. grd_oproomstoclist.position.top = 25;
  119. grd_oproomstoclist.position.width = 1050;
  120. grd_oproomstoclist.position.height = 89;
  121. } else {
  122. //btn_save.attribute("style") = "left:" + (scrwidth - 117) + "px; top:100px; width:56px; height:22px";
  123. btn_save.position.left = eval(scrwidth) - 117;
  124. btn_save.position.top = 100;
  125. btn_save.position.width = 56;
  126. btn_save.position.height = 22;
  127. //btn_cncl.attribute("style") = "left:" + (scrwidth - 56) + "px; top:100px; width:56px; height:22px; ";
  128. btn_cncl.position.left = eval(scrwidth) - 56;
  129. btn_cncl.position.top = 100;
  130. btn_cncl.position.width = 56;
  131. btn_cncl.position.height = 22;
  132. //line1.attribute("style") = "x1:0px; y1:20px; x2:" + scrwidth + "px; y2:20px; ";
  133. //grd_oproomstoclist.attribute("style") = "left:0px; top:25px; width:" + scrwidth + "px; height:72px; text-align:right;";
  134. grd_oproomstoclist.position.left = 0;
  135. grd_oproomstoclist.position.top = 25;
  136. grd_oproomstoclist.position.width = eval(scrwidth);
  137. grd_oproomstoclist.position.height = 72;
  138. }
  139. var captionlist = "";
  140. if (nodeCnt != 0) {
  141. for (var i = 0; i < nodeCnt; i++) { //수술방 갯수 만큼 컴럼을 만들고 cation을 만들어 준다.(CCR제외)
  142. //grd_oproomstoclist.addColumn("ref:oproomnostoc" + i + "; type:input;", false);
  143. grd_oproomstoclist.appendContentsCol();
  144. ds_temp_oproomstoclist.addColumn("oproomnostoc" + i, "string");
  145. grd_oproomstoclist.setCellProperty("body",i,"text","bind:"+ ("oproomnostoc" + i));
  146. grd_oproomstoclist.setCellProperty("body",i,"edittype","text");
  147. grd_oproomstoclist.setCellProperty("body",i,"editautoselect","true");
  148. grd_oproomstoclist.setCellProperty("body",i,"align","right middle");
  149. grd_oproomstoclist.setCellProperty("head",i,"wordwrap", "char");
  150. grd_oproomstoclist.setCellProperty("head",i,"align","top middle");
  151. grd_oproomstoclist.setCellProperty("head",i,"padding","4 2 2 2");
  152. if (i == 3) {
  153. grd_oproomstoclist.setFormatColProperty(i,"size","60");
  154. } else {
  155. grd_oproomstoclist.setFormatColProperty(i,"size","49");
  156. }
  157. //grd_oproomstoclist.colAttribute(i, "format") = "#.###";
  158. if (i == 0) {
  159. captionlist = utlf_transNullToEmpty(ds_init_oproomlist.getColumn(i, "oproomnm"));
  160. } else if (i == 3) {
  161. captionlist = captionlist + "^OR총재고";
  162. } else if (i < 3) {
  163. captionlist = captionlist + "^" + utlf_transNullToEmpty(ds_init_oproomlist.getColumn(i, "oproomnm"));
  164. } else if (i > 3) {
  165. j = i - 1;
  166. captionlist = captionlist + "^" + utlf_transNullToEmpty(ds_init_oproomlist.getColumn(j, "oproomnm"));
  167. }
  168. }
  169. var arrcaptionlist = captionlist.split("^");
  170. for(k = 0; k < arrcaptionlist.length ;k++){
  171. grd_oproomstoclist.setCellProperty("Head", k, "text", arrcaptionlist[k]);
  172. }
  173. ds_temp_oproomstoclist.addRow();
  174. }
  175. ds_temp_oproomstoclist.addRow();
  176. grd_oproomstoclist.deleteContentsCol("body", grd_oproomstoclist.getCellCount("body") - 1);
  177. if (deptflag == "O") { //수술
  178. //grd_oproomstoclist.colDisabled(3) = "ture";
  179. grd_oproomstoclist.setCellProperty("body",3,"edittype","none");
  180. } else {
  181. for (var j = 0; j < 3; j++) {
  182. //grd_oproomstoclist.colDisabled(j) = "ture";
  183. grd_oproomstoclist.setCellProperty("body",j,"edittype","none");
  184. }
  185. }
  186. } else {
  187. //grd_oproomstoclist.attribute("style") = "left:144px; top:65px; width:242px; height:72px; text-align:right;";
  188. grd_oproomstoclist.position.left = 144;
  189. grd_oproomstoclist.position.top = 65;
  190. grd_oproomstoclist.position.width = 242;
  191. grd_oproomstoclist.position.height = 72;
  192. if (nodeCnt != 0) {
  193. for (var i = 0; i < nodeCnt; i++) {
  194. grd_oproomstoclist.deleteContentsCol("body", grd_oproomstoclist.getCellCount - 1);
  195. }
  196. for (var i = 0; i < 4; i++) {
  197. //grd_oproomstoclist.addColumn("ref:oproomnostoc" + i + "; type:input;", false);
  198. grd_oproomstoclist.appendContentsCol();
  199. ds_temp_oproomstoclist.addColumn("oproomnostoc" + i, "string");
  200. grd_oproomstoclist.setCellProperty("body",i,"text","bind:"+ ("oproomnostoc" + i));
  201. grd_oproomstoclist.setCellProperty("body",i,"edittype","text");
  202. grd_oproomstoclist.setCellProperty("body",i,"editautoselect","true");
  203. grd_oproomstoclist.setCellProperty("body",i,"align","right middle");
  204. grd_oproomstoclist.setCellProperty("head",i,"wordwrap", "char");
  205. grd_oproomstoclist.setCellProperty("head",i,"align","top middle");
  206. grd_oproomstoclist.setCellProperty("head",i,"padding","4 2 2 2");
  207. //grd_oproomstoclist.colWidth(i - 1) = 60;
  208. grd_oproomstoclist.setFormatColProperty(i - 1,"size","60");
  209. //grd_oproomstoclist.colAttribute(i - 1, "format") = "#.###";
  210. }
  211. //grd_oproomstoclist.caption = "CCR^C-C^C-O^회복실";
  212. captionlist = "CCR^C-C^C-O^회복실";
  213. var arrcaptionlist = captionlist.split("^");
  214. for(k = 0; k < arrcaptionlist.length ;k++){
  215. grd_oproomstoclist.setCellProperty("Head", k, "text", arrcaptionlist[k]);
  216. }
  217. ds_temp_oproomstoclist.addRow();
  218. for (var j = 0; j < 3; j++) {
  219. //grd_oproomstoclist.colDisabled(j) = "ture";
  220. grd_oproomstoclist.setCellProperty("body",j,"edittype","none");
  221. }
  222. }
  223. }
  224. }
  225. //조회
  226. function fSearch() {
  227. var totalSafeCnt = 0;
  228. var totaStocCnt = 0;
  229. ds_send_reqdata.clearData();
  230. ds_send_reqdata.copyData(ds_main_cond);
  231. //submit("TRMNP04416", false);
  232. var oParam = {};
  233. oParam.id = "TRMNP04415";
  234. oParam.service = "opanstapp.OpAnstStocMngt";
  235. oParam.method = "reqGetStocInfo";
  236. oParam.inds = "reqdata=ds_send_reqdata";
  237. oParam.outds = "ds_main_roomstoclist=roomstoclist";
  238. oParam.async = false;
  239. tranf_submit(oParam);
  240. //재고 그리드 값 맵핑
  241. var nodeCnt = ds_init_oproomlist.rowcount + 1;
  242. for( var j = 0; j < nodeCnt; j++) {
  243. var safestocqty = ds_main_roomstoclist.getColumn(j, "safestocqty");
  244. var stocqty = ds_main_roomstoclist.getColumn(j, "stocqty");
  245. if( ( utlf_isNull(safestocqty) )||( utlf_isNull(stocqty) ) ) {
  246. ds_temp_oproomstoclist.setColumn(0, "oproomnostoc"+j, 0);
  247. ds_temp_oproomstoclist.setColumn(1, "oproomnostoc"+j, 0);
  248. }else {
  249. //model.setValue("/root/temp/oproomstoclist/oproomnostoc"+j, model.getValue("/root/main/roomstoclist["+j+"]/safestocqty"));
  250. //model.setValue("/root/temp/oproomstoclist[2]/oproomnostoc"+j, model.getValue("/root/main/roomstoclist["+j+"]/stocqty"));
  251. ds_temp_oproomstoclist.setColumn(0, "oproomnostoc"+j, ds_main_roomstoclist.getColumn(j, "safestocqty"));
  252. ds_temp_oproomstoclist.setColumn(1, "oproomnostoc"+j, ds_main_roomstoclist.getColumn(j, "stocqty"));
  253. }
  254. }
  255. }
  256. function fSave() {
  257. var stocqty, safestocqty, safestocqty, stocqty, oproomcd;
  258. var cnt = 0;
  259. var stoclist = "oproomcd▦safestocqty▦stocqty▦goodcd▦allsizespecid▦refdept";
  260. var nodeCnt = ds_main_roomstoclist.rowcount + 1;
  261. var goodcd = ds_main_cond.getColumn(0, "goodcd");
  262. var allsizespecid = ds_main_cond.getColumn(0, "allsizespecid");
  263. var refdept = ds_main_cond.getColumn(0, "refdept");
  264. for( var i = 0; i < nodeCnt; i++ ) {
  265. if( i == 3 ) {//or총재고는 제외
  266. continue;
  267. }else {
  268. oproomcd = ds_main_roomstoclist.getColumn(i, "oproomcd");
  269. safestocqty = ds_temp_oproomstoclist.getColumn(0, "oproomnostoc"+i);
  270. stocqty = ds_temp_oproomstoclist.getColumn(1, "oproomnostoc"+i);
  271. stoclist = stoclist + "▩" + oproomcd + "▦" + safestocqty + "▦" + stocqty + "▦" + goodcd + "▦" + allsizespecid + "▦" + refdept;
  272. cnt++;
  273. }
  274. }
  275. if( cnt > 0 ) {
  276. ds_send_savedata.clearData();
  277. ds_send_reqdata.clearData();
  278. ds_send_reqdata.copyData(ds_main_cond);
  279. dsf_setCSVToDs("ds_send_savedata", stoclist);
  280. var oParam = {};
  281. oParam.id = "TXMNP04403";
  282. oParam.service = "opanstapp.OpAnstStocMngt";
  283. oParam.method = "reqSetStocList";
  284. oParam.inds = "reqdata=ds_send_reqdata savedata=ds_send_savedata";
  285. oParam.outds = "";
  286. oParam.async = false;
  287. tranf_submit(oParam);
  288. fSearch();
  289. }
  290. }
  291. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  292. {
  293. fSave();
  294. }
  295. function btn_cncl_onclick(obj:Button, e:ClickEventInfo)
  296. {
  297. this.close();
  298. }
  299. ]]></Script>
  300. </Form>
  301. </FDL>