2012-11-18 2 views
2

사용자가 테이블에서 가져온 여러 행의 데이터를 볼 수있는 양식을 만들었습니다. 사용자는 행을 선택하고 버튼을 눌러 해당 행의 데이터를 거부 할 수 있습니다 (일부 STATUS 필드에서는 거부 됨으로 표시됨).Oracle Forms Builder에서 대화 상자 캔버스를 표시하려면 어떻게합니까?

나는 또한 사용자가 거부 할 의견이나 이유를 입력 할 수있는 거부 확인 대화 상자를 디자인했습니다.

대화 상자 캔버스가 대화 상자에 설정된 유형 프로퍼티와 함께 ​​자체 창에 표시되도록 설정했습니다.

사용자가 거부하는 행을 선택

여기 실행 도착하는 코드이다

BEGIN 
    GO_BLOCK('BLK_ALL_RECORDS'); 

    FIRST_RECORD; 


    IF :FRM_ALL_ROWS.CHK_SELECT = 1 THEN 
     :FRM_REJECTION.ID := :FRM_ALL_ROWS.ID; 
     GO_BLOCK('BLK_REJECTION'); 
     SHOW_VIEW('CNV_REJECTION'); 
     EXIT; 
    ELSE 
     NEXT_RECORD; 
    END IF; 

END; 

과 거부 버튼 형태가 두 번 확인하고 하나의 취소를 갖는다. 지금 취소 버튼에 집중하겠습니다.

:BLK_ALL_ROWS.CHK_SELECT := 0; /* Forces removal of the check mark */ 
GO_BLOCK('BLK_ALL_RECORDS'); 
HIDE_VIEW('CNV_REJECTION'); 

유일한 문제는 다음과 같습니다 : 대화 형태가 표시되면 양식이 기각 될 때까지, 그것이 부모 폼을 숨 깁니다 여기에서 취소 버튼을 누르면 한 번 실행되는 코드입니다. 부모 폼의 대화 상자 폼을 ​​두 가지 모두 함께 표시 할 수있는 방법 (모달 방식으로 표시)

+0

속성 팔레트에서 모달로 창을 설정하려면 – Sathya

+0

@ Sathya에게 감사해야합니다. Window pallete에서 MODAL 속성을 YES로 설정했음을 언급하는 것을 잊어 버렸습니다. 그러나 자식이 디스플레이에있을 때 항상 부모 캔버스가 사라집니다. – Ahmad

답변

1

마지막으로 문제가 무엇인지 알아 냈습니다. 부모 창에는 기본값이 Yes 인 속성 [Hide On Exit]이 있었으며 다른 창을 표시 할 때마다 부모 모양이 사라졌습니다. 나는 NO으로 설정하고 다른 양식을 호출했습니다. 이번에는 양쪽 모달이 보이고 모달 1 개가 항상 맨 위에 표시됩니다.

1

다른 캔버스 간의 탐색이 약간 어려워 질 수 있습니다. 내 앞에 폼이 없으면서 문제가 무엇인지 말하기가 어렵지만 먼저해야 할 일은 '기본'캔버스의 '항목 올리기'캔버스 속성이 '예'로 설정되어 있는지 확인하는 것입니다. 커서를 'BLK_ALL_RECORDS'블록으로 다시 옮길 때이 캔버스가 강제로 표시되어야합니다.

또 다른 방법은 취소 대화 상자 논리에서 SHOW_VIEW()를 사용하여 강제로 기본 캔버스를 표시하는 것입니다.

+0

팁 주셔서 감사합니다. 나는 당신의 제안을 모두 시도했지만 마침내 그 문제는 자식 윈도우가 아니라 부모라는 것을 알게되었습니다. 내 대답보기 – Ahmad

관련 문제