2012-04-20 48 views
1

我們有兩種形式,到目前爲止,需要從窗口1中1跳轉(其被登錄屏幕)使用按鈕(如下觸發代碼)切換到windowX在formX:的Oracle Forms生成器 - 改變窗口的另一種形式

begin 
    show_window('windowX'); 
    go_block('some_block_in_formX'); 
end; 

這給了錯誤FRM-41052:找不到窗口:無效的ID

所以問題是,我應該補充formX到show_window參數某種方式或有另一種方法呢?謝謝。

請注意,表單是在不同的文件。

回答

1

表單在不同的文件中。

如果表格是不同的文件,您需要使用open form/call form/newform來調用其他表格 - 無論您的需要如何。

show_window/go_block當你移動到不同的窗口序列可僅使用/的相同形成 - 與錯誤信息

錯誤FRM-41052:找不到窗口:無效的ID

正在抱怨它無法進入該窗口,因爲它處於不同的窗體中。

0

每個窗體都有一個私有的命名空間,它的所有窗口,塊,項等等 - 而且你的代碼總是在單一窗體的上下文中運行。

爲了解決這個問題,你需要一個形式參數,再加上其他形式的一些代碼,例如:

    在formX
  1. ,添加參數ACTION在Form1
  2. ,傳遞價值「XYZ '在行動
  3. 在formX,在WHEN-NEW-FORM-INSTANCE觸發器,檢查是否:PARAMETER.ACTION = 'XYZ',如果是的話,做你的show_window和go_block。將相同的代碼複製到您的WHEN-WINDOW-ACTIVATED觸發器。

當然,你需要考慮的參數(例如ACTION)和價值(「XYZ」),這將是有意義的人保持您在未來的形式的名稱。