2017-10-05 24 views
0

헤더 그룹에서 체크 박스가 작동하지 않는 이유는 무엇입니까? 데이터 윈도우의 헤더 그룹 안에 체크 박스 속성을 조작하는 코드가 있습니까?헤더 그룹의 체크 박스 Datawindow Powerbuilder

+0

데이터 조작이 헤더 대역에서 수행 될 수 있다고 생각하지 않습니다. 나는 DETAIL을 제외한 모든 밴드가 읽기 전용이라고 생각한다. –

+1

데이터 윈도우 개체 속성에 대해 수정 기능 또는 해당 점 표기법을 사용하여 속성을 변경할 수 있습니다. 그러나 일반적으로 당신이하고 싶은 일은 농구를 뛰어 넘지 않는 한 쉽지 않을 것입니다. –

답변

0

머리글 밴드에 "mycheckbox"라는 열을 넣고 편집 유형을 확인란으로 변경했습니다. 체크 박스를 토글하기 위해 데이터 윈도우 컨트롤의 클릭 이벤트에이 코드를 추가했습니다.

if dwo.name = "mycheckbox" then 
     long ll_row 
     any la_off, la_on, la_value 
     ll_row = long(Object.DataWindow.FirstRowOnPage) 
     if ll_row > 0 then 
      la_value = Object.mycheckbox[ll_row] 
      la_on = Object.mycheckbox.CheckBox.On 
      la_off = Object.mycheckbox.CheckBox.Off 
      if la_value = la_on then 
       la_value = la_off 
      else 
       la_value = la_on 
      end if 
      Object.mycheckbox[ll_row] = la_value 
     end if 
    end if 

참고 만이 데이터 윈도우의 첫 번째 행의 값을 변경한다. 행 수가 많아서 아래로 스크롤하면 확인란이 변경 될 수 있습니다.

이 코드는 모든 행의 값을 토글합니다.

if dwo.name = "mycheckbox" then 
     any la_off, la_on, la_value 
     long ll_row, ll_rows 
     ll_row = long(Object.DataWindow.FirstRowOnPage) 
     if ll_row > 0 then 
      la_value = Object.mycheckbox[ll_row] 
      la_on = Object.mycheckbox.CheckBox.On 
      la_off = Object.mycheckbox.CheckBox.Off 
      if la_value = la_on then 
       la_value = la_off 
      else 
       la_value = la_on 
      end if 
      ll_rows = Rowcount() 
      for ll_row = 1 to ll_rows 
       Object.mycheckbox[ll_row] = la_value 
      next 
     end if 
    end if