123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598 |
- <?xml version="1.0" encoding="utf-8"?>
- <FDL version="1.5">
- <TypeDefinition url="..\..\..\default_typedef.xml"/>
- <Form id="SPSTP02200" position="absolute 0 0 1200 778" titletext="환자집계" oninit="SPSTP02200_oninit" onload="SPSTP02200_onload">
- <Layouts>
- <Layout>
- <Div id="Div00" anchor="left top right" taborder="31" class="div_SA" position="absolute 0 24 1195 64"/>
- <Shape position="absolute 1113 31 1119 58" linetype="vertical" id="line13" anchor="top right"/>
- <Static text="조회기간 :" position="absolute 10 36 96 53" id="caption21" class="search_name"/>
- <Button position="absolute 1130 34 1186 54" id="btn_search" class="btn1" taborder="3" text="조회" anchor="top right" onclick="btn_search_onclick"/>
- <Button position="absolute 1145 74 1195 93" id="btn_excel" class="btn7" taborder="30" text="엑셀" anchor="top right" onclick="btn_excel_onclick"/>
- <Static text="수납 통계" position="absolute 0 0 120 24" align="align:center middle;" id="cap_title" class="tit_1"/>
- <Static text="~" position="absolute 201 38 216 53" id="caption6"/>
- <Calendar position="absolute 90 35 193 54" align="align:center middle;" id="ipt_fromdd" class="input_search" taborder="1" autoskip="true" autoselect="true"/>
- <Calendar position="absolute 220 35 323 54" align="align:center middle;" id="ipt_todd" class="input_search" taborder="1" autoselect="true"/>
- <Static text="조회 결과" position="absolute 0 77 90 99" id="caption1" class="tit_2"/>
- <Shape position="absolute 0 93 1195 99" linetype="horizontal" id="line1" class="line_10" anchor="left top right"/>
- <Grid position="absolute 0 98 1195 773" id="grd_main" autoenter="select" cellsizingtype="col" anchor="all" binddataset="ds_main_gridlist_gridinfo">
- <Formats>
- <Format id="default">
- <Columns/>
- <Band id="head"/>
- <Band id="body"/>
- </Format>
- </Formats>
- </Grid>
- <Static text="업무구분 :" position="absolute 346 36 428 53" id="cap_worktype" class="search_name" visible="false"/>
- <Combo position="absolute 431 34 531 53" id="cmb_worktype" class="input_search" visible="false" innerdataset="@ds_init_PK021_worktype" datacolumn="cdnm" codecolumn="cdid"/>
- <Static text="입원/외래 :" position="absolute 561 36 648 53" id="cap_brate" class="search_name" visible="false"/>
- <Combo position="absolute 653 35 713 54" id="cmb_brate" class="input_search" visible="false" codecolumn="codecolumn" datacolumn="datacolumn">
- <Dataset id="innerdataset">
- <ColumnInfo>
- <Column id="codecolumn"/>
- <Column id="datacolumn"/>
- </ColumnInfo>
- <Rows>
- <Row>
- <Col id="codecolumn">T</Col>
- <Col id="datacolumn">전체</Col>
- </Row>
- <Row>
- <Col id="codecolumn">I</Col>
- <Col id="datacolumn">입원</Col>
- </Row>
- <Row>
- <Col id="codecolumn">O</Col>
- <Col id="datacolumn">외래</Col>
- </Row>
- </Rows>
- </Dataset>
- </Combo>
- <CheckBox position="absolute 723 37 968 52" id="chk_dr" visible="false" text="주치의별 수납 건수 (정형외과, 신경외과)" truevalue="Y" onclick="chk_dr_onclick"/>
- <CheckBox position="absolute 335 34 435 54" id="chk_pamflag" visible="false" text="무인수납 포함" truevalue="Y"/>
- </Layout>
- </Layouts>
- <Objects>
- <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
- <ColumnInfo>
- <Column id="fromdd" type="STRING" size="256"/>
- <Column id="todd" type="STRING" size="256"/>
- <Column id="srchflag" type="STRING" size="256"/>
- <Column id="dayflag" type="STRING" size="256"/>
- <Column id="worktype" type="STRING" size="256"/>
- <Column id="brateflag" type="STRING" size="256"/>
- <Column id="drflag" type="STRING" size="256"/>
- <Column id="pamflag" type="STRING" size="256"/>
- </ColumnInfo>
- <Rows>
- <Row>
- <Col id="fromdd"/>
- <Col id="todd"/>
- <Col id="srchflag"/>
- <Col id="dayflag"/>
- <Col id="worktype"/>
- <Col id="brateflag">T</Col>
- <Col id="drflag"/>
- <Col id="pamflag"/>
- </Row>
- </Rows>
- </Dataset>
- <Dataset id="ds_main_gridlist_gridinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
- <Dataset id="ds_init_PK021_worktype" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
- <Dataset id="ds_temp_header" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
- <Dataset id="ds_temp_gridlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
- </Objects>
- <Bind>
- <BindItem id="item0" compid="ipt_fromdd" propid="value" datasetid="ds_send" columnid="fromdd"/>
- <BindItem id="item1" compid="ipt_todd" propid="value" datasetid="ds_send" columnid="todd"/>
- <BindItem id="item2" compid="cmb_worktype" propid="value" datasetid="ds_send" columnid="worktype"/>
- <BindItem id="item3" compid="cmb_brate" propid="value" datasetid="ds_send" columnid="brateflag"/>
- <BindItem id="item4" compid="chk_dr" propid="value" datasetid="ds_send" columnid="drflag"/>
- <BindItem id="item5" compid="chk_pamflag" propid="value" datasetid="ds_send" columnid="pamflag"/>
- </Bind>
- <Script type="xscript4.0"><![CDATA[/***************************************************************************************
- * System Name :
- * Job Name :
- * Creator :
- * Make Date : 2016-05-24
- * Description :
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- * 2016-05-24 Live Converter TF->XP
- *
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
- include "com_commonxp::comm_main.xjs";
- var FLAG = "";
- var FLAGNM = "";
- function SPSTP02200_oninit(obj:Form, e:InitEventInfo)
- {
- frmf_initForm(obj);
- }
- function SPSTP02200_onload(obj:Form, e:LoadEventInfo)
- {
- ds_send.setColumn(0, "fromdd", utlf_getCurrentDate().toDate().getAddDate(-1).getDateFormat());
- ds_send.setColumn(0, "todd", utlf_getCurrentDate().toDate().getAddDate(-1).getDateFormat());
-
- FLAG = frmf_getMenuParam();
- ds_send.setColumn(0, "srchflag", FLAG);
- var titlesize = 120;
- if (FLAG == "worktype")
- {
- FLAGNM = "업무구분별 수납자별 진료과별 수납 건수 조회";
- titlesize = 200;
-
- cap_worktype.visible = true;
- cmb_worktype.visible = true;
-
- var oParam = {};
- oParam.id = "TRSTP02200";
- oParam.service = "stspamapp.StsPam";
- oParam.method = "reqGetWorktypeList";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_init_PK021_worktype=worktype";
- oParam.async = false;
- //oParam.callback = "cf_TRSTP02200";
- tranf_submit(oParam);
-
- frmf_addComboItem("cmb_worktype", "전체", "T", "above");
- cmb_worktype.index = 0;
-
- chk_dr.visible = true;
- chk_dr.position.left = 550;
- }
- else if (FLAG == "acpt")
- {
- FLAGNM = "수납자별 진료과별 수납 및 외래 접수 건수 조회";
- titlesize = 200;
- chk_pamflag.visible = true;
- chk_pamflag.position.top = 32;
- }
- cap_title.value = FLAGNM;
- cap_title.position.width = titlesize;
- }
- function chk_dr_onclick(obj:CheckBox, e:ClickEventInfo)
- {
- if(obj.value == "Y")
- {
- FLAG = "dr";
- }
- else
- {
- FLAG = "worktype";
- }
-
- ds_send.setColumn(0, "srchflag", FLAG);
- }
- function btn_search_onclick(obj:Button, e:ClickEventInfo)
- {
- if (String(FLAG).length < 1)
- {
- return;
- }
-
- ds_send.setColumn(0, "dayflag", (ds_send.getColumn(0, "fromdd") == ds_send.getColumn(0, "todd")) ? "Y" : "N");
-
- fSetDynamicGrid(grd_main, "ds_main_gridlist_gridinfo", "TRSTP02201");
-
- var cnt = ds_main_gridlist_gridinfo.rowcount;
-
- var color = "transparent";
-
- for (var i = 0; i < cnt; i++)
- {
- var row = i;
-
- var sinfo = ds_main_gridlist_gridinfo.getColumn(i, "suminfo").split(",");
- var slv = sinfo[0];
- var scol = sinfo[1];
-
- if (slv > 0)
- {
- if (slv == 3)
- {
- color = "#ffffe6";
- }
- else if (slv == 2)
- {
- color = "#ffffc8";
- }
- else if (slv == 1)
- {
- color = "#ffffa0";
- }
-
- dsf_makeValue(ds_main_gridlist_gridinfo, "bgColor", "string", color, row);
- dsf_makeValue(ds_main_gridlist_gridinfo, "fontStyle", "string", "arial,9,bold", row);
- }
- }
- }
- function fSetDynamicGrid(grd, ref, sid)
- {
- ds_temp_header.clearData();
- ds_temp_gridlist.clearData();
-
- eval(ref).clearData();
-
- var cols = grd.getFormatColCount();
- for (var i = cols; i >= 0; i--)
- {
- grd.deleteContentsCol(i);
- }
-
- var oParam = {};
- oParam.id = "TRSTP02201";
- oParam.service = "stspamapp.StsPam";
- oParam.method = "reqGetRcptMagm";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_temp_header=header ds_temp_gridlist=gridinfo";
- oParam.async = false;
- //oParam.callback = "cf_TRSTP02201";
- tranf_submit(oParam);
- var attr = ds_temp_header.getColumn(0, "attr");
- if (utlf_isNull(attr) || String(attr).length < 1)
- {
- if(grd.getCellCount("Head")>0)
- {
- grd.setCellProperty("Head", 0, "text", "");
- }
- return;
- }
-
- var gridCaption = ds_temp_header.getColumn(0, "caption");
- var titleArr = gridCaption.split("|"); // '|'로 입력된 Head값 처리를 위해 변경함 kimdo3, 2017-03-25
- var refarr = new Array();
- var k = 0;
-
- for(var i = 0; i < titleArr.length; i++)
- {
- grd.appendContentsRow("head");
-
- var s_titleArr = titleArr[i].split("^");
-
- for(var j = 0; j < s_titleArr.length; j++)
- {
- // 0 번째 컬럼은 이미 생성, 하나 줄여서 컬럼 생성해야하므로 j > 0 보다 큰 조건을 줌
- if(i == 0 && j > 0)
- {
- grd.appendContentsCol();
- }
- refarr[k] = s_titleArr[j];
- k++;
- }
- }
- // head Text 지정
- for(var i = 0; i < refarr.length; i++)
- {
- grd.setCellProperty("head", i, "text", refarr[i]);
- }
-
- grd.appendContentsRow("body");
-
- // Column Bind setting
- var attrArr = String(attr).split("^");
- var col = "";
- var type = "";
- var font = "";
- var align = "";
- var chk_Font = new Array();
- var cnt = 0;
- for(var i = 0; i < attrArr.length; i++)
- {
- var dataType = String(attrArr[i]).replace("; ", ",");
- var s_dataType = dataType.split(",");
-
- for(var j = 0; j < s_dataType.length; j++)
- {
- if(String(s_dataType[j]).indexOf("ref") == 0)
- {
- col = String(s_dataType[j]).replace("ref:", "");
- grd.setCellProperty("Body", i, "text", "bind:"+col);
- }
- if(String(s_dataType[j]).indexOf("type") == 0)
- {
- type = String(s_dataType[j]).replace("type:", "");
- if(type == "Number")
- {
- grd.setCellProperty("Body", i, "displaytype", "number");
- }
- else
- {
- grd.setCellProperty("Body", i, "displaytype", "normal");
- }
- }
- if(String(s_dataType[j]).indexOf("visibility") == 0)
- {
- visibility = String(s_dataType[j]).replace("visibility:", "");
- if(visibility == "hidden")
- {
- grd.setCellProperty("Head", i, "size", 0);
- }
- }
-
- if(String(s_dataType[j]).indexOf("text-align") == 0)
- {
- align = String(s_dataType[j]).replace("text-align:", "");
- grd.setCellProperty("Body", i, "align", align+" middle");
- }
-
- //Grid Background Setting
- grd.setCellProperty("Body", i, "background", "BIND(bgColor)");
- grd.setCellProperty("Body", i, "background2", "BIND(bgColor)");
- if(String(s_dataType[j]).indexOf("font-weight") == 0)
- {
- chk_Font[cnt] = i;
- cnt++;
- }
- }
- }
-
- var width = ds_temp_header.getColumn(0, "width");
- var widthArr = String(width).split("^");
- // 컬럼 사이즈 조절을 위한 for문
- for(var i = 0; i < widthArr.length; i++)
- {
- grd.setFormatColProperty(i, "size", widthArr[i]);
- }
-
- //Grid Font Setting
- cnt = 0;
- for(var k = 0; k < grd_main.getCellCount("body"); k++)
- {
- if(k == chk_Font[cnt])
- {
- grd.setCellProperty("Body", k, "font", "arial,9,bold");
- cnt++;
- }
- else
- {
- grd.setCellProperty("Body", k, "font", "BIND(fontStyle)");
- }
- }
-
- //Grid Merge Setting
- grdTitleMerge(grd);
-
- eval(ref).copyData(ds_temp_gridlist);
- }
- function grdTitleMerge(grid)
- {
- var headCols = grid.getCellCount("body");
- var headCells = grid.getCellCount("head");
-
- var headArrR1 = new Array();
- var headArrR2 = new Array();
- var headArrR3 = new Array();
-
- var headArrR2No = new Array();
- var headArrR3No = new Array();
-
- var headArrR2NoIdx = 0;
- var headArrR3NoIdx = 0;
-
- var headArrMer12No = "";
- var headArrMer13No = "";
-
- var headArrMer12NoIdx = 0;
- var headArrMer13NoIdx = 0;
-
- var mergeScol = 0;
- var mergeEcol = 0;
- var index = 0;
- var calindex = 0;
- var calindex1 = 0;
- var calindex11 = 0;
-
- grid.splitContentsCell("head",0,0,3,headCols,true);
-
- for(var i=0; i<headCells;i++)
- {
- if( parseInt(i/headCols)==0 )
- {
- headArrR1[i%headCols] = grid.getCellText(-1,i);
- }
- if( parseInt(i/headCols)==1 )
- {
- headArrR2[i%headCols] = grid.getCellText(-1,i);
- }
- if( parseInt(i/headCols)==2 )
- {
- headArrR3[i%headCols] = grid.getCellText(-1,i);
- }
- }//for(var i=0; i<headCells;i++) 끝
-
- //로우 병합
- for(var i = 0; i < headCols; i++)
- {
- if(headArrR1[i]==headArrR2[i])
- {
- index = i;
- calindex++;
- grid.mergeContentsCell("head",0,i,1,i,index,false);
- headArrMer12No+=i+"^";
- headArrMer12NoIdx++;
- }
- else
- {
- headArrR2No[headArrR2NoIdx]=i;
- headArrR2NoIdx++;
- }
- if(headArrR2[i]==headArrR3[i])
- {
- index = eval(i)+eval(headCols)-calindex;
- grid.mergeContentsCell("head",1,i,2,i,index,false);
- calindex1++;
- if(headArrR2[i]==headArrR1[i])
- {
- index = eval(i)+eval(headCols)-calindex;
- grid.mergeContentsCell("head",0,i,2,i,i,false);
- calindex11++;
- headArrMer13No+=i+"^";
- headArrMer13NoIdx++;
- }
- }
- else
- {
- headArrR3No[headArrR3NoIdx]=i;
- headArrR3NoIdx++;
- }
- }//for(var i=0; i<headCols; i++) 끝
-
- //배치가 바뀌어 재분배
- var headCells2 = grid.getCellCount("head");
- var headArr1 = new Array();
- var headArr2 = new Array();
- var headArr3 = new Array();
- var headArr3idx = 0;
- var headArr2idx = 0;
-
- for(var i=0; i<headCells2;i++)
- {
- if( parseInt(i/headCols)==0 )
- {
- headArr1[i%headCols] = grid.getCellText(-1,i);
- }
- else if( eval(i)< headCols*2-eval(calindex))
- {
- headArr2[headArr2idx] = grid.getCellText(-1,i);
- headArr2idx++;
- }
- else
- {
- headArr3[headArr3idx] = grid.getCellText(-1,i);
- headArr3idx++;
- }
- }//for(var i=0; i<headCells;i++) 끝
-
- //컬럼 병합
- var tmp1 = "";
- var tmp1idx = 0;
- var tmp2 = "";
- var tmp2idx = 0;
- var col = 0;
- var index = 0;
- var calcolindex = 0;
- for(var i=0; i<headArr1.length;i++)
- {
- if(i==0)
- {
- tmp1 = headArr1[0];
- tmp1idx = 0;
- }
- else
- {
- tmp2 = headArr1[i];
- tmp2idx = i;
- }
- idx = i-calcolindex-1;
- if(tmp1==tmp2)
- {
- grid.mergeContentsCell("head",0,tmp1idx,0,tmp2idx,idx,false);
- calcolindex++;
- }
- else
- {
- tmp1 = headArr1[i];
- tmp1idx = i;
- }
- }//for(var i=0; headArr1.legnth();i++) 끝
-
- var tmp1 = "!";
- var tmp2 = "!";
- var tmp2idx = 0;
- var calcolindex1 = 0;
- var idx = 0;
- for(var i=0; i<headArr2.length;i++)
- {
- if(i==0)
- {
- tmp1 = headArr2[0];
- tmp1idx = 0;
- }
- else
- {
- tmp2 = headArr2[i];
- tmp2idx = headArrR2No[i];
- }
- var cnt12R = biggerCnt(headArrR2No[i],headArrMer12No);
- idx = (headCols+headArrR2No[i]) - calcolindex - eval(calindex) + cnt12R - eval(calcolindex1)-1;
-
- if(tmp1==tmp2)
- {
- grid.mergeContentsCell("head",1,tmp1idx,1,tmp2idx,idx,false);
- calcolindex1++;
- }
- else
- {
- tmp1 = headArr2[i];
- tmp1idx = headArrR2No[i];
- }
- }//for(var i=0; headArr2.legnth();i++) 끝
- var tmp1 = "!";
- var tmp2 = "!";
- var tmp2idx = 0;
- var calcolindex11 = 0;
- for(var i=0; i<headArr3.length; i++)
- {
- if(i==0)
- {
- tmp1 = headArr3[0];
- tmp1idx = 0;
- }
- else
- {
- tmp2 = headArr3[i];
- tmp2idx = headArrR3No[i];
- }
- var cnt13R = biggerCnt(headArrR3No[i],headArrMer13No);
- idx = (headCols*2+headArrR3No[i]) - calcolindex - calcolindex1 - calcolindex11 - calindex - calindex1 + cnt13R;
- if(tmp1==tmp2)
- {
- grid.mergeContentsCell("head",2,tmp1idx,2,tmp2idx,idx,false);
- calcolindex11++;
- }
- else
- {
- tmp1 = headArr3[i];
- tmp1idx = headArrR3No[i];
- }
- }
- }
- function biggerCnt(num,idxArr)
- {
- var rtn=0;
- var arr = new Array();
- var idxA = new String(idxArr);
- arr = idxA.substr(0,idxA.length-1).split("^");
- for(var i=0; i<arr.length; i++)
- {
- if(num<arr[i])
- {
- rtn++;
- }
- }
- return rtn;
- }
- function btn_excel_onclick(obj:Button, e:ClickEventInfo)
- {
- var day = ds_send.getColumn(0, "fromdd") + "-" + ds_send.getColumn(0, "todd");
- grdf_exportExcel(grd_main, cap_title.text + "_" + day, FLAGNM, "true", "", "");
- sysf_messageBox("엑셀 저장이 완료되었습니다.", "I999");
- }
- ]]></Script>
- </Form>
- </FDL>
|