IT story/etc

[IBSHEET] 그리드에서 그리드로 data 이동

자랑이다 2022. 1. 24. 12:46
728x90
반응형

DOC : http://ibsheet.com

 

ibsheet의 doc을 잘 이용하자

회원가입을 하고 로그인을 해야 이용할 수 있지만

회원가입할 만 하다.

 

표 두개에서 서로 이동하기 위한 action 만들면서 사용한 ibsheet 함수들.

 

대충 이런 화면

 

1. checkbox 컬럼 중 check 되어 있는 row만 가져오고 싶은 경우

   IBSHEET.FindCheckedRow('IS_CHECK');

   결과 : '3|4|5'

           check 된 행의 index 번호 가져옴. 구분자 "|"

 

2. 전체 체크를 하고 싶은 경우

  IBSHEET.CheckAll(2,1); // 2 <-- checkbox 컬럼 열 번호

 

3. row의 data

   IBSHEET.GetRowData(idx);

   결과 : {ROW_ID: 2, CRUD: 'R', IS_CHECK: 0, MY_DATA: 'abc'}

 

4. 특정 컬럼의 duplication check

   IBSHEET.FindText(3, text, 0, 0)  // ( 비교할 컬럼 열번호, dupl 체크할 텍스트, 시작행 인덱스 번호, 매치 타입)

  https://www.ibsheet.com/docs/ibsheet/IBSheet.row.html#FindText

 

5. 새로운 행 추가해서 데이터 세팅

   IBSHEET.DataInsert(-1);
   IBSHEET.SetRowData( 추가한 행 번호, data(row) );

 

6. 행 삭제

  IBSHEET.RowDelete(rows);  // rows(인덱스 모음) : '3|4|5' 

 

 

var rows = IBSHEET01.FindCheckedRow('IS_CHECK');   // 1번 그리드의 checked 행 선택
var rowArr = rows.split('|'); 

if( rowArr.length > 0 ) {
   for(var i = 0; i < rowArr.length; i++) {
      var selRow = IBSHEET01.GetRowData(rowArr[i]);  // 선택한 1번 행의 data
      if( IBSHEET02.FindText(3, selRow.MY_DATA, 0, 0) < 0 ){  // 2번 그리드와 중복 데이터 있는지 미리 체크
         row var add_row = IBSHEET02.RowCount() + 1;  // 2번 그리드에 새로 추가할 행의 위치 가져오기
         add_row = ( add_row == 0 ) ? 1 : add_row;
         IBSHEET02.DataInsert(-1);  // 2번 그리드에 행 추가
         IBSHEET02.SetRowData(add_row, selRow);  // 2번 그리드 추가한 행에 1번 그리드의 data 세팅
      }
   }
   IBSHEET01.RowDelete(rows);  // 2번 그리드에 추가된 데이터는 1번 그리드에서 삭제
   IBSHEET02.CheckAll(2,0);  // 1번 그리드에서 체크 값도 가져왔으므로 체크 해제
}

 

728x90

'IT story > etc' 카테고리의 다른 글

[Bastion] 접속 및 터널링 설정 (feat. putty)  (0) 2021.11.18