반응형

var dsName = ds_NewUserAccount.ID+"_Temp";
   Create("Dataset", dsName);

   var dsObj  = object(dsName);

   for (var iCol = 0; iCol < ds_NewUserAccount.colcount; iCol++) {
    dsObj.AddColumn(ds_NewUserAccount.GetColID(ds_NewUserAccount.GetColIDXbyorder(iCol)),
        ds_NewUserAccount.GetColType(ds_NewUserAccount.GetColID(ds_NewUserAccount.GetColIDXbyorder(iCol))));
   }

   var idx = dsObj.AddRow();
   dsObj.CopyRow(idx, ds_NewUserAccount, iCurrow);

반응형
반응형

1. 동적쿼리는 /rp인 경우에 가능하다. (/rv인 경우에 사용하는 방법은 안될 것 같다.. 정확치는 않음)

화면에서 보낼 파라미터를 아래와 같이 한다.
/rp [10][] /rv 사원명[박명수] 사원주소[경기도]

그럼 쿼리에서 사용할때는
WHERE 1=1
#10# AND 사원명 = ':(사원명)'
#01# AND 사원주소 =   ':(사원주소)'

여기서 ##이 동적쿼리를 의미하는 것인데,
1은 파라미터 값이 있는경우
0은 파라미터 값이 NULL(없는)경우
X는 파라미터 값에 상관없는 경우

로 ##안에 순차적으로 들어오는 /rp에 맞춰서 값이 있는경우는 1, 값이 없는 경우는 0으로
파라미터 갯수만큼 ##안에 채우면 동적 쿼리가 완성된다.

그러므로 #10#은 첫번째 파라미터값이 있고, 두번째 파라미터 값이 없는 경우를(첫번째 파라미터가 널인지만 체크)
#01#은 첫번째 파라미터 값은 없고, 두번째 파라미터 값이 있는경우(두번째 파라미터 값이 널인지만 체크)를 의미하는 것이다.




반응형
반응형



우선 레벨을 다 펼쳤다가 접는 작업이므로 redraw 해주는 작업은 필수이다.
안한다면 트리가 좌라락 움직이는 것이 보게 될것이다.

function fn_AfterSearchTreeView()
{
 tab_userInfo.tab_userAthrt.tv_userAthrt.Redraw = false;
 for (var iRow = 0; iRow < ds_userAthrt.GetRowCount(); iRow++){
  if (ds_userAthrt.GetColumn(iRow, "menuLvlSeq") == 1){
   tab_userInfo.tab_userAthrt.tv_userAthrt.ExpandItem(iRow, true);
  } else {
   tab_userInfo.tab_userAthrt.tv_userAthrt.ExpandItem(iRow, false);
  }
 }
 tab_userInfo.tab_userAthrt.tv_userAthrt.Redraw = true; 
}
반응형

+ Recent posts