簡體   English   中英

在Oracle Forms 6i中將值從一種形式傳遞到另一種形式

[英]Passing values from one form to another in oracle forms 6i

我是Oracle表單的新手,並且正在設計使用同一表單編寫應用程序。 我在以下情況下有問題。

我有一個表格(FORM1),用於顯示沒有授權細節的項目列表。 在授權項目之前,授權者必須先查看詳細信息。 這需要另一種形式(FORM2),只要選擇了一個項目並且選擇了“查看”按鈕,就會調用該形式。 詳細信息將顯示在此處。 在FORM2上還將有按鈕:REJECT,APPROVE和BACK。

這是VIEW1按下按鈕時的FORM1事件:

DECLARE
list_id   ParamList;
USR_MSG NUMBER;
BEGIN  


IF :TBL_CONTRACT.CONTRACT_NO IS NULL THEN
    USR_MSG:=USER_ALERT('INFO_ALERT','Please select a valid contract no to View.');
    RAISE FORM_TRIGGER_FAILURE;
END IF;


list_id := Create_Parameter_List('PAR_CONTRACT');
Add_Parameter(list_id, 'CONTRACT_NO',TEXT_PARAMETER,:TBL_CONTRACT.CONTRACT_NO);
call_Form('T:\FRM_APPROVAL_VIEW.fmx',no_hide,no_replace, no_query_only,list_id);

END; 

我的意圖是將contract_id傳遞給FORM2,並查詢數據庫以獲取詳細信息,然后將其顯示在表單上。

這是Form2 when-new-form-instance事件的代碼。

SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW,WINDOW_STATE,MAXIMIZE);
BEGIN
  IF ( :PARAMETER.PAR_CONTRACT IS NOT NULL ) THEN 
    /* Use this value in the WHERE clause of MY_BLOCK */
    Set_Block_Property('TBL_CONTRACT',DEFAULT_WHERE, 'PAR_CONTRACT = :PARAMETER.PAR_CONTRACT');
    GO_BLOCK('TBL_CONTRACT');

    Execute_Query;
  END IF;
END; 

當我運行應用程序時,我遇到錯誤:FRM 47023,形式為FRM_APPROVAL_VIEW的名為Contract_No的參數不存在。

請問有人能解釋什么是錯誤的以及如何解決的。

提前致謝。

子表單中表單參數的名稱應該是參數名稱(CONTRACT_NO),而不是參數列表的名稱! 如果重命名forms參數並更改代碼以使用:PARAMETER.CONTRACT_NO,那么這應該對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM