[  ◎ dataset.목록 구하기  ]

 


    //1. form안에 존재 하는 Dataset 찾기
    //   Dataset은 inVisible component이기때문에   this.components로 해서는 검색이 안됨

 


    
function fn_GetDatasetList()
    {
        
for(var i=0; i < this.all.length; i++){
            if (
this.all[i] instanceof Dataset){
                trace(
this.all[i].name );
            }
        }
    }
 



    //2. div에 연결된  form안에 존재 하는 Dataset 찾기
    //   Dataset은 inVisible component이기때문에   this.components로 해서는 검색이 안됨
 


    
function fn_GetDivDatasetList()
    {
        
for(var i=0; i < divMain.all.length; i++){
            if (divMain.all[i]
instanceof Dataset){
                trace(divMain.all[i].name);
            }
        }
    }

 

Posted by 농부지기
,

◎ Nexacro Dataset. rowCopy(),  rowData()  - 복사   ] 

 


 //함수명 : 
copyRow()
 //정의   : source 데이터셋의 지정 행(row)을  target 데이터셋의 지정한 행 위치에 복사한다.
 //Syntax : dsTarget.copyRow(nTargetRow,dsSource,nSourceRow[,strColInfo]);
 //참고   : Target Dataset에서 반드시 복사위치 Row가 추가(빈Row) 되고, 지정되어야 한다.
 //          컬럼들을 지정하지 않으면 동일한 컬럼명에 대해서만 복사 된다.
 //          컬럼들을 지정하면 지정한 컬럼들만 복사 된다.

 


  
function fn_CopyRow()
  {
    var nTargetRow = dsTarget.addRow();

    dsTarget.copyRow(nTargetRow,dsSource,nSourceRow);
  }
 



    //함수   : copyData()
    //정의   : source 데이터셋의 모든 컬럼, Type, Data를 target 데이터셋에 복사 한다.
    //Syntax : dsTarget.copyData(dsSource[, bFilteredOnly]);
    //참고   : copyData 메소드를 수행하면 대상 데이터셋의 모든 열과 행 정보는 삭제됩니다
    //          데이터셋이 복사될 때 삭제된 행은 복사하지 않습니다.
    //          copyData 메소드를 수행하여 복사된 행의 타입은 ROWTYPE_NORMAL이 됩니다.
    //
    //          copyData 메소드가 성공하면 다음의 순서로 이벤트가 발생합니다.
    //               onrowsetchanged() → canrowposchange() → onrowposchanged() → onvaluechanged()
    //          이 때, onrowsetchanged 이벤트의 reason 상태값은 REASON_COPY입니다.
    //          onrowsetchanged 이벤트가 수행된 후 rowposition 속성의 값을 0으로 설정하기 위해
                canrowposchange 이벤트를 호출합니다.
    //          canrowposchange 이벤트에서 false를 반환하면 rowposition 속성이 변경되지 않습니다.
    //          그리고 true를 반환하면 새로운 행의 위치로 변경하고 onrowposchanged 이벤트를 호출합니다.
 


    
function fn_CopyData()
    {
        
var nCopyRowCnt = dsTarget.copyData(dsSource);
    }

 

 

 

'Nexacro-Dataset > Copy' 카테고리의 다른 글

[Nexa.Dataset] 컬럼정보 복사  (0) 2017.11.24
Nexacro.Dataset - copy 기본문법  (0) 2017.06.30
Posted by 농부지기
,

[ ◎ dataset.rowType 변경하기  ]   

  

☞ 정의 : rowType을 변경시 반드시 updatecontrol 속성을 false 후 rowtype을 변경하고
           변경완료 후에는 다시 true로 해줘야 된다.


    dsName.updatecontrol =
false;
    dsName.setRowType(nRow,Dataset.
ROWTYPE_UPDATE);
    dsName.updatecontrol =
true;
 

     dsName.updatecontrol = false;        
     dsName.setRowType(nRow, Dataset.
ROWTYPE_NORMAL);
     dsName.updatecontrol =
true;

Posted by 농부지기
,

[ Nexacro Dataset - Dynamic 컬럼 Size, Type 변경하기 ]

 


function fn_dsSizeTypeChange()
{
    
// dsName에서 CD컬럼에대한 ColumnInfo 객체를 가져옴
    
var o_cinfo = dsName.getColumnInfo("CD");
 

    // 해당 열의 크기를 5로 변경
    trace(o_cinfo.size)
    o_cinfo.size =
5;
    trace(o_cinfo.size)
    

    // type 변경
    trace(o_cinfo.type)
    o_cinfo.type = "
BIGDECIMAL";
    trace(o_cinfo.type)
    

    // 최종 결과 확인 하기
    trace(dsPlanCd.saveXML());

}

 

Posted by 농부지기
,

[ ◎ dataset. Dynamic 생성 및 삭제  ]     

 


//Dataset 생성
function fn_CreateDataset()
{
    var objDs = new Dataset();
    objDs.name = "
dsMain";
 
    
//컬럼 및 type추가
    objDs.addColumn( "
CUSTNAME", "string" );
    objDs.addColumn( "
CUSTNO"  , "string" );
    objDs.addColumn( "
AMT"     , "BIGDECIMAL" );
 
    this.addChild("
dsMain", objDs);
 
    objDs.addRow();
    objDs.setColumn(0, "
CUSTNAME", "고객명");
 
    trace(dsMain.saveXML());
}
 

//Dataset 삭제
function fn_DestroyDataset(){
    this.removeChild("
dsMain");
}

Posted by 농부지기
,

[  ◎ dataset에 자료 조회 시 주의 사항 ]   

  

☞   

 


* 자료 조회 후 주의 사항
  1. 조회할 때 Ds 순서
     var strOutputDs = "dsAAAA=ds_ouput0 dsBBBB=ds_ouput1 dsCCC=ds_output2";

  2. 자료 조회
     gfn_transaction();

  3. gfn_callback()에서 이슈 (3개의 ds에는 자료가 존재 한다는 조건하에서)
     1. 상황
        a. 조회할때 ds 순서에 주의 해야 된다.
        b. 자료가 조회 된 후 각 ds는  rowchanged() event가 발생한다.
        c. 이때 dsAAAA의 rowchanged() event가 발생 할때  dsBBBB는 아직 자료가 setting이 안될 수 있다.
        d. 그래서, 분명히 자료는 db에서 가져 왔는데  dsBBBB는 자료가 없다고 나온다.
        e. dsAAAA의 rowchanged() event에서  dsBBBB의 값이 존재 하는지 묻거나, 가져다 사용할려고 할때 없다고 나온다.

       2. 이유
            a. 분명히 3개의 서버에서 3개의 ds에서 자료를 적용하려고 select했고
                server단에서 client단으로 자료는 넘겼다.
            b. 그리고, client단에서 자료를 받을때
            c. 맨 먼저 strOutputDs 에 적용된 순서대로 자료는 ds에 setting 되게 된다.
            d. 그래서, dsAAAA 에 자료를 맨 먼저 setting하게 되는데
                이때 rowchanged() event가 발생하게 된다.
                문제는 이때 dsBBBB에 자료는 아직 server에서 가져온 자료가 넣기 전이다.
            e. 그래서 dsAAAA의 rowchanged() event가 발생 할 때              
               dsBBBB의 값을 참조하려고 하면 값이 없다고 나온다.

     3. 해결방법
        a. 조회 전 dsBBBB는 먼저 조회할 수 있도록 앞쪽에 위치 시킨다.
        b. var strOutputDs = "dsBBBB=ds_ouput0 dsAAAA=ds_ouput1 dsCCC=ds_output2";
        c. 위 와 같이 할 경우 dsBBBB자료를 먼저 setting후 dsAAAA의 자료를 setting한다.
        d. 그래서 dsAAAA의 rowchanged() event가 발생할 때 이미 dsBBBB의 자료는 존재 하게 된다.
 

☞  

 

  

'Nexacro-Dataset > Event' 카테고리의 다른 글

Nexacro Dataset - event 추가 및 삭제  (0) 2017.01.22
Nexacro Dataset - canrowposchange() Event  (0) 2017.01.22
Posted by 농부지기
,

◎ dataset.event 추가 및 삭제   ]

 


// 1. event 를 script에서 추가하기
    grdName.onheadclick.setHandler(
event_onheadlclick);

    
function event_onheadlclick(obj:Grid, e:GridClickEventInfo)
    {

            script 기술

    }

 

   // 2. evetn를 script에서 삭제 하기
   grdName.onheadclick.removeHandler(grdName.onheadclick.event_onheadlclick);
 

Posted by 농부지기
,

◎ dataset.canrowposchange() Event ]

 


function
dsname_canrowposchange(obj:Dataset, e:DSRowPosChangeEventInfo)
{
    
if (row를 변경할지? 말지? 판단 비교문){
        
//return true를 하면사용자가 클릭 한 row로 변경 됨
        
return true;
    }
else{
        //r
eturn false를 하면 row변경이 안되고 이전row로 이동 됨
        
return false;
    }
}


Posted by 농부지기
,