프로그래밍/PowerBuilder

데이터윈도우에서 여러row를 선택하는 방법

MAKING_ 2020. 11. 7. 07:37
반응형

윈도우 탐색기를 보면 Ctrl + Click의 경우 계속해서 선택하고, Shift + Click의 경우
처음과 나중클릭을 전부 선택하는 기능이 있습니다. 이 기능을 DataWindow에 적용하는 방법입니다. 
 
    먼저 Global 함수를 만듭니다.
    //**************************************//
    함수명 :gf_multi_select
    전달값 :a_dw(datawindow),al_row(현재row)
    //**************************************//
 
    long  w_selrow, i
 
    if al_row <= 0 then return
 
     if keydown(keyshift!)then
         w_selrow = a_dw.GetSelectedRow(0)
         if w_selrow > 0 then
               for i = min(w_selrow,al_row) to max(w_selrow, al_row)
                        a_dw.SelectRow(i,true)
               next
         else
               a_dw.SelectRow(al_row,true)
         end if
     elseif keydown(KeyControl!) then
         if a_dw.isSelected(al_row) then
               a_dw.SelectRow(al_row,false)
         else
               a_dw.SelectRow(al_row,true)
         end if
      else
         if a_dw.isSelected(al_row) then
               a_dw.SelectRow(0,false)
         else
               a_dw.SelectRow(0,false)
               a_dw.SelectRow(al_row,true)
         end if
       end if 
    //**************************************//
 
    이 함수를 해당 Datawindow의 Clicked Event에서 부르면 됩니다.
 
    Clicked Event Script
    if row < 1 then return
    gf_multi_select(this,row)

반응형