1

これまでに2つのフォームがあり、ボタン(以下のトリガーコード)を使用して、from1のwindow1(ログイン画面)からformXのwindowXに切り替える必要があります。

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

これにより、エラーFRM-41052が発生します:ウィンドウが見つかりません:無効なID

質問は、formXを特定の方法でshow_windowパラメーターに追加する必要があるのか​​、それとも別のアプローチがあるのか​​ということです。ありがとうございました。

フォームは異なるファイルにあることに注意してください。

4

2 に答える 2

1

そのフォームは別のファイルにあります。

フォームが異なるファイルである場合は、open form/call form/newformを使用して他のフォームを呼び出す必要があります (必要に応じて何でも構いません)。

show_window/go_blockシーケンスは、同じフォームの別のウィンドウ/ブロックに移動する場合にのみ使用できます- エラーメッセージ

エラー FRM-41052: ウィンドウが見つかりません: 無効な ID

のフォームであるため、そのウィンドウに移動できないと不平を言っています。

于 2012-04-21T05:37:21.550 に答える
0

各フォームには、そのすべてのウィンドウ、ブロック、アイテムなどのプライベートな名前空間が効果的にあり、コードは常に単一のフォームのコンテキスト内で実行されます。

これを解決するには、フォーム パラメータと、別のフォームのコードが必要です。

  1. formX で、パラメーター ACTION を追加します。
  2. form1 で、値「XYZ」を ACTION に渡します。
  3. formX では、WHEN-NEW-FORM-INSTANCEトリガーで を確認:PARAMETER.ACTION = 'XYZ'し、そうであれば、show_window と go_block を実行します。WHEN-WINDOW-ACTIVATED同じコードをトリガーにコピーします。

もちろん、将来フォームを保守する人にとって意味のあるパラメータの名前 (ACTION など) と値 ('XYZ') について考える必要があります。

于 2012-04-23T05:33:13.457 に答える