* Powerbuilder 10.5
지난 강의에서 wf_retrieve() 함수를 만들어 봤는데요.
프로그램을 실행하면 직급이 CLERK 인 직원만 조회됩니다.
프로그램을 처음 실행하면 모든 직원이 조회되도록 해보겠습니다.
먼저, d_emp 의 Datasource 를 열어보세요.
select a.empno, a.ename, a.job, a.deptno, b.deptno as dname, b.deptno as loc
from emp a, dept b
where a.deptno = b.deptno
and a.job = :as_job
order by a.ename
:as_job 에 어떠한 값을 넣어도 모든 사원을 조회할 수는 없습니다.
and a.job = :as_job 을
and a.job like :as_job 으로 수정합니다.
요렇게 말이죠.
이제 인수로 '%' 를 넣으면 모든 사원이 조회됩니다.
그리고 w_list.wf_retrieve() 를 열어봅니다.
빨간 네모칸을 클릭하세요.
움푹 들어가면서 함수 인터페이스를 설정할 수 있는 화면이 열립니다. 다시 누르면 ...? ㅎㅎ
그리고 인터페이스 설정화면의 빈공간을 마우스 우클릭하고 난 다음 Add Parameter 를 클릭합니다.
그럼 아규먼트(인수)를 입력할 수 있는 칸이 생기죠.
여기에 string 타입의 as_job 을 만들고 스크립트에서 'CLERK' 을 as_job 으로 수정합니다.
그리고 저장하거나 컴파일(ctrl + L) 해 보면
Output 창이 열리면서 다음과 같은 에러가 발생합니다.
w_list.open 이벤트의 wf_retrieve 함수의 인수 갯수가 맞지 않다는 메시지입니다.
인수 하나를 만들었기 때문에 생기는 에러입니다.
위의 파란색 에러 메시지 라인을 더블클릭해보세요.
wf_retrieve() 을 이렇게 수정했습니다.
그럼 '%' 가
dw_emp.Retrieve(as_job) 에서 as_job 에 전달됩니다.
dw_emp.Retrieve('%') 요렇게 되는거죠.
'%' 는
select a.empno, a.ename, a.job, a.deptno, b.deptno as dname, b.deptno as loc
from emp a, dept b
where a.deptno = b.deptno
and a.job like :as_job
order by a.ename
의 :as_job 에 전달되구요.
결국...
select a.empno, a.ename, a.job, a.deptno, b.deptno as dname, b.deptno as loc
from emp a, dept b
where a.deptno = b.deptno
and a.job like '%'
order by a.ename
요렇게 되는거죠.
저장하거나 컴파일해 보세요.
그럼 또 다음 에러가 납니다. 이 정도면 왜 나는지 아시겠죠?
더블클릭해서 이동합니다.
여기다가 어떤 인수를 주어야 할까요?
조회버튼을 누르면 어떻게 되어야 할까요????
일단, 에러를 막기 위해서 이 부분은 코멘트 처리하세요.
특정한 직급을 조회하는 기능을 주는게 좋겠는데요. DropDownListBox 컨트롤을 이용할까 합니다.
다음 강의에서요 ㅎㅎ
수고하셨습니다.
'파워빌더 기초강의1' 카테고리의 다른 글
파워빌더(PowerBuilder) 강의 - 35.SelectionChanged PowerScript event (DropDownListBox) (4) | 2011.11.13 |
---|---|
파워빌더(PowerBuilder) 강의 - 34.DropDownListBox control (12) | 2011.11.11 |
파워빌더(PowerBuilder) 강의 - 32.Object Function (Window) (3) | 2011.11.04 |
파워빌더(PowerBuilder) 강의 - 31.Retrieval Arguments (9) | 2011.11.01 |
파워빌더(PowerBuilder) 강의 - 30.GetRow DataWindow expression function (6) | 2011.10.20 |