* Powerbuilder 10.5

 

 

 

데이터윈도우(이하 dw)의 칼럼 타입 가운데 DropDownDW (이하 dddw) 를 사용한 적이 있습니다.

앞서 만든 d_emp 에서 부서명 칼럼(dept_dname)의 타입이 바로 dddw 입니다.

dddw 는 dw 의 내부 칼럼에 또 다른 dw를 연결시켜 구현합니다.

부서명 칼럼에서는 dddw 의 dw 로 dddw_dname 가 사용되었는데요.

 

 

dddw_dname 의 DataSource 는 다음과 같습니다.

 

select dname, deptno
from dept
order by dname

 

 

아규먼트(argument) 가 없습니다.

만약 where 절에 아규먼트를 추가하고 싶다면 어떻게 해야 할까요?

dddw_dname은 dept_dname 에 포함된 DataWindow 인데 어떻게 아규먼트를 입력할 수 있을까요?

이런 경우 필요한 함수가 바로 GetChild 입니다.

 

 

 

프로그램을 실행합니다.

 

 

 

 

 

부서 DropDownListBox(이하 ddlb) 의 목록에서 RESEARCH 를 선택하면 RESEARCH 부서만 화면에 보입니다.

사원목록에서 부서명 칼럼을 클릭해 봅니다.

 

 

 

 

dddw 에는 모든 부서가 보입니다.

 

 

 

 

 

 

 

 

부서 ddlb 에서 선택된 것만 부서명 칼럼의 dddw 목록에 보이게 하겠습니다.

만약, 부서 ddlb 에서 RESEARCH 가 선택되면 dddw 에 RESEARCH 만 보이게 되고 전체가 선택되면 모든 부서명이 보이게 됩니다.

 

일단 무작정 dddw_dname 아규먼트를 추가합니다.

 

dddw_dname 의 DataSource 를 엽니다.

 

 

 

쿼리를 위와 같이 수정하세요.

deptno의 아규먼트로 an_deptno 를 추가했습니다. an_deptno 는 Number Type 으로 지정했구요.

an_deptno = 1 일 때, dept 테이블의 모든 데이터가 조회됩니다.

 

Return 을 클릭해서 DataSource 를 빠져나오면 메시지 박스가 연속해서 오픈됩니다.

무시하고 저장하세요.

(지금까지의 작업이 낯설다면 8강부터 진행된 DataWindow 관련 강의들을 다시 보고 오세요.)

 

 

프로그램을 실행해보세요.

아래 화면이 오픈되면 정상입니다.

 

 

 

 

위 화면은 w_list 가 오픈되는 과정에서 열렸습니다.

앞서 dddw_dname 에 아규먼트를 추가했구요.

dddw_dname 가 조회될 때, 입력된 아규먼트가 없으니 직접 입력하라고 열리는 화면입니다.

 

스크립트의 어떤 시점에서 dddw_dname 가 조회되는지 찾아야 합니다.

이럴 때 필요한 것이 바로 디버깅입니다.

직접 디버깅을 해서 찾아보세요.

(디버깅 강의 66강~69강)

 

디버깅 타임~.

 

 

 

이 글은 회원 전용입니다.

https://all4museum.tistory.com/entry/%ED%9A%8C%EC%9B%90%EC%A0%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%8B%9C%EC%9E%91?category=892450

 

프리미엄 회원 모집

 

all4museum.tistory.com

 

Posted by A4M
,