* Powerbuilder 10.5

저번 시간에 낸 숙제는 해보셨나요?

이벤트에 대해서 잘 이해 했다면 어렵지 않게 해결할 수 있는 문제입니다.

"w_list 윈도우가 열릴 때 자동으로 조회가 되도록 하라" 는 말을 하나 하나 따라가 볼까요?

1.w_list 윈도우가 열릴 때 -> open 이벤트
2.조회가 되도록 하라 -> Retrieve() 함수

그럼 w_list 의 open 이벤트에 조회하는 명령을 입력하면 되겠네요.



실행해 보면 w_list 윈도우가 오픈될 때 자동으로 조회가 됩니다.

프로그래밍을 할 때, 구현하고자 하는 기능이 있으면 먼저 순서도를 작성하는 것이 순서입니다.
하지만 실제로 순서도를 일일이 작성하기란 여간 귀찮은 일이 아닙니다.
그렇다고 순서도 없이 프로그램을 짜다보면 능률이 오르지도 않습니다.

이럴 때 위에서 했던 것처럼 구현하고자 하는 내용을 적고 난 다음, 스크립트(코드)로 전환하는 방법이 있습니다.
순서도와 비슷한 효과를 내지만 순서도를 작성하는 것처럼 힘이 들지도 않습니다.


벌써 12번째 강의를 접하고 있는데요. 지금쯤 파워빌더하고 조금 친해지셨죠?
오브젝트, 컨트롤, 윈도우, 데이터윈도우, 커맨드버튼, 내장함수...등의 용어도 익숙해졌을 겁니다.
앞으로는 점점 다양하고 복잡한 내용이 전개됩니다.
하나 하나 실전에 쓰이는 것들 위주로 내용을 잡을 것이므로 잘 익히시기 바랍니다.

그리고 강의 방식은 실습을 통해서 함수, 이벤트를 먼저 사용해 보고 필요할 때에 전체 개념을 정리해 나가는 방법으로 진행합니다.
예를 들어 윈도우와 dw컨트롤의 함수, 이벤트를 사용해 보고난 다음, 함수와 이벤트에 대해서 전체적으로 정리를 쫙~ 하겠습니다.
나무를 먼저 보고 숲을 보자는 거죠. 숲을 더 잘 이해할 수가 있게 됩니다.


1. 윈도우 오브젝트 속성

w_list 를 엽니다.

윈도우 오브젝트(컨트롤이라고도 함)의 속성창을 살펴볼까요?

 

지금 시점에서 필요한 것만 설명하겠습니다.


Visible : 숨기기 여부 설정.

Enabled : 윈도우가 메시지(명령)를 주고 받을 수 있는지
              여부 결정 - 체크해제 : 이벤트와 함수 중지.

ControlMenu: 화면 우측 상단의 메뉴(화면최소, 화면최대,
                    화면닫기) 표시를 표시.

MaxBox : ControlMenu 가 체크되어 있을 경우,
               화면최대기능을 활성화시킴.

MinBox : ControlMenu 가 체크되어 있을 경우,
              화면최소기능을 활성화시킴.

ClientEdge : 윈도우의 클라이언트 영역-프레임(테두리)을
                  제외한 안쪽 영역-을 프레임 안쪽으로
                  움푹 들어가 보이게 설정.
                 (윈도우7 테마에서는 별로 티가 안남)

Center : 윈도우가 열리거나 크기가 조정될 때, 모니터 화면
            가운데 위치시킴.

Resizable : 윈도우가 열리고 난 다음, 윈도우 크기를
                 조절할 수 있게 함.

WindowState : 윈도우 실행시 윈도우 상태를 설정.
                     Maximized! : 최대화
                     MiniMized! : 최소화
                     Normal! : 사용자가 정한 크기

BackColor : 윈도우 배경색 설정

Icon : 윈도우 좌측 상단의 아이콘 설정    


좀 많긴 한데, 다 필요한 것들입니다. 어려운 것은 없구요.
하나씩 체크, 해제 하면서 확인해 보세요. 귀찮을 수 있지만 해두면 나중에 편리합니다.
Window Type 도 중요한데요. 나중에 설명하겠습니다.



2. dw 컨트롤 속성

dw_emp 를 선택한 후 속성창을 보세요.

 

 

 

 

 

 

 

 


Visible : 숨기기 여부 설정.

Enabled : 컨트롤 기능 활성화 여부 설정.

HScrollBar : 가로로 모든 데이터가 표시되지 않을 때,
                  수평 스크롤바를 보이게 함.

VScrollBar : 세로로 모든 데이터가 표시되지 않을 때,
                  수직 스크롤바를 보이게 함.

LiveScroll : 스크롤바를 드래그할 때, dw 컨트롤 안의 
                 row 도 함께 스크롤됨.
                 (이것과 상관없이 마우스 스크롤을 움직이면 
                  동일한 기능 수행)

Border : Border 스타일 지정













3. Grid 타입의 dw 속성

dw 는 그 속성이 다양하고 복잡해서 조금씩 알아볼 건데요.

먼저, 어플리케이션을 실행해 보세요. (ctrl + R)

그리고 dw 컨트롤 안의 아무 데이터나 클릭해 보세요.


위와 같이 선택된 아이템의 배경색이 검은색으로 변합니다.

파빌로 되돌아 온 뒤에 d_emp 를 열어보죠. 시스템 트리에서 열면 됩니다만.
dw_emp 컨트롤을 통해서 여는 방법이 있습니다.

dw_emp 영역 안에 마우스를 두고 우클릭 - 팝업창 - Modify DataWindow...

그럼 dw_emp 의 DataObject 속성과 연결된 d_emp 가 열리게 됩니다.

다른 컨트롤을 선택하지 말고 바로 속성창을 봅니다.



 







 



Grid -> Grid 타입의 dw에만 적용된다는 뜻


Mouse Selection 에 체크되어 있기 때문에 나타나는 현상입니다. 여기서 검은색을 다른 색으로 바꿀 수는 없네요.
체크해제 하면 안 나타납니다. 저는 체크해제 하겠습니다.





그리고 다시 어플리케이션을 실행하세요.


사원명 부분을 드래그 하는 순간 아래와 같은 모양이 됩니다.
좌우로 드래그하면 원하는 위치로 옴길 수 있습니다.
실제 dw 에서의 위치가 변하는 건 아닙니다.
이것은 위의 dw 속성창에서 Column Moving 의 기능입니다.

Row Resize는 row 와 row 사이에 마우스를 가져가면 포인터가 상하 모양으로 변하는데,
이 때 드래그 하면 row 의 크기를 조정할 수 있는 기능입니다. 이 또한 실제 dw상에서 변하는 것은 아닙니다.




다음 시간에는 dw 의 데이터를 수정한 뒤에 DB 에 반영해 보도록 하겠습니다.

수고하셨습니다.


* 댓글을 보면 힘이 나요~.

* 질문은 댓글로 남기세요.

Posted by A4M
,