123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/**
- * @desc : 화면 초기화
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fInitialize_SPMMI00700(){
- var scrnid = "SMMMI00100"; // 통합결과조회 화면
- var caseid = opener.frmf_getParameter("SPMMI00700_param_caseid");
- if (utlf_isNull(caseid)) {
- caseid = "kind";
- }
-
- var compscd = "";
- var grdid = "";
- if(caseid == "group") {
- grdid = "grd_grouplist";
- compscd = "01";
- } else {
- grdid = "grd_kindlist";
- compscd = "02";
- }
-
- var tabpageIndex = new Array();
- tabpageIndex["group"] = 0;
- tabpageIndex["kind"] = 1;
-
- Tab00.tabindex = tabpageIndex[caseid];
- fClkBtnOfTopTab(caseid, compscd, grdid, scrnid);
- }
- /**
- * @desc : 컬럼 순서 정보를 얻는다.
- * @
- * @param : grid ID
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fGetOrderInfoOfCol(grdID){
- var grdObj = eval(grdID);
- var refdata = ""; // ref
- var sizedata = ""; // size
- var sFrozenCol = ""; // frozenCols
- var refval = "";
- var sizeval = "";
- var oDataSet = eval(grdObj.binddataset);
- var totcol = grdObj.getCellCount("body");
- for(var i = 0; i < totcol; i++){
- refval = ((i == 0) && (grdObj.getCellProperty("body", i, "celltype") == "head")) ? "" : lf_getBindCellName(grdObj, i); // 순번 헤더는 ""으로 처리
- refdata += refval + "^";
-
- sizeval = grdObj.getRealColSize(i);
- sizedata += sizeval + "^";
-
- if(refval != "" && oDataSet.getColumn(0, refval) == "☜") {
- sFrozenCol = refval;
- }
- }
- refdata = refdata.substring(0 , refdata.length-1);
- sizedata = sizedata.substring(0, sizedata.length-1);
- ds_listval.clearData();
- ds_listval.addRow();
- ds_listval.setColumn(0, "refdata", refdata);
- ds_listval.setColumn(0, "sizedata", sizedata);
- ds_listval.setColumn(0, "frozencol", sFrozenCol);
- }
- /**
- * @desc : 컬럼 순서 정보 설정한다.
- * @
- * @param : grid ID : 그리드ID
- : refdata : 그리드 ref데이터 구분자 '^'
- : sizedata : 그리드 size데이터 구분자 '^'
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSetOrderInfoOfCol(grdID, refdata, sizedata, frozencol, bColor){
- var grdObj = eval(grdID);
- var refarr = refdata.split("^");
- var sizearr = sizedata.split("^");
- var frozencolIndex = grdObj.getBindCellIndex("body", frozencol);
-
- grdObj.enableevent = false;
- grdObj.enableredraw = false;
- try {
- for(var i = 1; i < grdObj.getFormatColCount(); i++) {
- grdObj.setFormatColProperty(i, "size", 0);
- }
-
- for(var i = 0; i < refarr.length; i++) {
- var nCol = i;
-
- var colText = refarr[i];
- var col = grdObj.getBindCellIndex("body", colText);
- if(col == -1) continue;
- if(i != col) {
- var headText = grdObj.getCellProperty("head", col, "text");
- var bodyText = grdObj.getCellProperty("body", col, "text");
- grdObj.deleteContentsCol(col);
-
- nCol = grdObj.insertContentsCol(i);
-
- grdObj.setCellProperty("head", nCol, "text", headText);
- grdObj.setCellProperty("body", nCol, "text", bodyText);
- }
-
- grdObj.setFormatColProperty(nCol, "size", sizearr[i]);
- }
- } finally {
- grdObj.enableevent = true;
- grdObj.enableredraw = true;
- }
-
- if(!utlf_isNull(frozencol))
- eval(grdObj.binddataset).setColumn(0, frozencol, "☜");
- }
- /**
- * @desc : 화면ID에 해당하는 컬럼순서를 조회한다.
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqOrderInfoOfCol(scrnid, compscd){
- ds_reqResize.clearData();
- ds_reqResize.addRow();
-
- ds_reqResize.setColumn(0, "scrnid", scrnid);
- ds_reqResize.setColumn(0, "compscd", compscd);
- var oParam = {};
- oParam.id = "TRMMB01103";
- oParam.service = "prcpbaseapp.EnvInfoMngt";
- oParam.method = "reqGetUserScrnEnvEstb";
- oParam.inds = "req=" + "ds_reqResize";
- oParam.outds = "ds_gridseqResize=gridseq";
- oParam.async = false;
- oParam.callback = "cf_TRMMB01103_Resize";
- tranf_submit(oParam);
- }
- function cf_TRMMB01103_Resize(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) return;
- var grdid = getCurrentGridId();
-
- var refdata = ds_gridseqResize.getColumn(0, "compsrefcnts");
- var sizedata = ds_gridseqResize.getColumn(0, "compssizecnts");
- var frozencol = ds_gridseqResize.getColumn(0, "frozencol");
- if(!utlf_isNull(refdata) && !utlf_isNull(sizedata)){
- fSetOrderInfoOfCol(grdid + "_resize", refdata, sizedata, frozencol);
- }
- }
- /**
- * @desc : 화면ID에 해당하는 기본 컬럼순서를 조회한다.
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqBasicOrderInfoOfCol(){
- ds_reqBasic.clearData();
- ds_reqBasic.addRow();
-
- ds_reqBasic.setColumn(0, "userid", "00000"); // 병원 공통(00000) 기본 컬럼을 조회 한다.
- ds_reqBasic.setColumn(0, "scrnid", ds_cond.getColumn(0, "scrnid"));
- ds_reqBasic.setColumn(0, "compscd", ds_cond.getColumn(0, "compscd"));
-
- var oParam = {};
- oParam.id = "TRMMB01103";
- oParam.service = "prcpbaseapp.EnvInfoMngt";
- oParam.method = "reqGetUserScrnEnvEstb";
- oParam.inds = "req=" + "ds_reqBasic";
- oParam.outds = "ds_gridseqBasic=gridseq";
- oParam.async = false;
- oParam.callback = "cf_TRMMB01103_Basic";
- tranf_submit(oParam);
- }
- function cf_TRMMB01103_Basic(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) return;
-
- var grdid = getCurrentGridId();
-
- var refdata = ds_gridseqBasic.getColumn(0, "compsrefcnts");
- var sizedata = ds_gridseqBasic.getColumn(0, "compssizecnts");
- var frozencol = ds_gridseqBasic.getColumn(0, "frozencol");
- if(!utlf_isNull(refdata) && !utlf_isNull(sizedata)){
- fSetOrderInfoOfCol(grdid + "_basic", refdata, sizedata, frozencol);
- }
- }
- /**
- * @desc : 상단 TAB버튼 클릭시
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fClkBtnOfTopTab(caseid, compscd, grdid, scrnid){
- ds_cond.setColumn(0, "scrnid", scrnid);
- ds_cond.setColumn(0, "compscd", compscd);
- ds_cond.setColumn(0, "grdid", grdid);
- ds_cond.setColumn(0, "caseid", caseid);
- fReqBasicOrderInfoOfCol(); // 기본설정 셋팅
- fReqOrderInfoOfCol(scrnid, compscd); // 사용자 설정 셋팅
- }
- /**
- * @desc : 그리드 ref, size저장
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSaveOrderInfoCol(){
- var grdid = getCurrentGridId();
- var scrnid = ds_cond.getColumn(0, "scrnid");
- var compscd = ds_cond.getColumn(0, "compscd");
-
- fGetOrderInfoOfCol(grdid + "_resize");
- var refdata = ds_listval.getColumn(0, "refdata");
- var sizedata = ds_listval.getColumn(0, "sizedata");
- var sFrozenCol = ds_listval.getColumn(0, "frozencol");
- ds_savedata.clearData();
- ds_savedata.addRow();
-
- ds_savedata.setColumn(0, "compscnts", ""); //추후 삭제 예정
- ds_savedata.setColumn(0, "scrnid", scrnid);
- ds_savedata.setColumn(0, "compscd" , compscd);
- ds_savedata.setColumn(0, "compsrefcnts", refdata);
- ds_savedata.setColumn(0, "compssizecnts", sizedata);
- ds_savedata.setColumn(0, "frozencol", sFrozenCol);
-
- var oParam = {};
- oParam.id = "TXMMB01102";
- oParam.service = "prcpbaseapp.EnvInfoMngt";
- oParam.method = "reqInsUserScrnEnvEstb";
- oParam.inds = "req=" + "ds_savedata";
- oParam.async = false;
- tranf_submit(oParam);
- }
- /**
- * @desc : 사용자화면(진료정보조회화면설정) 초기화
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fInitOrderOfCol(){
- var grdid = ds_cond.getColumn(0, "grdid");
- fGetOrderInfoOfCol(grdid + "_basic"); //현재 default로 설정된 grid의 column과 size를 구한다.
-
- var refdata = ds_listval.getColumn(0, "refdata");
- var sizedata = ds_listval.getColumn(0, "sizedata");
- var frozencol = ds_listval.getColumn(0, "frozencol");
-
- fSetOrderInfoOfCol(grdid +"_resize", refdata, sizedata, frozencol); //default로 설정된 grid의 column과 size를 다시 설정한다.
- }
- /**
- * @desc : 사용자화면 설정 초기화
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAppOrderOfCol(sType){
- var grdid = getCurrentGridId();
-
- if(sType == "BASIC") { // 기본설정 적용(BASIC)
- fGetOrderInfoOfCol(grdid +"_basic"); //현재 default로 설정된 grid의 column과 size를 구한다.
- } else { // 전체(ALL)
- fGetOrderInfoOfCol(grdid); //현재 default로 설정된 grid의 column과 size를 구한다.
- }
-
- var refdata = ds_listval.getColumn(0, "refdata");
- var sizedata = ds_listval.getColumn(0, "sizedata");
- var frozencol = ds_listval.getColumn(0, "frozencol");
-
- fSetOrderInfoOfCol(grdid +"_resize", refdata, sizedata, frozencol); //default로 설정된 grid의 column과 size를 다시 설정한다.
- }
- /**
- * @desc : 그리드의 column 삭제
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fDelColOfGrd(){
- var grdid = getCurrentGridId();
- var ResizeGrdObj = eval(grdid + "_resize");
- var selectedCells = grdf_getSelectedCols(ResizeGrdObj);
- for(var i = 0; i < selectedCells.length; i++){
- var nCurCol = selectedCells[i];
-
- var sSelColNm = lf_getBindCellName(ResizeGrdObj, nCurCol);
- if(sSelColNm == "check" || sSelColNm == "lastreptdd" || sSelColNm == "lastreptdd1" || sSelColNm == "prcpdd" || sSelColNm == "prcpdd1" || sSelColNm == "execdd" || sSelColNm == "execdd1") {
- sysf_messageBox("삭제할수 없는 항목입니다.", "I999");
- continue;
- }
-
- ResizeGrdObj.setFormatColProperty(nCurCol, "size", 0);
- if(ResizeGrdObj.getCellProperty("body", nCurCol, "background") == "lightgreen")
- ResizeGrdObj.setCellProperty("body", nCurCol, "background", null);
- if(ResizeGrdObj.getCellProperty("body", nCurCol, "background2") == "lightgreen")
- ResizeGrdObj.setCellProperty("body", nCurCol, "background2", null);
- }
- }
- /**
- * @desc : 그리드의 column 추가
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAddColOfGrd(){
- var sAddColNm = ""; // 컬럼명
- var sAddColSz = ""; // 컬럼 사이즈
- var nCurCol = 0; // 선택된 컬럼 번호
- var nSelCol = 0;
-
- var grdid = getCurrentGridId();
- var SelectedGrdObj = eval(grdid);
- var ResizeGrdObj = eval(grdid + "_resize");
- if(SelectedGrdObj.getCellPos() < 0) return;
- var SelectedCells = grdf_getSelectedCols(SelectedGrdObj);
- SelectedGrdObj.enableevent = false;
- SelectedGrdObj.enableredraw = false;
- ResizeGrdObj.enableevent = false;
- ResizeGrdObj.enableredraw = false;
-
- try {
- for(var i = 0; i < SelectedCells.length; i++) {
- var nCurCol = SelectedCells[i];
- var sAddColNm = lf_getBindCellName(SelectedGrdObj, nCurCol);
- var sAddColSz = SelectedGrdObj.getRealColSize(nCurCol);
- var nSelCol = ResizeGrdObj.getBindCellIndex("body", sAddColNm);
- if(nSelCol > 0) {
- var headText = ResizeGrdObj.getCellProperty("head", nSelCol, "text");
- var bodyText = ResizeGrdObj.getCellProperty("body", nSelCol, "text");
-
- ResizeGrdObj.deleteContentsCol(nSelCol);
- var nCol = ResizeGrdObj.insertContentsCol(nCurCol);
-
- ResizeGrdObj.setCellProperty("head", nCol, "text", headText);
- ResizeGrdObj.setCellProperty("body", nCol, "text", bodyText);
- ResizeGrdObj.setCellProperty("body", nCol, "background", "lightgreen");
- ResizeGrdObj.setCellProperty("body", nCol, "background2", "lightgreen");
- ResizeGrdObj.setFormatColProperty(nCol, "size", sAddColSz);
- }
- }
- } finally {
- SelectedGrdObj.enableevent = true;
- SelectedGrdObj.enableredraw = true;
- ResizeGrdObj.enableevent = true;
- ResizeGrdObj.enableredraw = true;
- }
- }
- /**
- * @desc : 그리드의 column 고정 설정
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fSetFrozenColOfGrd(){
- var grdid = getCurrentGridId();
- var ResizeGrdObj = eval(grdid + "_resize");
- var SelectedCells = grdf_getSelectedCols(ResizeGrdObj);
-
- if (SelectedCells.length > 0) {
- var nCurCol = SelectedCells[SelectedCells.length - 1];
- var oDataSet = eval(ResizeGrdObj.binddataset);
- oDataSet.clearData();
- oDataSet.addRow();
-
- var frozenColNm = lf_getBindCellName(ResizeGrdObj, nCurCol);
- oDataSet.setColumn(0, frozenColNm, "☜");
-
- ds_gridseqResize.setColumn(0, "frozencol", frozenColNm);
- }
- }
- /**
- * @desc : 그리드의 column 고정 취소
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fCancelFrozenColOfGrd(){
- var grdid = getCurrentGridId();
- var ResizeGrdObj = eval(grdid + "_resize");
-
- var oDataSet = eval(ResizeGrdObj.binddataset);
- oDataSet.clearData();
- oDataSet.addRow();
- }
- /**
- * @desc : 컬럼 추가 드래그 시작
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAddColDragStart(obj:Grid, e:GridDragEventInfo){
- var sDropData = ""; // Drag Drop 파라미터 데이터
- var sDragColNm = ""; // 컬럼명
- var sDragColSz = ""; // 컬럼 사이즈
- var nCurCol = 0; // 선택된 컬럼 번호
-
- var SelectedCells = grdf_getSelectedCols(obj);
- for(var i = 0; i < SelectedCells.length; i++){
- nCurCol = SelectedCells[i];
-
- sDragColNm = lf_getBindCellName(obj, nCurCol);
- sDragColSz = obj.getRealColSize(nCurCol);
-
- if(eval(sDragColSz) > 0) {
- if(utlf_isNull(sDropData)) {
- sDropData = sDragColNm + "^" + sDragColSz;
- } else {
- sDropData = sDropData + "|" + sDragColNm + "^" + sDragColSz;
- }
- }
- }
- e.userdata = sDropData;
- //e.dragimage = obj.saveToImageObject();
- }
- /**
- * @desc : 컬럼 추가 드래그 종료
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAddColDragOver(obj:Grid, e:GridDragEventInfo){
- if(e.button == "lbutton")
- obj.style.cursor = "hand";
- else
- obj.style.cursor = "auto";
- }
- /**
- * @desc : 컬럼 추가 드래그 종료
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAddColDrop(obj:Grid, e:GridDragEventInfo){
- var sDragColNm = "";
- var sDragColSz = "";
- var nPreCol = 0; // 옮기기전 Col
- var nSelCol = 0; // 옮긴후 Col
-
- var grdid = getCurrentGridId();
- var ResizeGrdObj = eval(grdid + "_resize");
- if(getCurrentGridId(e.sourceobject.name) == grdid) {
- if(!utlf_isNull(e.userdata)) {
- nSelCol = e.col; // 초기값은 마우스로 선택된 컬럼
- var selColNm = lf_getBindCellName(ResizeGrdObj, nSelCol); // 현재 선택한 컬럼의 이름
-
- var saDropData = e.userdata.split("|");
-
- ResizeGrdObj.enableevent = false;
- ResizeGrdObj.enableredraw = false;
-
- try {
- var tempRefdata = ""; // ref
- var tempSizedata = ""; // size
- var refdata = "";
- var sizedata = "";
- var refval = "";
- var sizeval = "";
- var dropColNm = "";
- var dropColSz = "";
-
- // 1. 선택하여 드래그한 컬럼들 합침
- for(var i = 0; i < saDropData.length; i++) {
- var saDropCol = saDropData[i].split("^");
- dropColNm += saDropCol[0] + "^";
- dropColSz += saDropCol[1] + "^";
- }
-
- dropColNm = dropColNm.substring(0 , dropColNm.length-1);
- dropColSz = dropColSz.substring(0 , dropColSz.length-1);
- // 2. 사용자 설정 그리드의 전체 열에서 드래그한 컬럼들 제거(집어넣는 위치의 컬럼은 제외)
- var totcol = ResizeGrdObj.getCellCount("Head");
- for(var i = 0; i < totcol; i++){
- var colText = lf_getBindCellName(ResizeGrdObj, i);
- refval = ((i == 0) ? "" : colText); // 순번 헤더는 ""으로 처리
- sizeval = ResizeGrdObj.getRealColSize(i);
-
- var isExist = false;
- for(var j = 0; j < saDropData.length; j++) {
- var saDropCol = saDropData[j].split("^");
-
- if(colText == saDropCol[0] && selColNm != colText) { // 집어넣은 위치에 있는 컬럼은 제외
- isExist = true;
- saDropData.splice(j, 1);
- break;
- }
- }
-
- if(!isExist) {
- tempRefdata += refval + "^";
- tempSizedata += sizeval + "^";
- }
- }
-
- tempRefdata = tempRefdata.substring(0 , tempRefdata.length-1);
- tempSizedata = tempSizedata.substring(0, tempSizedata.length-1);
-
- // 3. 집어 넣은 위치의 컬럼에 드래그 한 컬럼들을 삽입
- var ttempRefdata = tempRefdata.split("^");
- var ttempSizedata = tempSizedata.split("^");
- for(var i = 0; i < ttempRefdata.length; i++) {
- refval = ttempRefdata[i];
- sizeval = ttempSizedata[i];
-
- if(selColNm == ttempRefdata[i]) {
- var dragColNm = dropColNm.split("^");
- var isExist = false;
- for(var j = 0; j < dragColNm.length; j++) {
- if(refval == dragColNm[j]) {
- isExist = true;
- break;
- }
- }
-
- if(isExist) {
- refval = dropColNm;
- sizeval = dropColSz;
- } else {
- refval = refval + "^" + dropColNm;
- sizeval = sizeval + "^" + dropColSz;
- }
- }
-
- refdata += refval + "^";
- sizedata += sizeval + "^";
- }
-
- refdata = refdata.substring(0 , refdata.length-1);
- sizedata = sizedata.substring(0, sizedata.length-1);
-
- // 4. 컬럼 재 설정
- fSetOrderInfoOfCol(grdid + "_resize", refdata, sizedata);
-
- // 5. 변경 된 부분 색상 칠하기
- var dropdata = e.userdata.split("|");
- for(var i = 0; i < dropdata.length; i++) {
- var saDropCol = dropdata[i].split("^");
- var dropCol = ResizeGrdObj.getBindCellIndex("body", saDropCol[0]);
- ResizeGrdObj.setCellProperty("body", dropCol, "background", "lightgreen");
- ResizeGrdObj.setCellProperty("body", dropCol, "background2", "lightgreen");
- }
- } finally {
- ResizeGrdObj.enableevent = true;
- ResizeGrdObj.enableredraw = true;
- }
- }
- }
- }
- function getCurrentGridId (sGrdid) {
- var caseid = ds_cond.getColumn(0, "caseid");
- var grdid = (utlf_isNull(sGrdid)) ? ds_cond.getColumn(0, "grdid") : sGrdid;
- return "Tab00." + caseid + "." + grdid;
- }
- ]]></Script>
|