* 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 컨트롤을 이용할까 합니다.

다음 강의에서요 ㅎㅎ

수고하셨습니다.

 

 

 

Posted by A4M
,