メイン画面のPBOからサブ画面のフィールドを非表示にする方法はありますか?
従属画面は別の機能グループで定義されています。
これは不可能です。メイン画面から見ると、サブ画面領域は内部構造を持たない単一の要素にすぎず、詳細に調べたり変更したりすることはできません。多かれ少なかれ汎用的なプログラミング インターフェイスを介して画面変更データを受け入れ、変更自体を実行するようにサブ画面プログラムを調整する必要があります。
考えられる解決策は次のとおりです。
メイン プログラムからサブスクリーン フィールドの可視性を制御する場合はLOOP AT SCREEN
、vwegert が既に示したように、サブスクリーン プログラムの PBO に a を挿入する必要があります。
問題の従属画面が標準プログラムに属しており、その理由でそれを変更できない場合、従属画面の PBO モジュールからサブルート/フォームへの適切な呼び出しを見つけて、暗黙的な拡張を挿入できる場合があります。この拡張機能内に、コードを配置して画面を変更できます。(もちろん、標準プログラムでない場合は、PBO モジュールのどこでも変更できます)。
ここで、メイン プログラムからの可視性の制御について: メイン プログラムでは、フラグを設定し、それを でメモリにエクスポートできますEXPORT TO MEMORY
。従属画面の PBO では、 でこのフラグを読み取りIMPORT FROM MEMORY
、値に応じて で項目を表示または非表示にすることができますLOOP AT SCREEN
。