123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400 |
- <?xml version="1.0" encoding="utf-8"?>
- <FDL version="1.5">
- <TypeDefinition url="..\default_typedef.xml"/>
- <Form id="cp_selComboPop" classname="Uobj_selCombo_Popup" inheritanceid="" position="absolute 0 0 354 163" titletext="콤보 팝업(UserObject_Pop)" onload="cp_selComboPop_onload" style="background:#dcdcdcff;" onkillfocus="cp_selComboPop_onkillfocus" scrollbars="none">
- <Layouts>
- <Layout>
- <Grid id="Grid00" taborder="1" binddataset="ds_combo" scrollbars="autohorz" useinputpanel="false" oncellclick="Grid00_oncellclick" position="absolute 0 0 178 163" onmouseenter="Grid00_onmouseenter" onmousemove="Grid_onmousemove" autosizebandtype="allband" onkeydown="Grid_onkeydown" onkeyup="Grid_onkeyup" style="border:1 solid #808080ff,1 solid #d6d6d6ff,1 solid #d6d6d6ff,1 solid #d6d6d6ff;" onvscroll="Grid00_onvscroll" onlbuttondown="Grid_onlbuttondown">
- <Formats>
- <Format id="default">
- <Columns>
- <Column size="175"/>
- </Columns>
- <Rows>
- <Row size="24"/>
- </Rows>
- <Band id="body">
- <Cell style="align:left;line:0 none #808080ff ;background:white;background2:white;selectbackground:#bbe0f9ff;"/>
- </Band>
- </Format>
- </Formats>
- </Grid>
- <Grid id="Grid01" taborder="2" binddataset="ds_combo2" scrollbars="autohorz" useinputpanel="false" oncellclick="Grid00_oncellclick" position="absolute 176 0 354 163" onmouseenter="Grid01_onmouseenter" onmousemove="Grid_onmousemove" autosizebandtype="allband" onkeydown="Grid_onkeydown" onkeyup="Grid_onkeyup" style="border:1 solid #808080ff,1 solid #d6d6d6ff,1 solid #d6d6d6ff,1 solid #d6d6d6ff;" onvscroll="Grid01_onvscroll" onlbuttondown="Grid_onlbuttondown">
- <Formats>
- <Format id="default">
- <Columns>
- <Column size="175"/>
- </Columns>
- <Rows>
- <Row size="24"/>
- </Rows>
- <Band id="body">
- <Cell style="align:left;line:0 none #808080ff ;background:white;background2:white;selectbackground:#bbe0f9ff;"/>
- </Band>
- </Format>
- </Formats>
- </Grid>
- </Layout>
- </Layouts>
- <Objects>
- <Dataset id="ds_gridMulti" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" cancolumnchange="ds_gridMulti_cancolumnchange">
- <ColumnInfo>
- <Column id="GROUP_CD" type="STRING" size="20"/>
- <Column id="DETAIL_CODE" type="STRING" size="20"/>
- <Column id="DETAIL_NAME" type="STRING" size="50"/>
- <Column id="DETAIL_CODE_NAME" type="STRING" size="73"/>
- <Column id="DETAIL_ETC1" type="STRING" size="50"/>
- <Column id="DETAIL_ETC2" type="STRING" size="50"/>
- <Column id="DETAIL_ETC3" type="STRING" size="50"/>
- <Column id="DETAIL_ETC4" type="STRING" size="50"/>
- <Column id="DETAIL_ETC5" type="STRING" size="50"/>
- <Column id="DETAIL_ETC6" type="STRING" size="50"/>
- <Column id="DETAIL_ETC7" type="STRING" size="50"/>
- <Column id="DETAIL_ETC8" type="STRING" size="50"/>
- <Column id="DETAIL_ETC9" type="STRING" size="50"/>
- <Column id="DETAIL_ETC10" type="STRING" size="50"/>
- <Column id="_chk" type="INT" size="10"/>
- <Column id="xRowStatusType" type="STRING" size="1"/>
- </ColumnInfo>
- </Dataset>
- <Dataset id="ds_combo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" canrowposchange="ds_combo_canrowposchange"/>
- <Dataset id="ds_combo2" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" canrowposchange="ds_combo_canrowposchange"/>
- </Objects>
- <Bind/>
- <Script type="xscript4.0"><![CDATA[var lv_codeCol;
- var lv_dataCol;
- /****************************************************************************************
- * Description : 팝업에서 init 값 설정
- * Argument : sDataSetXml - String combo inner dataset
- sCodeCol - codecolumn
- sDataCol - datacolumn
- sCode - codevalue
- sData - datavalue
- * return : none
- ****************************************************************************************/
- function lf_setDataSet(sDataSetXml, sCodeCol, sDataCol, sCode, sData, bSearch, sFilter, sDirection)
- {
- grid1_leftright = 0;
- grid2_leftright = 0;
-
- Grid00.useselcolor = false;
- Grid01.useselcolor = false;
- ds_gridMulti.loadXML(sDataSetXml);
- Grid00.setCellProperty("body",0,"text","bind:"+sDataCol);
- Grid01.setCellProperty("body",0,"text","bind:"+sDataCol);
-
- ds_gridMulti.filter("");
- //trace("bSearch::"+bSearch + "::" +sFilter);
- if(bSearch){
- //trace("String("+sDataCol+").substr(0,String("+sFilter+").length).indexOf("+sFilter+")>=0");
- //if(!utlf_isNull(sFilter)) ds_gridMulti.filter("String("+sDataCol+").indexOf('"+sFilter+"')>=0");
- if(!utlf_isNull(sFilter)) ds_gridMulti.filter("String("+sDataCol+").substr(0,String('"+sFilter+"').length).indexOf('"+sFilter+"')>=0");
- }
-
- var nFrow = -1;
- if(!utlf_isNull(sCode) && !utlf_isNull(sData)){
- nFrow = ds_gridMulti.findRow(sCodeCol,sCode);
- }
-
- lv_codeCol = sCodeCol;
- lv_dataCol = sDataCol;
-
- var cnt = ds_gridMulti.rowcount;
-
- var mod = cnt%2;
- var cal = Math.floor(cnt/2);
-
- if(cnt <=2) {
- var nHeight = 24;
- }else{
- var nHeight = 24*(cal+mod);
- }
- ds_combo.copyData(ds_gridMulti);
- ds_combo.clearData();
- ds_combo2.copyData(ds_combo);
-
- // 가로/세로 구분 추가
- if(sDirection == "A") {
- for(var i=0; i < ds_gridMulti.rowcount; i++){
- if(i % 2 == 0){
- var nAddRow = ds_combo.addRow();
- ds_combo.copyRow(nAddRow,ds_gridMulti,i);
- }else{
- var nAddRow2 = ds_combo2.addRow();
- ds_combo2.copyRow(nAddRow2,ds_gridMulti,i);
- }
- }
- } else {
- var splitNo = Math.ceil(ds_gridMulti.rowcount / 2);
- for(var i=0; i < splitNo; i++){
- var nAddRow = ds_combo.addRow();
- ds_combo.copyRow(nAddRow,ds_gridMulti,i);
- }
- for(var i=splitNo; i < ds_gridMulti.rowcount; i++){
- var nAddRow2 = ds_combo2.addRow();
- ds_combo2.copyRow(nAddRow2,ds_gridMulti,i);
- }
- }
-
- // 아이템 총 갯수가 홀수개라면 오른쪽 그리드에 맨아래 빈칸 한줄 삽입
- if(ds_gridMulti.rowcount % 2 == 1) {
- ds_combo2.addRow();
- }
-
- // 콤보의 세로 크기는 콤보로 부터 현재 창의 작업표시줄 위쪽까지만 차도록 제한을 둠
- var nMoniterIndex = system.getMonitorIndex(system.cursorx, system.cursory); //모니터번호
- var objScreenSize = system.getScreenRect(nMoniterIndex);
- var nScreenBottom = objScreenSize.bottom - 60; // 하단 여백은 60정도로 잡음
-
- var ypos = system.clientToScreenY(this.parent, this.parent.position.height);
- if(ypos + nHeight > nScreenBottom) {
- nHeight = nScreenBottom - ypos;
-
- Grid00.position.right += Grid00.vscrollbar.position.width;
-
- if(Grid00.hscrollbar.visible)
- Grid00.scrollbars = "fixedboth";
- else
- Grid00.scrollbars = "fixedvert";
-
- if(Grid01.hscrollbar.visible)
- Grid01.scrollbars = "fixedboth";
- else
- Grid01.scrollbars = "fixedvert";
- }
-
- nHeight = nHeight - (nHeight % 24) + 2;
-
- this.position.height = nHeight;
- Grid00.position.height = nHeight;
- Grid01.position.height = nHeight;
-
- var addHeight = 0;
- Grid00.autosizingtype = "col";
- Grid01.autosizingtype = "col";
- if(Grid00.hscrollbar.visible) addHeight = 16;
- if(Grid01.hscrollbar.visible) addHeight = 16;
-
- Grid00.position.height = Grid00.position.height + addHeight;
- Grid01.position.height = Grid01.position.height + addHeight;
-
- var Grid0Size = Grid00.getRealColFullSize("body");
- var Grid1Size = Grid01.getRealColFullSize("body");
-
- //기본크기보다 작거나 같으면 크기 고정
- if(Grid0Size>173)
- Grid00.autosizingtype = "col";
- else
- Grid00.autosizingtype = "none";
-
- if(Grid1Size>173)
- Grid01.autosizingtype = "col";
- else
- Grid01.autosizingtype = "none";
-
- if(nFrow == -1){
- Grid00.useselcolor = true;
- Grid00.setFocus();
- return;
- }
- if( nFrow % 2 == 0){
- Grid00.useselcolor = true;
- if(nFrow == -1)
- ds_combo.rowposition = -1;
- else
- ds_combo.rowposition = nFrow / 2;
-
- ds_combo2.rowposition = ds_combo.rowposition;
- Grid00.setFocus();
- }else{
- Grid01.useselcolor = true;
- ds_combo2.rowposition = nFrow / 2;
- ds_combo.rowposition = ds_combo2.rowposition;
- Grid01.setFocus();
- }
- }
- /****************************************************************************************
- * Description : popup div killfocus event
- ****************************************************************************************/
- function cp_selComboPop_onkillfocus(obj:Form, e:KillFocusEventInfo)
- {
- closePopup();
- }
- /****************************************************************************************
- * Description : grid select click event
- ****************************************************************************************/
- function Grid00_oncellclick(obj:Grid, e:GridClickEventInfo)
- {
- var objDs = eval(obj.binddataset);
- var strCodeVal = objDs.getColumn(e.row,lv_codeCol);
- var strDataVal = objDs.getColumn(e.row,lv_dataCol);
- closePopup(strCodeVal+"^"+strDataVal);
- }
- /****************************************************************************************
- * Description : grid mouseenter event
- ****************************************************************************************/
- function Grid00_onmouseenter(obj:Grid, e:MouseEventInfo)
- {
- Grid00.useselcolor = true;
- Grid01.useselcolor = false;
-
- Grid00.setFocus();
- }
- /****************************************************************************************
- * Description : grid mouseenter event
- ****************************************************************************************/
- function Grid01_onmouseenter(obj:Grid, e:MouseEventInfo)
- {
- Grid00.useselcolor = false;
- Grid01.useselcolor = true;
-
- Grid01.setFocus();
- }
- /****************************************************************************************
- * Description : grid mousemove event
- ****************************************************************************************/
- function Grid_onmousemove(obj:Grid, e:GridMouseEventInfo)
- {
- grid1_leftright = 0;
- grid2_leftright = 0;
- var obj2;
- if(obj.name == "Grid01")
- obj2 = Grid00;
- else
- obj2 = Grid01;
-
- obj.useselcolor = true;
- obj2.useselcolor = false;
-
- var objDs = eval(obj.binddataset);
- if(e.row > -1) {
- objDs.rowposition = e.row;
- eval(obj2.binddataset).rowposition = e.row;
- }
-
- obj.setFocus();
- }
- /****************************************************************************************
- * Description : Grid keyDown event
- ****************************************************************************************/
- function Grid_onkeydown(obj:Grid, e:KeyEventInfo)
- {
- var objDs = eval(obj.binddataset);
- if(e.keycode == 39){
- if(obj.name == "Grid00") {
- var objDs2 = ds_combo2;
-
- grid1_leftright = e.keycode;
-
- objDs2.rowposition = objDs.rowposition;
- Grid01.useselcolor = true;
- Grid00.useselcolor = false;
-
- Grid01.setFocus();
- } else {
- grid2_leftright = e.keycode;
- }
- }else if(e.keycode == 37) {
- if(obj.name == "Grid01"){
- var objDs2 = ds_combo;
-
- grid2_leftright = e.keycode;
-
- objDs2.rowposition = objDs.rowposition;
-
- Grid01.useselcolor = false;
- Grid00.useselcolor = true;
-
- Grid00.setFocus();
- } else {
- grid1_leftright = e.keycode;
- }
- }else if(obj.name == "Grid00") {
- grid1_leftright = -1;
- grid2_leftright = -1;
-
- if(e.keycode == 38) {
- if(ds_combo.rowposition > 0)
- ds_combo2.rowposition = ds_combo.rowposition - 1;
- } else if(e.keycode == 40) {
- if(ds_combo.rowposition < ds_combo.rowcount - 1)
- ds_combo2.rowposition = ds_combo.rowposition + 1;
- }
- }else if(obj.name == "Grid01") {
- grid1_leftright = -1;
- grid2_leftright = -1;
-
- if(e.keycode == 38) {
- if(ds_combo2.rowposition > 0)
- ds_combo.rowposition = ds_combo2.rowposition - 1;
- } else if(e.keycode == 40) {
- if(ds_combo2.rowposition < ds_combo2.rowcount - 1)
- ds_combo.rowposition = ds_combo2.rowposition + 1;
- }
- }
- }
- var grid1_leftright = 0;
- var grid2_leftright = 0;
- function Grid_onlbuttondown(obj:Grid, e:GridMouseEventInfo)
- {
- if(obj.name == "Grid00")
- grid1_leftright = 0;
- else
- grid2_leftright = 0;
- }
- function Grid_onkeyup(obj:Grid, e:KeyEventInfo)
- {
- if(e.keycode == 13){
- var objDs = eval(obj.binddataset);
- var strCodeVal = objDs.getColumn(objDs.rowposition,lv_codeCol);
- var strDataVal = objDs.getColumn(objDs.rowposition,lv_dataCol);
- closePopup(strCodeVal+"^"+strDataVal);
- }
- }
- function Grid00_onvscroll(obj:Grid, e:ScrollEventInfo)
- {
- Grid01.vscrollbar.pos = e.pos;
- }
- function Grid01_onvscroll(obj:Grid, e:ScrollEventInfo)
- {
- Grid00.vscrollbar.pos = e.pos;
- }
- function ds_combo_canrowposchange(obj:Dataset, e:DSRowPosChangeEventInfo)
- {
- var grid_leftright;
- if(obj.name == "ds_combo")
- grid_leftright = grid1_leftright;
- else
- grid_leftright = grid2_leftright;
- if(grid_leftright == 37 || grid_leftright == 39) {
- return false;
- } else {
- if(obj.name == "ds_combo")
- grid1_leftright = 0;
- else
- grid2_leftright = 0;
- return true;
- }
- }]]></Script>
- </Form>
- </FDL>
|