1.
⇒
BLOCK XXPO_PRICE_PO_LINES_V의 EVENT에 :SYSTEM.TRIGGER_ITEM이 적용된 부분을 PRE-QUERY TRIGGER를 적용 시킨다.
PRE-QUERY TRIGGER는 QUERY PROCESSING 수행 전에 수행되며 BLOCK LEVEL 이상에서 선언해 주어야 한다.
즉, 한번의 QUERY 로 10개의 레코드를 가져온다고 가정할 때, PRE-QUERY TIGGER는 QUERY 수행 전 1번 수행 된다.
EX) PRE-QUERY TRIGGER에 적당한 SQL문을 입력함으로써 [조회 조건 입력] KEY를 눌렀을 때와 같은 제한적인 QUERY를 수행 가능하다.
2.
XXPO_PRICE_PO_LINES_V의 SPEC에 BLOCK LEVEL에서 사용한 TRIGGER들을 PROCEDURE화 해서 BLOCK LEVEL에서 어떤 TRIGGER들을 사용하였는지 보기 쉽게 정리 한다.
3.
XXPO_PRICE_PO_LINES_V 의 PROCEDURE EVENT에 매개변수를 설정하여 1에서 넘어온 값을 IF ELSIF로 분기 처리하여 각 PROCEDURE가 실행되도록 설정.
그 중 P_TRIGGER_NAME이 PRE-QUERY일 경우 SPEC에 설정한 PRE_QUERY가 실행되도록 설정
4.
설명 :
1번에서 설명 추가하자면
PRE-QUERY TRIGGER는 QUERY PROCESSING 수행 전에 수행되며 BLOCK LEVEL 이상에서 선언해 주어야 한다고 했다.
따라서
PROCEDURE PRE_QUERY는
BLOCK XXPO_PRICE_PO_LINES_V를 APP_ORDER_BY.RESET통해 ORDER_BY를 RESET해주고
APP_ORDER_BY.APPEND를 통해 ORDER BY LINE_NUM을 추가 해준다.
그 후에
CONTROL 블록의 ITEM값들에 오른쪽 각각의 값들을 할당.
'Oracle - Forms > Forms 문법 관련' 카테고리의 다른 글
Oracle Forms - 문법 - SET_ITEM_PROPERTY (0) | 2022.01.24 |
---|---|
Oracle Forms - 문법 - POST-QUERY (0) | 2022.01.24 |
Oracle Forms - 문법 - SET_BLOCK_PROPERTY (0) | 2022.01.24 |
Oracle Forms - 문법 - Format Mask 사용법 (0) | 2022.01.24 |
Oracle Forms - 문법 - USING SYSTEM VARIABLES (시스템 변수 사용) (0) | 2022.01.24 |