123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548 |
- <?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>
- <Radio id="rdo_Tmp" taborder="1" columncount="0" rowcount="0" position="absolute 0 0 100 20" codecolumn="codecolumn" datacolumn="datacolumn">
- <Dataset id="innerdataset">
- <ColumnInfo>
- <Column id="codecolumn" size="256"/>
- <Column id="datacolumn" size="256"/>
- </ColumnInfo>
- <Rows>
- <Row>
- <Col id="codecolumn">0</Col>
- <Col id="datacolumn">Multi Radio</Col>
- </Row>
- </Rows>
- </Dataset>
- </Radio>
- </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
- * File Name : cp_radioList.xfdl
- * Creator : TOBESOFT
- * Make Date : 2014.03.24
- *
- * Description : multi radio List
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- * 2013.01.18 TOBESOFT Initial Make Program
- *
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
- /* 참고사항
- * 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_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
- {
- var nRow = ds_rdoList.findRow("val", e.postvalue);
- 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, e.postvalue);
- }
- //=======================================================================================
- // 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
- * @return N / A
- * ex)setInitProperty("col=2,row=1")
- ****************************************************************************************/
- function setInitComp(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(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("=");
- 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(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();
- rdo_Tmp.visible = false;
- }
- /****************************************************************************************
- * 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");
- }
- }
- 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()
- {
- 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 = toNumber(objForm.cellspacing,5)
- //var nCellspacing = 5; //컴퍼넌트사이 간격
- 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;
- }
- */
- nWidth = 19;
- nHeight =20;
-
- 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; //가장 큰 높이값-폼의 크기를 설정하기 위한 값
-
- 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); //폰트사이즈
- nRight = nLeft + nCircleSize + objTextSize.cx;
- if(toNumber(objForm.row,0) == 1 || toNumber(objForm.col,0) >= j) //한 row의 컬럼 갯수 보다 크면 다음 row로 이동
- {
- utlf_createRadio("rdo_multi_"+i, nLeft, nTop, nRight, nTop + nHeight, sDsNm);
- }
- else
- {
-
- nLeft = 0;
- nTop = nTop + nHeight ;
- nRight = nLeft + nCircleSize + objTextSize.cx;
- utlf_createRadio("rdo_multi_"+i, nLeft, nTop, nRight, nTop + nHeight, sDsNm);
- j = 0;
- }
-
-
- if(nMaxWidth < (nRight + nWidth))
- {
- nMaxWidth = nRight + nWidth;
- }
-
- if(nMaxHeight < nTop + nHeight)
- {
- nMaxHeight = nTop + nHeight;
- }
- j++;
- }
- //overflow 가 visible이면 checkbox 크기에 맞게 form을 늘여준다.
- if(objForm.overflow == "visible")
- {
- //sysf_trace("nMaxWidth : " + nMaxWidth + " nMaxHeight : " + nMaxHeight);
- //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(rdoName, nL, nT, nR, nB, sDsNm)
- {
- var objRadio = new Radio(rdoName, nL, nT, nR, nB);
- objForm.addChild(rdoName, objRadio);
- objRadio.onitemchanged.addHandler(ufn_event_onitemchanged);
- objRadio.innerdataset = sDsNm;
- objRadio.codecolumn = "cd";
- objRadio.datacolumn = "nm";
- 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
- {
- if(ufn_isNull(sCompNm))
- {
- eval(sEventId+"()");
- }
- else
- {
- eval(sEventId+"('"+sCompNm+"')");
- }
- }
- }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;
- }
- }
- }]]></Script>
- </Form>
- </FDL>
|