123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715 |
- <?xml version="1.0" encoding="utf-8"?>
- <FDL version="1.5">
- <TypeDefinition url="..\default_typedef.xml"/>
- <Form id="cp_checkboxList" classname="cp_periodCal" inheritanceid="" position="absolute 0 0 100 20" titletext="CheckBox List" scrollbars="none" onload="cp_checkboxList_onload" col="1" row="1" style="background:transparent;" cellspacing="2" vcellspacing="0" itemWidth="100" itemHeight="20" overflow="visible">
- <Layouts>
- <Layout>
- <CheckBox id="chk_Tmp" taborder="0" text="CheckboxList" position="absolute 0 0 100 20"/>
- </Layout>
- </Layouts>
- <Objects>
- <Dataset id="ds_checkList" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
- <ColumnInfo>
- <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_checkboxList.xfdl
- * Creator : TOBESOFT
- * Make Date : 2014.03.24
- *
- * Description : multi checkbox
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- * 2013.01.18 TOBESOFT Initial Make Program
- *
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
- /* 참고사항
- * User Properties
- col : 아이템 열의 개수
- row : 아이템 행의 개수
- cellspacing : 아이템 간의 열 간격
- vcellspacing : 아이템간 행 간격
- itemWidth : 아이템 넓이
- itemHeight : 아이템 높이
- overflow: form의 형태를 설정한다.
- ("visible" : checkbox의 크기만큼 늘여준다.
- "hidden" : form의 크기를 늘이지 않고 그대로 둔다.
- "scroll" : 크기를 그대로 두고 scroll을 생성한다.)
- */
- //=======================================================================================
- // 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_checkboxList_onload(obj:Form, e:LoadEventInfo)
- {
- objForm = obj;
- }
- //=======================================================================================
- // Event
- //---------------------------------------------------------------------------------------
- function ufn_event_onchanged(obj:CheckBox, e:CheckBoxChangeEventInfo)
- {
- if(!ufn_isNull(iv_event)) ufn_compositeEvent(iv_event,obj.name);
- }
- //=======================================================================================
- // 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);
- }
-
- //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,cellspacing=4,vcellspacing=0,itemWidth=100,itemHeight=20")
- ****************************************************************************************/
- 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."+arrProp[0]+"="+arrProp[1]);
- }
- }
- /****************************************************************************************
- * Description : dstaset binding
- * Argument : object objDs - dataset Object
- :
- * @return N / A
- ****************************************************************************************/
- function setBindDataset(objDs, sColVal, sColTxt)
- {
- ufn_removeCheckbox();
- ds_checkList.clearData();
-
- var nRow;
-
-
- for(var i =0; i < objDs.getRowCount() ; i++)
- {
- nRow = ds_checkList.addRow();
- ds_checkList.setColumn(nRow, "val", ufn_trim(objDs.getColumn(i, sColVal)));
- ds_checkList.setColumn(nRow, "txt", ufn_trim(objDs.getColumn(i, sColTxt)));
- }
- utlf_makeCheckBox();
- chk_Tmp.visible = false;
- }
- /****************************************************************************************
- * Description : User Composite Set Data Method
- * Argument : Array aData - true data
- Array aFalseData - false data
- Boolean 이벤트 실행여부 default:true
- * return : none
- ****************************************************************************************/
- function setData(aData ,aFalseData, bFlag)
- {
- //checked data
- var nRow;
- var objChk;
-
- if(utlf_isNull(bFlag)){
- bFlag = true;
- }
-
- if(!ufn_isNull(aData))
- {
- for(var i =0; i < aData.length; i++)
- {
- nRow = ds_checkList.findRow("val",aData[i]);
-
- if(nRow > -1)
- {
-
- objChk = eval("chk_"+nRow);
- //eval("chk_"+nRow+".value="+aData[i]);
- if (!bFlag){
- objChk.enableevent =false;
- objChk.value = aData[i];
- objChk.enableevent =true;
- }else{
- objChk.value = aData[i];
- }
- }
- }
- }
-
- // unchecked data
- if(!ufn_isNull(aFalseData))
- {
- var nFRow;
- var objChkFalse;
- for(var i =0; i < aFalseData.length; i++)
- {
- nFRow = ds_checkList.findRow("val",aFalseData[i]);
-
- if(nFRow > -1)
- {
-
- objChkFalse = eval("chk_"+nFRow);
-
- if (!bFlag){
- objChkFalse.enableevent =false;
- objChkFalse.value = "";
- objChkFalse.enableevent =true;
- }else{
- objChkFalse.value = "";
- }
- }
- }
- }
-
- if (!bFlag) return;
- if(!ufn_isNull(iv_event)) ufn_compositeEvent(iv_event,aData);
- }
- /****************************************************************************************
- * Description : User Composite check All/Clear All Data Method
- * Argument : Boolean bCheck - 전체체크 default:true
- Boolean bFlag 이벤트 실행여부 default:false
- String sCode - 전체 체크 code값 deault:1번째 행에있는값
-
- * return : none
- ****************************************************************************************/
- function setCheckAll(bCheck, bFlag)
- {
- //checked data
- var nRow;
- var objChk;
- if(utlf_isNull(bFlag)){
- bFlag = false;
- }
-
- if(utlf_isNull(bCheck)){
- bCheck = true;
- }
-
-
- for(var i =0; i < ds_checkList.rowcount; i++){
-
- objChk = eval("chk_"+i);
- val = ds_checkList.getColumn(i,"val");
-
- if(!bCheck){
- if (!bFlag){
- objChk.enableevent =false;
- objChk.value = "";
- objChk.enableevent =true;
- }else{
- objChk.value = "";
- }
- }else{
- if (!bFlag){
- objChk.enableevent =false;
- objChk.value = val;
- objChk.enableevent =true;
- }else{
- objChk.value = val;
- }
- }
- }
- }
- /****************************************************************************************
- * Description : User Composite Get Data Method
- * Argument : none
- * return : none
- ****************************************************************************************/
- function getData()
- {
- var iv_aRtn = new Array();
- var objChk;
-
- for(var i=0; i < ds_checkList.getRowCount(); i++)
- {
- objChk = eval("chk_"+i);
- if(objChk.isChecked())
- {
- iv_aRtn.push(objChk.value);
- }
- }
- return iv_aRtn;
- }
- /****************************************************************************************
- * Description : User Composite Get Data Method
- * Argument : none
- * return : none
- ****************************************************************************************/
- function getLableData()
- {
- var iv_aRtn = new Array();
- var objChk;
-
- for(var i=0; i < ds_checkList.getRowCount(); i++)
- {
- objChk = eval("chk_"+i);
- if(objChk.isChecked())
- {
- iv_aRtn.push(objChk.text);
- }
- }
-
- return iv_aRtn;
- }
- /****************************************************************************************
- * Description : User Composite set setEnbale
- * Argument : none
- * return : none
- ****************************************************************************************/
- function setEnbale(bReq)
- {
- //trace(ds_checkList.saveXML());
- for(var i=0; i < ds_checkList.getRowCount(); i++)
- {
- objChk = eval("chk_"+i);
- objChk.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_makeCheckBox()
- {
- var nWidth = 0; // checkbox의 width
- var nItemWidth = toNumber(objForm.itemWidth,0);
- var nItemHeight = toNumber(objForm.itemHeight,0);
- var objFont = utlf_getObjFont(9, "Dotum"); //font object
- var nCircleSize = 20; //체크박스 이미지 사이즈
-
- var resizingWidthGap = toNumber(objForm.textspacing, 3) - 3;
- var textpaddingleft = toNumber(objForm.textspacing, 3);
- var objArray1 = new Array();
- //글씨 크기가 가장큰것 기준
- objArray1[0] = new Array();
- if(toNumber(objForm.col,0) > 0){
- var colIdx=0;
- var cnt=0;
- var crt =0;
- for(i=0; i<ds_checkList.getRowCount(); i++){
-
- var sTxt = ds_checkList.getColumn(i, "txt");
-
- var objTextSize = utlf_getTextSize(sTxt, objFont); //폰트사이즈
- var nRight = nCircleSize + objTextSize.cx;
- if( colIdx< toNumber(objForm.col,0)){
- if(crt == 0){
- objArray1[colIdx] = new Array();
- }
-
- if(objArray1[colIdx][0] < nRight || objArray1[colIdx].length == 0){
- objArray1[colIdx][0] = nRight;
- }
-
- }else{
- colIdx=0;
- cnt = 0;
- crt = 1;
- if(objArray1[colIdx][0] < nRight || objArray1[colIdx].length == 0){
- objArray1[colIdx][0] = nRight;
- }
- }
- colIdx++;
- cnt++;
- }
- }
- if(nItemWidth < 1 || ufn_isNull(nItemWidth))
- {
- nWidth = 100;
- }
- else
- {
- nWidth = nItemWidth;
- }
-
- var nHeight = 0; //checkbox의 height
- if(nItemHeight< 1 || ufn_isNull(nItemHeight))
- {
- nHeight = 20;
- }
- else
- {
- nHeight = nItemHeight;
- }
-
- 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_checkList.getRowCount(); i++)
- {
- //if(j == 1)
- if(i == 0)
- {
- nLeft = 0;
- }
- else
- {
- nLeft = nLeft + nWidth+ toNumber(objForm.cellspacing,0) + resizingWidthGap;
- }
-
- if(toNumber(objForm.row,0) == 1 || toNumber(objForm.col,0) >= j) //한 row의 컬럼 갯수 보다 크면 다음 row로 이동
- {
- if(nItemWidth == -1) nWidth = objArray1[j-1][0];
- utlf_createCheckBox("chk_"+i, nLeft, nTop, nLeft + nWidth + resizingWidthGap, nTop + nHeight, ds_checkList.getColumn(i, "val"), ds_checkList.getColumn(i, "txt"), textpaddingleft);
- }
- else
- {
- nLeft = 0;
- nTop = nTop + nHeight;
- if(nItemWidth == -1) nWidth = objArray1[0][0];
-
- utlf_createCheckBox("chk_"+i, nLeft, nTop, nLeft + nWidth + resizingWidthGap, nTop + nHeight, ds_checkList.getColumn(i, "val"), ds_checkList.getColumn(i, "txt"), textpaddingleft);
- j = 1;
- }
-
- 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 checkbox 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_createCheckBox(chkName, nL, nT, nR, nB, sVal, sTxt, textpaddingleft)
- {
- var objCheckBox = new CheckBox();
- objCheckBox.init(chkName, nL, nT, nR, nB);
- objCheckBox.style.textpadding.left = textpaddingleft;
- objForm.addChild(chkName, objCheckBox);
- objCheckBox.onchanged.addHandler(ufn_event_onchanged);
- objCheckBox.show();
-
-
- objCheckBox.truevalue = String(sVal);
- objCheckBox.falsevalue = "";
- objCheckBox.value = ""
- objCheckBox.text = sTxt;
-
- //trace(String(sVal)+"::"+sTxt);
- }
- /**********************************************************************************
- * 함수명 : 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 : Check the validity date.
- * Argument : sDate yyyyMM or yyyyMMdd, ex) "201205" or "20120506"
- * return : boolean
- ****************************************************************************************/
- function ufn_isDate(sDate)
- {
- var retVal;
- switch(sDate.length)
- {
- case 6://yyyyMM
- retVal = ufn_isYM(sDate);
- break;
- case 8://yyyyMMdd
- retVal = ufn_isYMD(sDate);
- break;
- default:
- retVal = false;
- break;
- }
- return retVal;
- }
- function setEmpty()
- {
- cal_from.value = "";
- cal_to.value = "";
- }
- function setIsNull()
- {
- iv_bNotNull = false;
- }
- /****************************************************************************************
- * Description : User Composite Set Blank Method
- * Argument : none
- * return : none
- ****************************************************************************************/
- function setBlank()
- {
- cal_from.value = "";
- cal_to.value = "";
- }
- /****************************************************************************************
- * Description : When the user select a date set limits
- * Argument : 1. sTitle : Title
- * : 2. nLimit : number
- * : 3. sFlag :
- * return : none
- ****************************************************************************************/
- function setLimit(sTitle, nLimit, sFlag)
- {
- iv_sTitle = sTitle
- iv_nLimit = nLimit;
-
- if(ufn_isEmpty(sFlag)){
- iv_Curr = sFlag;
- }
- }
- /****************************************************************************************
- * Description : remove checkbox
- * Argument : none
- * return : none
- ****************************************************************************************/
- function ufn_removeCheckbox()
- {
- for(var i =0 ; i < ds_checkList.getRowCount(); i++)
- {
- if(isValidObject("chk_"+i))
- {
- var objCh = eval("chk_"+i);
- objForm.removeChild("chk_"+i);
- var suss = objCh.destroy();
- objCh= null;
- }
- }
- }
- function setEnable(enable) {
- try {
- for(var i = 0; i < this.components.length; i++) {
- this.components[i].enable = enable;
- }
- } catch(e) {}
- }]]></Script>
- </Form>
- </FDL>
|