現在の[[画面>ABAP/Dynpro]]あるいは一覧処理画面において、[[GUIステータス>ABAP/GUIステータス]]を割り当てる命令。
* 概要 [#b75a55ce]
** 用法 [#he65127a]
その名の通り、[[GUIステータス>ABAP/GUIステータス]]をセットする。
画面に[[GUIステータス>ABAP/GUIステータス]]を割り当てるわけだが、[[PBO>ABAP/PBO]]の処理までに割り当てておかないと、空のGUIステータスが割り当てられることとなる。
** サンプル [#s66fa57f]
*** 基本形 [#va689161]
SET PF-STATUS status.
基本の「き」。
なお、[[システム変数>ABAP/システム変数]]SY-PFKEYには、[[GUIステータス>ABAP/GUIステータス]]の名称がセットされる。
*** 別プログラムのGUIステータスを割当 [#ic5303e3]
SET PF-STATUS status OF PROGRAM prog.
デフォルトではメインプログラムの[[GUIステータス>ABAP/GUIステータス]]を適用するが、このオプションを使用することで別プログラムの[[GUIステータス>ABAP/GUIステータス]]が使用できるらしい。
・・・とはいっても、ボタンやら[[機能コード>ABAP/機能コード]]やらをプログラム間で共有するんかい!って話であるし、メンテ漏れやらダブルメンテやらの発生はもちろん、プログラム間で設計や実装の不整合が発生しやすい行為をワザワザすることもないかと思う。
*** 特定の機能コードを無効化 [#m3373427]
MODULE status_0100 OUTPUT.
APPEND 'CHANGE' TO fcode.
APPEND 'SAVE' TO fcode.
SET PF-STATUS 'Zxxx_0100' EXCLUDING fcode.
ENDMODULE.
直接的に[[変数>アドオン/変数]]で指定することもできるが、[[内部テーブル>ABAP/内部テーブル]]で指定することもできる。
*** 一覧処理だけのオプション [#ccbbe30e]
AT LINE-SELECTION.
SET PF-STATUS 'BASIC' EXCLUDING 'PICK' IMMEDIATELY.
このオプションを指定すると、「SET PF-STATUS」が現在の詳細一覧 (SY-LSIND) 以降のみではなく、現在表示されている一覧 (SY-LISTI) およびすべての後続一覧レベルに対して効果を持つようになる・・・らしい。
* その他 [#k15a1572]
画面処理に関連する命令は、[[SET SCREEN>ABAP/SET SCREEN]]、[[CALL SCREEN>ABAP/CALL SCREEN]]、[[LEAVE TO SCREEN>ABAP/LEAVE TO SCREEN]]、[[GET PF-STATUS>ABAP/GET PF-STATUS]]、[[SET TITLEBAR>ABAP/SET TITLEBAR]]、[[LOOP AT SCREEN>ABAP/LOOP AT SCREEN]]、[[MODIFY SCREEN>ABAP/MODIFY SCREEN]]、[[SUPPRESS DIALOG>ABAP/SUPPRESS DIALOG]]、[[SET CURSOR>ABAP/SET CURSOR]]、[[GET CURSOR>ABAP/GET CURSOR]]、[[SET HOLD DATA>ABAP/SET HOLD DATA]]、[[CONTROLS>ABAP/CONTROLS]]、[[REFRESH CONROL>ABAP/REFRESH CONROL]]などがある。
~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)