//팝업에서 오브젝트를 부모창으로 보내기 위한 작업 FUNCTION

<script type="javascript" ev:event="ondblclick">

<![CDATA[cardInfo();]]>

</script>



function cardInfo() {

if(!fGridReturn("fg1")) return;

var obj = doc.addGrid("fg1").getRowObj(fg1.row);

try{

opener.javascript.purCardAprovPopUp(obj);

}catch(e){

if(opener.javascript.comInfo(obj) == false){

return false;

}

}

window.close();

}




//데이터 그리드의 컬럼 타입이 체크박스 인경우 컬럼명에 체크박스를 넣어 버튼 클릭시 모두 클릭 되도록 함. 

fg1.fixedcellcheckbox(0,1)=true;


//문자타입의 데이터 값 수식 . 

 := parseInt(model.getValue("/root/main/detail/TRF_AMT"),10)

    -- 10진법의 숫자로 변환 . 


// input 타입의 입력 창에 포커스(마우스 클릭) 했을때 한영을 지정된 것으로 변경 하는 옵션

 imemode="hangul"

-- 한글 

 imemode="alpha"

-- 영문 


// datagrid 의 col 값이 전체 width 값만큼 조정 되는 것을 막음 

     fg1.extendLastCol = "false"


// input 박스 두개  기간 체크

<script type="javascript" ev:event="xforms-value-changed">

<![CDATA[

fDayPeriodCheck("/root/search/APROV_DT_FR","/root/search/APROV_DT_TO", "str" );

doFg1Search();

model.refresh();

]]>

</script>

<script type="javascript" ev:event="onkeydown">

<![CDATA[

fEnterFunction("doFg1Search",event.target);

]]>

</script>

// date 유효성 검사 하나 

fDayCheck("/root/main/PUBCT_DT","input10");

//grid 의 date 유효성 검사  

<col ref="FRM_DT" type="inputdate">

<script type="javascript" ev:event="xforms-value-changed">

<![CDATA[

fDayCheck(fg3.row,"fg3.FRM_DT");

]]>

</script>

</col>


//grid 에서 emp_pop 셋팅 function 사용 

<script type="javascript" ev:event="onbuttonclick">

<![CDATA[

doFg23Insert("O");

]]>

</script>

<script type="javascript" ev:event="onkeyup">

<![CDATA[

 if(event.keyCode == 13){

doFg23Insert("O");

 }

]]>

</script>


function doFg23Insert(emp_OA){

var owner_nm ="";

if(emp_OA=="O"){

owner_nm =  fg3.valueMatrix(fg3.row, fg3.colRef("OWNER_NM"));

}else {

owner_nm =  fg2.valueMatrix(fg2.row, fg2.colRef("CARD_ADMIN_NM"));

}

model.makeValue("/root/temp/EMP_NM",owner_nm);

if(owner_nm!=""){

popupValueSet("/root/temp/EMP_NM", "EMP_NM", "E");

popupValueSet("/root/temp/EMP_NO", "EMP_NO", "");

}else {

popupValueSet("/root/temp/EMP_NM", "EMP_NM", "");

popupValueSet("/root/temp/EMP_NO", "EMP_NO", "");

}

      //popupValueSet("/root/temp/DEPT_NM", "DEPT_NM", "");

      empPopup("/root/temp/EMP_NM");

      if(emp_OA!="O"){

      if (doFg2Check())return; // 기존에 추가된 관리자 인지 확인

      }

     

      if(emp_OA=="O"){

      fg3.valueMatrix(fg3.row, fg3.colRef("OWNER_NM")) = model.getValue("/root/temp/EMP_NM");

    fg3.valueMatrix(fg3.row, fg3.colRef("OWNER")) = model.getValue("/root/temp/EMP_NO");

fg3.colWidth(0)=30;

      }else {

      fg2.valueMatrix(fg2.row, fg2.colRef("CARD_ADMIN_NM")) = model.getValue("/root/temp/EMP_NM");

    fg2.valueMatrix(fg2.row, fg2.colRef("CARD_ADMIN")) = model.getValue("/root/temp/EMP_NO");

fg2.colWidth(0)=30;

      }

   

model.refresh();

}







//input 박스 에서 emp_pop 셋팅

<script type="javascript" ev:event="onbuttonclick">

<![CDATA[

popupValueSet("/root/search/OWNER_NM","EMP_NM","");

popupValueSet("/root/search/OWNER_NO","EMP_NO","");

empPopup();

]]>

</script>

<script type="javascript" ev:event="xforms-value-changed">

<![CDATA[

popupValueSet("/root/search/OWNER_NM","EMP_NM","E");

popupValueSet("/root/search/OWNER_NO","EMP_NO","");

empPopup("");

]]>

</script>

<script type="javascript" ev:event="onkeypress">

<![CDATA[

fEnterKey("");

]]>

</script>



//데이터 그리드 더블클릭후 팝업 데이터 넘기기

<script type="javascript" ev:event="ondblclick">

<![CDATA[

if(!fGridReturn("fg1")) return;

model.makeValue("/root/temp/ACCT_CD", fg1.valueMatrix(fg1.row, fg1.colRef("ACCT_CD")));

model.makeValue("/root/temp/ACCT_NM", fg1.valueMatrix(fg1.row, fg1.colRef("DIS_NM")));

model.makeValue("/root/temp/FRM_DT", model.getValue("/root/search/FRM_DT"));

model.makeValue("/root/temp/TO_DT", model.getValue("/root/search/TO_DT"));

loadPopUp("/etr/xrw/mis/act/main/act_4003_007.xrw", "", "1010", "590", "/root/temp", "/root/temp"

]]>

</script>



// 더블클릭후 받은 데이터 처리

function doInit(){

doImportSearch("CORP","");

model.makeValue("/root/search/ACCT_NM", model.getValue("/root/temp/ACCT_NM"));

model.makeValue("/root/search/ACCT_CD", model.getValue("/root/temp/ACCT_CD"));

model.makeValue("/root/search/FRM_DT", model.getValue("/root/temp/FRM_DT")); 

     model.makeValue("/root/search/TO_DT", model.getValue("/root/temp/TO_DT"));


input3.disabled=false;

model.refresh();

model.setFocus("input7");

}



// 최초 실행시 사용 할수 있도록 위치 </model> 바로 위

<script type="javascript" ev:event="xforms-model-construct-done">

<![CDATA[

doInit();

]]>

</script>


// 데이터 그리드를 초기화

     fg1.rebuild();


//데이터그리드 스크롤 되지 않게 고정

fg1.FrozenCols = 3;       // 좌측 3개의 칼럼을 고정시킨다.

 fg1.FrozenRows = 2;    // 상단 2개의 행을 고정시킨다.



// 클릭시 특정 REF 값을 기준으로 모두 check 또는 check false 하는 것
var statVal;
if(fg1.valueMatrix(fg1.row, fg1.colRef("isChecked"))=="true") statVal="false";
else if(fg1.valueMatrix(fg1.row, fg1.colRef("isChecked"))==""||fg1.valueMatrix(fg1.row, fg1.colRef("isChecked"))=="false") statVal="true";
for(var i=fg1.fixedRows; i<fg1.rows; i++) if(fg1.valueMatrix(i, fg1.colRef("SLIP_NO"))==fg1.valueMatrix(fg1.row, fg1.colRef("SLIP_NO"))) fg1.valueMatrix(i,                                 
fg1.colRef("isChecked")) = statVal;

// 클릭시 같은 row 를 check 또는 check false 하는 것 
if(!fGridReturn("fg1")) return;
if(fg1.valueMatrix(fg1.row, fg1.colRef("isChecked"))=="true"){
fg1.valueMatrix(fg1.row, fg1.colRef("isChecked"))="false";
}else{
fg1.valueMatrix(fg1.row, fg1.colRef("isChecked"))="true";
}


// 데이터 있는지 확인.

if(fg1.rows==1){

   jsAlert("그리드 안에 데이터가 없습니다."); 

return;

  }


//xrw 오픈시 특정 값을 받는 쿼리 .jsp 의 request.getParameter 와 같다. 

model.makeValue("/root/main/search/CARD_CLS", model.property("CARD_CLS"));



// 특정 데이터 그리드의 row 를 추가한다. 

   doc.addGrid("fg2").insertRow("last");



// 입력창을 FOCUS 하게함

    model.setFocus("input1");



//데이터 그리드에 값 셋팅 하기 

    doc.addGrid("fg1").setAction("/module/mis/act/main/Act_7001_007.do").setMode("getList").setSendRef("/root/search").getList("true");

                    대상그리드               네임스페이스                                                   XML ID                     MAP 에 가져갈 검색 조건 ## 


// 가져온 데이터 그리드의 여러개의 ROW 중 조건에 맞는 경우에만 ROW 에 백그라운드를 다르게 하여 표현 하게함 

    for(var i=fg1.fixedRows; i<fg1.rows; i++) if(fg1.valueMatrix(i, fg1.colRef("OUT_CHK"))=="Y") fg1.rowStyle(i, "data", "background-color") = "#ffddff";


//대상 데이터 그리드의 데이터 ROW 숫자를 캡션 안에 넣어 준다. 

   getGridRowCnt("fg1", "caption37");



// 선택된 ROW의 특정 컬럼 값을 임시 저장 하여 sedRef 에 추가 하기 

model.makeValue("/root/search/search2/CARD_NO", fg1.valueMatrix(fg1.row, fg1.colRef("CARD_NO"))); doc.addGrid("fg2").setAction("/module/mis/act/main/Act_7001_007.do").setMode("getFg2List").setSendRef("/root/search/search2/CARD_NO").getList("true");


//모든 컬럼 값을 변경 하기 ( check  속성의 값을 true 로 바꿈 )

for (var i=1; i<fg2.rows; i++){ fg2.valueMatrix(i, fg2.colRef("isChecked"))="true"; }


//submit 전에 값의 유효성 검사를 함 체크 펑션을 사용 하는경우 반드시 조건문 안에 사용 하여 값을 받아 사용 한다. 

function doSaveCheck(){

if(!chkValue(model.getValue("/root/main/CARD_NO"), "input1", "카드번호를 입력해 주십시요.")) return false;

}


// submit 할때 특정 값이 아닌 데이터 그리드의 값을 모두 보낼때 사용 //대상 데이터 그리드의 isChecked 값을 찾아서 플래그 한후에 getUpdateData() 를 이용 하여 ref 값을 생성후

    subMit 시에 ref 값으로 보내 준다. JAVA 단에서 받는다. 

        -- XRW

fSetGridAllFlag("fg2");

model.makeValue("/root/temp/updateData3", fg2.getUpdateData());

** getUpdateData() 는 특정 그리드의 데이터 값중 insert update delete 된 값을 지정 하여 보내 getGridUpdatedList, getGridInsertdList,getGridDeleteList 등으로 구분 하여 받을수 있다.  따라서 이것을 모두 가져와 사용 하기위해서는 모두 대상에 적용 시켜야할 필요가 있는데  fSetGridAllFlag("fg2"); 

을 사용 하여 getGridUpdatedList 로 받을수 있다. 

        --JAVA 

       List adminList = request.getGridUpdatedList("updateData3");

for(Iterator all = adminList.iterator(); all.hasNext();){

Map row = (Map)all.next();

row.put("SESS_USER_ID", map.get("SESS_USER_ID"));

row.put("CARD_NO", map.get("CARD_NO"));

createObject("act.main.act7001007.insertAdminList", row);

}


// 위의 값을 submit 하자 submit 의 경우 String 으로 결과 값을 response.addReturnValue("Y"); 돌려줘 밑과 같이 처리 한다. 

if(submit("/module/mis/act/main/Act_7001_007.do", "tmSave", "/root/main,/root/temp/updateData3","","","", false)=="Y"){

if(!fMessageBox("I_Y","doFg1Search")) return;

}else{

if(!fMessageBox("I_N","doFg1Search")) return;

}

         }


//인사의 팝업 사용 하기 


popupValueSet("/root/main/ADMIN_NM", "EMP_NM", "");

popupValueSet("/root/main/ADMIN", "EMP_NO", "");

      empPopup();

     

      if (doFg2Check())return; // 기존에 추가된 관리자 인지 확인

     

       fg2.valueMatrix(fg2.row, fg2.colRef("EMP_NM")) = model.getValue("/root/main/ADMIN_NM");

       fg2.valueMatrix(fg2.row, fg2.colRef("EMP_NO")) = model.getValue("/root/main/ADMIN");


function doFg2Check(){

         for (var i=fg2.fixedRows; i<fg2.rows; i++){

if(fg2.valueMatrix(i, fg2.colRef("EMP_NO"))==  model.getValue("/root/main/ADMIN")   ){

if(model.getValue("/root/main/ADMIN")!=""){

jsAlert("이미 등록된 관리자 입니다.");

}

return true;

}

}

}


//선택 ROW 를 삭제 한다. 

         function doDelete(){

if(jsConfirm("삭제하시겠습니까?")){

if(submit("/module/mis/act/main/Act_7001_007.do", "tmDelete", "/root/main/CARD_NO","","","",false)=="Y"){

if(!fMessageBox("D_Y","doFg1Search")) return;

}else{

if(!fMessageBox("D_N","doFg1Search")) return;

}

model.refresh();

}

}


// 추가 자체 FUNCTION 

function popAcc(obj){// 값을 받아 올때만 실행

if(model.getValue("/root/temp/ACC_FLAG")=="Y"){

// 일괄적용 (다중 적용)

for(var i=fg1.fixedRows; i<fg1.rows; i++) if(fg1.valueMatrix(i, fg1.colRef("isChecked"))=="true") fg1.rowStyle(i, "data", "background-color") = "#ffddff";

for(var i=fg1.fixedRows; i<fg1.rows; i++) if(fg1.valueMatrix(i, fg1.colRef("isChecked"))=="true"){

fg1.valueMatrix(i, fg1.colRef("STTL_BK_CD"))=obj.BK_CD;

fg1.valueMatrix(i, fg1.colRef("STTL_BK_NM"))=obj.BK_NM;

fg1.valueMatrix(i, fg1.colRef("STTL_ACC_NO"))= obj.BK_ACC_NO;

}

model.refresh();

}else {

// 단일적용

                  fg1.rowStyle(fg1.row, "data", "background-color") = "#ffddff";

fg1.valueMatrix(fg1.row, fg1.colRef("STTL_BK_CD")) =obj.BK_CD;

fg1.valueMatrix(fg1.row, fg1.colRef("STTL_BK_NM")) = obj.BK_NM;

fg1.valueMatrix(fg1.row, fg1.colRef("STTL_ACC_NO")) = obj.BK_ACC_NO;

fg1.valueMatrix(fg1.row, fg1.colRef("isChecked"))="true";

}

model.setValue("/root/temp/ACC_FLAG","N");

}




// 특정 값을 가져와 숫자로 바꾸어 값을 확인 한다. 

//결제일 맥스값 체크

function doSttlDtChange(){

var sttlDt=parseInt(model.getValue("/root/main/STTL_DT"));

if(sttlDt>31){

jsAlert("유효하지 않는 결제일입니다.");

model.setFocus("input3");

}

}


// ROW 를 삭제 하기 

    function doFg2Delete(){

if(fg2.row<fg2.fixedRows){

jsAlert("삭제할 내역을 선택해 주십시요.");

return;

}else if(jsConfirm("선택한 행을 삭제하시겠습니까?")){

fg2.deleteRow(fg2.row);

fg2.colWidth(0)=30;

     }

     }


//SELECT  형식으로 데이터 그리드를 보는것 (사업처 코드를 사용 -보이는 값과 넘기는 값이 다르다 ) 


//데이터 그리드 안에서 

<col ref="BUSI_PLC_CD" type="combo" visibility="hidden">

<choices>

<itemset nodeset="/root/temp/IMPORT/CORP">

<label ref="label"/>

<value ref="value"/>

</itemset>

</choices>

</col>


// 단일 SELECT 안에서 사용 

<select1 id="combo2" ref="/root/search/BUSI_PLC_CD" appearance="minimal" style="left:125px; top:38px; width:210px; height:17px; font-family:Gulim; text-align:center; padding-top:1; ">

<choices>

<itemset nodeset="/root/temp/IMPORT/CORP">

<label ref="label"/>

<value ref="value"/>

</itemset>

</choices>

<script type="javascript" ev:event="xforms-value-changed">

<![CDATA[

doFg1Search();

]]>

</script>

</select1>


위의 두 값은 아래와 같이 초기 셋팅 한다. 

<script type="javascript" ev:event="xforms-model-construct-done">

<![CDATA[

//doImportSearch("CORP,C320,C321,C315@ETC1='320-001'","--전체--,,,--선택--");

doImportSearch("CORP_INF","--전체--");

    //doInit();

]]>

</script>


// 특정 그리드의 checked 된 값을 숫자로 return 하는 function 사용  // act.js 에 구현

fGridChkCntReturn("fg1","isChecked","true")==0

   -- 특정 데이터그리드의 refid 값과 몇개 인제 확인할 상태값을(true or false)  넘겨 준다. 


// 데이터 별로 특정 값을 찾아 style 을 조정 하여 백그라운드를 다르게 보여 준다. 2개 이상의 값

for(var i = fg1.fixedRows ; i < fg1.rows ; i++){

var gbn = fg1.valueMatrix(i, fg1.colRef("GBN"));

if(gbn=="2"||gbn=="6"||gbn=="8"||gbn=="9"){

fg1.mergebyfree(i, fg1.colRef("CARD_NO"), i, fg1.colRef("APROV_DATE"));

fg1.cellStyle("text-align", i, fg1.colRef("CARD_NO"), i, fg1.colRef("APROV_DATE"))="center";

fg1.rowStyle(i, "data", "background-color") =  "#e1e1ff";

fg1.rowStyle(i, "data", "color") =  "#0000ff";

fg1.rowStyle(i, "data", "font-weight") =  "bold";


}else if(fg1.valueMatrix(i, fg1.colRef("GBN"))=="10"){

fg1.mergebyfree(i, fg1.colRef("CARD_NO"), i, fg1.colRef("APROV_DATE"));

fg1.cellStyle("text-align", i, fg1.colRef("CARD_NO"), i, fg1.colRef("APROV_DATE"))="center";

fg1.rowStyle(i, "data", "background-color") =  "#e1e1ff";

fg1.rowStyle(i, "data", "color") =  "#ff0000";

fg1.rowStyle(i, "data", "font-weight") =  "bold";

}

}


//공통단 엑셀 처리 xrw 부분 


T폼 지원 : saveExcel(document.title, document.title, "fg1", "1");


//따로 만든것 

    var excelFileName = "acctCd.xls";

     var fgColName= "소득코드^소득구분^표준코드^순번^소득명^필요경비세율(%)^세율";

     //var fgColName2= "소득코드^소득구분^표준코드^순번^소득명^필요경비세율(%)^세율"; //타이틀 값 두줄 넣을때 사용 fgColName 과 사이즈가 같아야함

     var fgColRef=     "INCM_CD^INCM_CLS^STAN_INCM_CD^STAN_INCM_SEQ^INCM_NM^NECES_TAX_RATE^TAX_RATE";


     model.makeValue("/root/temp/excel/colName",fgColName);

     //model.makeValue("/root/temp/excel/colName2",fgColName2);

     model.makeValue("/root/temp/excel/colRef",fgColRef);

     model.makeValue("/root/temp/excel/getList","act.main.act0009007.getList");

     model.makeValue("/root/temp/excel/title", document.title);

     model.makeValue("/root/temp/excel/fileNm",excelFileName);

     submit("/module/mis/act/main/Act_0000_007.do", "excelDown", "/root/temp/excel,/root/search", "", "excel", "", false, true);

     


// 엑셀 다운 작업 2

model.makeValue("/root/search/FINC_STAT_CD","390-001");

   

var excelFileName = "acct_Balance_sheet.xls";

var fgColName= "계정과목코^"+model.getValue("/root/main/TITLE3")+"^"+

model.getValue("/root/main/TITLE3")+"^"+model.getValue("/root/main/TITLE4")+"^"+model.getValue("/root/main/TITLE4");

     

var fgColName2= "^^금액^금액^금액^금액"; //타이틀 값 두줄 넣을때 사용 fgColName 과 사이즈가 같아야함

     var fgColRef=     "DIS_NM^SEQ^THIS_L_AMT^THIS_R_AMT^BACK_L_AMT^BACK_R_AMT";

     model.makeValue("/root/temp/excel/colName",fgColName);

     model.makeValue("/root/temp/excel/colName2",fgColName2);

     model.makeValue("/root/temp/excel/busiPlcNm",model.getValue("/root/main/TITLE1")+"     "+model.getValue("/root/main/TITLE2"));

     model.makeValue("/root/temp/excel/colRef",fgColRef);

     model.makeValue("/root/temp/excel/getList","act.main.act5002007.getList");

     model.makeValue("/root/temp/excel/title", document.title);

     model.makeValue("/root/temp/excel/fileNm",excelFileName);

     submit("/module/mis/act/main/Act_0000_007.do", "excelDown", "/root/temp/excel,/root/search", "", "excel", "", false, true);

     


Posted by 사라링
BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :