123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625 |
- <?xml version="1.0" encoding="utf-8"?>
- <FDL version="1.5">
- <TypeDefinition url="..\default_typedef.xml"/>
- <Form id="cp_radioList" classname="cp_periodCal" inheritanceid="" position="absolute 0 0 100 20" titletext="Radio List" scrollbars="none" onload="cp_form_onload" col="1" row="1" style="background:transparent;">
- <Layouts>
- <Layout/>
- </Layouts>
- <Objects>
- <Dataset id="ds_rdoList" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
- <ColumnInfo>
- <Column id="chk" type="STRING" size="256"/>
- <Column id="val" type="STRING" size="256"/>
- <Column id="txt" type="STRING" size="256"/>
- </ColumnInfo>
- </Dataset>
- </Objects>
- <Script type="xscript4.0"><![CDATA[/***************************************************************************************
- * System Name : himed2
- * Job Name : Composite
- * Description : multi Radio(서식용)
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
- /* 참고사항
- * User Properties
- col : 아이템 열의 개수
- row : 아이템 행의 개수
- */
- //=======================================================================================
- // Common Lib Include
- //---------------------------------------------------------------------------------------
- include "com_commonxp::comm_ds.xjs";
- //=======================================================================================
- // Global Form Variable
- //---------------------------------------------------------------------------------------
- var iv_event; //event
- var objForm; //form Object
- /****************************************************************************************
- * Description : Form Initialization
- * Argument : obj : Object Event has occurred
- * : e : Event Object
- * return :
- ****************************************************************************************/
- function cp_form_onload(obj:Form, e:LoadEventInfo)
- {
- objForm = obj;
- }
- //=======================================================================================
- // Event
- //---------------------------------------------------------------------------------------
- function ufn_event_onitemclick(obj:Radio, e:RadioMouseEventInfo)
- {
- var nRow = ds_rdoList.findRow("val", e.itemvalue);
- var objRdo;
- for(var i=0; i < ds_rdoList.getRowCount(); i++)
- {
- objRdo = eval("rdo_multi_"+i);
- if(nRow == i)
- {
- ds_rdoList.setColumn(i, "chk","1");
-
- }
- else
- {
- objRdo.value = null;
- ds_rdoList.setColumn(i, "chk","0");
- }
- }
- if(!ufn_isNull(iv_event)) ufn_compositeEvent(iv_event);
- }
- //=======================================================================================
- // User Function
- //---------------------------------------------------------------------------------------
- /****************************************************************************************
- * Description : form init setting
- * Argument : String sProp - uset properties
- * Object objDs - dataset object
- * String sColVal - value column
- * String sColTxt - text column
- * String sEvent - event function
- 1021 - sID 추가
-
-
- * @return N / A
- * ex)setInitProperty("col=2,row=1")
- ****************************************************************************************/
- function setInitComp(sID, sProp, objDs, sColVal, sColTxt, sEvent)
- {
- //InitProperty
- if(!ufn_isNull(sProp))
- {
- setInitProperty(sProp);
- }
-
- //trace(objDs.saveXML());
-
- //BindDataset
- if(!(ufn_isNull(objDs) || ufn_isNull(sColVal) || ufn_isNull(sColTxt)))
- {
- setBindDataset(sID, objDs, sColVal, sColTxt);
- }
- //setCallEvent
- if(!ufn_isNull(sEvent))
- {
- setCallEvent(sEvent);
- }
-
- }
- /****************************************************************************************
- * Description : user property setting
- * Argument : String sVal
- * @return N / A
- * ex)setInitProperty("col=2,row=1")
- ****************************************************************************************/
- function setInitProperty(sVal)
- {
- if(ufn_isNull(sVal))
- {
- return;
- }
-
- var arrVal= sVal.split(",");
- var arrProp;
- for(var i=0; i < arrVal.length; i++)
- {
-
- arrProp = arrVal[i].split("=");
- var tmp1 = utlf_trim(arrProp[0]);
- var tmp2 = utlf_trim(arrProp[1]);
- if( tmp2 == "*" ){
- tmp2 = "'*'";
- }else if( tmp2.indexOf("px") > -1 ){
- tmp2 = tmp2.replace("px", "");
- }
-
- eval(objForm.name+"."+tmp1+"="+tmp2);
-
- // arrProp = arrVal[i].split("=");
- // eval(objForm.name+"."+arrProp[0]+"="+arrProp[1]);
- }
-
- //trace("asdfsadfsdf:"+objForm.col+" "+objForm.row+" "+objForm.cellspacing+" "+objForm.vcellspacing+" "+objForm.itemWidth+" "+objForm.itemHeight+" , overflow="+objForm.overflow);
- }
- /****************************************************************************************
- * Description : dstaset binding
- * Argument : object objDs - dataset Object
- :
- * @return N / A
- ****************************************************************************************/
- function setBindDataset(sID, objDs, sColVal, sColTxt)
- {
- ufn_removeComp();
- ds_rdoList.clearData();
-
- var nRow;
-
- for(var i =0; i < objDs.getRowCount() ; i++)
- {
- nRow = ds_rdoList.addRow();
- ds_rdoList.setColumn(nRow, "val", ufn_trim(objDs.getColumn(i, sColVal)));
- ds_rdoList.setColumn(nRow, "txt", ufn_trim(objDs.getColumn(i, sColTxt)));
- }
-
- utlf_makeRadio(sID);
- }
- /****************************************************************************************
- * Description : User Composite Set Data Method
- * Argument : sData
- * return : none
- ****************************************************************************************/
- function setData(sData)
- {
-
- var nRow = ds_rdoList.findRow("val", sData);
- var objRdo;
- var objName;
- var objNm = objForm.name;
- for(var i=0; i < ds_rdoList.getRowCount(); i++)
- {
- objRdo = eval("rdo_multi_"+i);
- if(nRow == i)
- {
- //objName = objRdo.name;
- objRdo.value = sData;
- ds_rdoList.setColumn(i, "chk","1");
- }
- else
- {
- objRdo.value = "";
- ds_rdoList.setColumn(i, "chk","0");
- }
- }
- //1120 - 주석처리
- //if(!ufn_isNull(iv_event)) ufn_compositeEvent(iv_event,sData);
- }
- /****************************************************************************************
- * Description : User Composite Get Data Method
- * Argument : none
- * return : none
- ****************************************************************************************/
- function getData()
- {
- var iv_Rtn = ds_rdoList.lookup("chk", "1", "val");
- return iv_Rtn;
- }
- /****************************************************************************************
- * Description : User Composite Get Data Method
- * Argument : none
- * return : none
- ****************************************************************************************/
- function getLableData()
- {
- var iv_Rtn = ds_rdoList.lookup("chk", "1", "txt");
- return iv_Rtn;
- }
- /****************************************************************************************
- * Description : User Composite set setEnbale
- * Argument : none
- * return : none
- ****************************************************************************************/
- function setEnbale(bReq)
- {
- objForm.enable = bReq;
- }
- /****************************************************************************************
- * Description : User Composite Set Event Method
- * Argument : none
- * return : none
- ****************************************************************************************/
- function setCallEvent(sEvent)
- {
- iv_event = sEvent;
- }
- /****************************************************************************************
- * Description : dstaset binding
- * Argument : object objDs - dataset Object
- :
- * @return N / A
- ****************************************************************************************/
- function utlf_makeRadio(sID)
- {
- var arrCol = new Array();
- var sDsNm; //데이터셋 ID
- var sTxt; //라디오 텍스트
- var objFont = utlf_getObjFont(9, "Dotum"); //font object
- var objTextSize; //폰트사이즈
- var nFontPx;
- var objInnDs; // innerdataset;
- //var nCellspacing = 22; //컴퍼넌트사이 간격
- var nCellspacing = objForm.cellspacing;
- var nVcellspacing = objForm.vcellspacing;
-
-
- var nCircleSize = 19; //라디오 이미지 사이즈
-
- var nWidth = 0; // radio width
- var nHeight = 0; //radio height
-
- /* //추가 확장기능 요청시 사용할려고 남겨 놓음
- var nItemWidth = toNumber(objForm.itemWidth,0);
- var nItemHeight = toNumber(objForm.itemHeight,0);
-
- if(nItemWidth < 1 || ufn_isNull(nItemWidth))
- {
- nWidth = 100;
- }
- else
- {
- nWidth = nItemWidth;
- }
-
-
- if(nItemHeight< 1 || ufn_isNull(nItemHeight))
- {
- nHeight = 20;
- }
- else
- {
- nHeight = nItemHeight;
- }
- */
- //20150127 - nWidth , nHeight 수정
- //w 19 h 20 -> 13, 16
- nWidth = 13;
- nHeight =16;
-
-
-
-
- var objFont = utlf_getObjFont(9, "Dotum"); //font object
- var objTextSize; //폰트사이즈
- var objNm = objForm.name;
-
- var j = 1; //col 갯수
- var nTop = 0;
- var nLeft = 0;
- var nTop =0;
- var nRight =0;
- var nBottom =0;
- //var nMaxWidth = 0; //가장 큰 넓이값-폼의 크기를 설정하기 위한 값
- //var nMaxHeight = 0; //가장 큰 높이값-폼의 크기를 설정하기 위한 값
- //var nMaxItemSize = 0;
-
- var nColMax = new Array(objForm.col);
-
- for(var i = 0; i < nColMax.length; i++)
- {
- nColMax[i] = 0;
- }
- var colNum = 0;
-
- for(var i = 0; i < ds_rdoList.getRowCount(); i++)
- {
- sTxt = ufn_trim(ds_rdoList.getColumn(i,"txt"));
- objTextSize = utlf_getTextSize(sTxt, objFont);
-
- if(colNum == (i % objForm.col))
- {
- if(nColMax[colNum] <= objTextSize.cx)
- {
- nColMax[colNum] = objTextSize.cx;
-
- }
- colNum++;
- }
-
- if(colNum == col)
- {
- colNum = 0;
- }
- }
-
-
- for(var i=0; i < ds_rdoList.getRowCount(); i++)
- {
-
- arrCol[0] = {col: "cd", type:"string", size:256};
- arrCol[1] = {col: "nm", type:"string", size:256};
- sDsNm = dsf_createDs("ds_rdo_"+i, arrCol);
-
- objInnDs = eval(sDsNm);
- objInnDs.insertRow(0);
-
- sTxt = ufn_trim(ds_rdoList.getColumn(i,"txt"));
-
- objInnDs.setColumn(0,"cd", ufn_trim(ds_rdoList.getColumn(i,"val")));
- objInnDs.setColumn(0,"nm", sTxt);
-
- //trace(sDsNm + "::" +objInnDs.saveXML());
- if(i == 0)
- {
- nLeft = 0;
- }
- else
- {
- nLeft = nRight + nCellspacing;
- }
-
- objTextSize = utlf_getTextSize(sTxt, objFont); //폰트사이즈
- objTextSize.cx += nColMax[i % objForm.col] - objTextSize.cx;
-
- nRight = nLeft + nCircleSize + objTextSize.cx;
-
-
- if(toNumber(objForm.row,0) == 1 || toNumber(objForm.col,0) >= j) //한 row의 컬럼 갯수 보다 크면 다음 row로 이동
- {
- utlf_createRadio(sID, "rdo_multi_"+i, nLeft, nTop, nRight, nTop + nHeight, sDsNm);
-
- }
- else
- {
- j = 1;
- nLeft = 0;
- nTop = nTop + nHeight + nVcellspacing;
- nRight = nLeft + nCircleSize + objTextSize.cx;
- utlf_createRadio(sID,"rdo_multi_"+i, nLeft, nTop, nRight, nTop + nHeight, sDsNm);
-
-
- }
-
- /* //추가 확장기능 요청시 사용할려고 남겨 놓음
- if(nMaxWidth < (nLeft + nWidth))
- {
- nMaxWidth = nLeft + nWidth;
- }
-
- if(nMaxHeight < nTop + nHeight)
- {
- nMaxHeight = nTop + nHeight;
- }
- */
- j++;
-
- }
- /* //추가 확장기능 요청시 사용할려고 남겨 놓음
- //overflow 가 visible이면 checkbox 크기에 맞게 form을 늘여준다.
- if(objForm.overflow == "visible")
- {
- //form 사이즈를 조절한다.
- objForm.position.width = nMaxWidth;
- objForm.position.height = nMaxHeight;
- }
- else if(objForm.overflow == "hidden") //form의 사이즈를 변경하지 않는다.
- {
-
- }
- else if(objForm.overflow == "scroll") //폼에 스크롤을 생성한다.
- {
- objForm.scrollbars = "autoboth";
- }
- else
- {
- //form 사이즈를 조절한다.
- objForm.position.width = nMaxWidth;
- objForm.position.height = nMaxHeight;
- }
- */
-
- }
- /****************************************************************************************
- * Description : create radio object
- * Argument : string chkName - checkbox id
- number nL - left postion
- number nT - top postion
- number nR - right postion
- number nB - bottom postion
- string sVal - true value
- string sTxt - text value
- * @return N / A
- ****************************************************************************************/
- function utlf_createRadio(sID, rdoName, nL, nT, nR, nB, sDsNm)
- {
- var objRadio = new Radio(rdoName, nL, nT, nR, nB);
- objForm.addChild(rdoName, objRadio);
- objRadio.onitemclick.addHandler(ufn_event_onitemclick);
- objRadio.innerdataset = sDsNm;
- objRadio.codecolumn = "cd";
- objRadio.datacolumn = "nm";
- var vName = new String(sID);
-
- if( !utlf_isNull(objForm._medirecRdoStyle) ){
- objRadio.class = objForm._medirecRdoStyle;
- }
-
- objRadio.name = vName;
- objRadio.show();
- }
- /**********************************************************************************
- * 함수명 : ufn_trim
- * 설 명 : 입력받은 문자열의 공백을 제거한다.
- * argument : sValue 문자열 값
-
- * return Type : return 문자열
- * 작성자 : tobesoft
- **********************************************************************************/
- function ufn_trim(sValue)
- {
- if (sValue == null) return "";
- if (new String(sValue).valueOf() == "undefined") return "";
- if (new String(sValue) == null) return "";
-
- var retVal = (new String(sValue)).replace(/^\s+|\s+$/g, '');
- return retVal;
- }
- /****************************************************************************************
- * Description : 컴포지트 이벤트 호출 함수
- * Argument : sEventId - 호출할 이벤트 ID
- * sCompNm - 컴포지트명
- * @return N / A
- ****************************************************************************************/
- function ufn_compositeEvent(sEventId,sCompNm)
- {
- var lv_oFrame = this.getOwnerFrame();
-
- var lv_bInhForm = ufn_isNull(lv_oFrame.bInhForm) ? false : lv_oFrame.bInhForm;
- var lv_bMdiForm = ufn_isNull(lv_oFrame.bMdiForm) ? false : lv_oFrame.bMdiForm;
- var lv_bMdiPopForm = ufn_isNull(lv_oFrame.bMdiPopForm) ? false : lv_oFrame.bMdiPopForm;
- try{
- if(lv_bInhForm)
- {
- if(lv_bMdiForm == true || lv_bMdiPopForm == true)
- {
- if(ufn_isNull(sCompNm))
- {
- eval("this.getOwnerFrame().form.div_Layout.div_Work."+sEventId+"()");
- }
- else
- {
- eval("this.getOwnerFrame().form.div_Layout.div_Work."+sEventId+"('"+sCompNm+"')");
- }
- }
- else
- {
- if(ufn_isNull(sCompNm))
- {
- eval("this.getOwnerFrame().form."+sEventId+"()");
- }
- else
- {
- eval("this.getOwnerFrame().form."+sEventId+"('"+sCompNm+"')");
- }
- }
- }
- else
- {
- eval(sEventId);
- }
- }catch(err){}
- }
- /****************************************************************************************
- * Description : 입력값이 null 또는 wihte space로만 이루어져 있으면 빈문자를 리턴하는 함수
- * Argument : sValue String
- * return : String
- ****************************************************************************************/
- function ufn_isEmpty(sValue)
- {
- if (new String(sValue).valueOf() == "undefined") return "";
- if (sValue == null) return "";
- var lv_sChkStr = new String(sValue);
- if (lv_sChkStr == null) return "";
- if (lv_sChkStr.toString().length == 0 ) return "";
- return sValue;
- }
- /****************************************************************************************
- * Description : 입력값이 null 또는 wihte space로만 이루어져 있는지 확인 하는 함수
- * Argument : value 입력값
- * return : boolean. null(혹은 white space) 여부
- ****************************************************************************************/
- function ufn_isNull(sValue)
- {
- if (new String(sValue).valueOf() == "undefined") return true;
- if (sValue == null) return true;
-
- var lv_sChkStr = new String(sValue);
- if (lv_sChkStr == null) return true;
- if (lv_sChkStr.toString().length == 0 ) return true;
- return false;
- }
- /****************************************************************************************
- * Description : remove Compnent
- * Argument : none
- * return : none
- ****************************************************************************************/
- function ufn_removeComp()
- {
- for(var i =0 ; i < ds_rdoList.getRowCount(); i++)
- {
- if(isValidObject("rdo_multi_"+i))
- {
- var objCh = eval("rdo_multi_"+i);
- objForm.removeChild("rdo_multi_"+i);
- var suss = objCh.destroy();
- objCh= null;
- }
- }
- }
- /****************************************************************************************
- * Description : init Compnent(composite 초기화 - 20141119 윤주호)
- * Argument : none
- * return : none
- ****************************************************************************************/
- function ufn_initComp()
- {
- var vFindChekValue = ds_rdoList.findRow("chk","1");
- var sData = ds_rdoList.getColumn(vFindChekValue, "val");
-
- var nRow = ds_rdoList.findRow("val", sData);
- var objRdo;
- var objName;
- var objNm = objForm.name;
-
- for(var i=0; i < ds_rdoList.getRowCount(); i++)
- {
- objRdo = eval("rdo_multi_"+i);
- if(nRow == i)
- {
- //objName = objRdo.name;
- objRdo.value = "";
- ds_rdoList.setColumn(i, "chk","0");
- }
- else
- {
- objRdo.value = "";
- ds_rdoList.setColumn(i, "chk","0");
- }
- }
-
- }
- ]]></Script>
- </Form>
- </FDL>
|