!--a11y-->

Dynpro エレメントに項目ヘルプを表示するには、次の 3 つの方法があります。
スクリーンペインタで ABAP
ディクショナリ項目を
コピーして Dynpro
に項目を配置すると、Dynpro
制御ロジックでヘルプが上書きされていない限り、ユーザが項目ヘルプを選択したときに ABAP
ディクショナリの対応するデータエレメント文書が自動的に表示されます。
データエレメント文書登録の詳細については、
データエレメントを参照してください。
データエレメント文書が不十分な場合は、データエレメント補足を作成して拡張することができます。
データエレメント補足文書には、ヘッダ定義をはじめ、以下の記載があります。
キ 用途
キ 手順
キ 例
キ 依存
Dynpro のデータエレメント補足文書を登録するには、Dynpro のエレメント一覧から、ジャンプ → 文書 → データエレメント補足文書 と登録します。データエレメント補足に指定する番号が示されたダイアログボックスが表示されます。SAPscript エディタを使用して上記のヘッダにヘルプテキストを入力することができます。
この方法で登録したデータエレメント補足文書はプログラム固有または Dynpro 固有になります。ABAP ディクショナリで登録された同じ番号のデータエレメント補足文書は、Dynpro 固有の文書によって上書きされます。テーブル THLPF を使用して、ABAP ディクショナリで登録された既存のデータエレメント補足文書を Dynpro 項目とリンクすることができます。これは、THLPF に、プログラム名、Dynpro 名、項目名、データエレメント補足文書番号のデータが記載された新規の行を作成します
データエレメント補足文書を表示するには、POH イベントで、下記のDynpro 制御ロジックをコード化する必要があります。
PROCESS ON HELP-REQUEST.
...
FIELD
<f> [MODULE <mod>] WITH <num>.
...
PROCESS ON HELP-REQUEST の後は、FIELD 命令のみを使用することができます。Dynpro の制御ロジックに PROCESS ON HELP-REQUEST キーワードがない場合、ユーザが F1 を選択しても現在項目のデータエレメント文書やヘルプがまったく表示されません。現在項目 <f> が含まれる次の FIELD 命令が実行されます。
項目 <f> に Dynpro 固有のデータエレメント補足文書がある場合は、その番号 <num> を指定すると表示することができます。番号<num> には、リテラルまたは変数を指定します。変数を宣言し、該当する ABAP プログラムに入力する必要があります。
変数は、たとえばヘルプが表示される前にモジュール <mod> を呼び出して入力することができます。ただし、PROCESS ON HELP-REQUEST イベントでは、FIELD 命令が Dynpro 項目 <f> の内容を ABAP プログラムに移送しません。
データエレメント補足文書登録の詳細については、
データエレメント補足を参照してください。
データエレメント補足文書に不足があって必要を満たさない場合、または ABAP ディクショナリからコピーしたのではないプログラム項目にヘルプを表示する場合は、POH イベントでダイアログモジュールを呼び出すことができます。
PROCESS ON HELP-REQUEST.
...
FIELD
<f> MODULE <mod>.
...
PROCESS ON HELP-REQUEST 命令の後は、MODULE 命令のみを 使用することができます。ユーザが項目 <f> の F1 を選択すると、FIELD <f> 命令に属するモジュール <mod> が呼び出されます。同一の項目<f> に対して FIELD 命令が複数ある場合は、最初の命令のみが実行されます。ただし、PROCESS ON HELP-REQUEST イベントでは Dynpro 項目<f> の内容が FIELD 命令によって移送されていないため、この項目の内容をモジュール<mod> で使用することはできません。項目ヘルプはユーザ入力依存にできません。
モジュール <mod> は、通常の PAI モジュールと同様にABAP プログラムで定義されます。モジュールの処理ロジックで、項目に十分なヘルプが表示されるようにする必要があります。テキスト項目の補足画面を呼び出すのではなく、次の汎用モジュールのいずれか 1 つを使用してください。
キ HELP_OBJECT_SHOW_FOR_FIELD
この汎用モジュールは、すべての構造または ABAP ディクショナリのデータベーステーブルのコンポーネントにデータエレメント文書を表示します。コンポーネントと、構造かテーブルの名称を渡してパラメータ FIELD と TABLE をインポートします。
キ HELP_OBJECT_SHOW
この汎用モジュールは、SAPscrpt 文書の表示に使用します。パラメータDOKCLASS とDOKNAME をインポートするには、文書クラス ( 例: 一般テキストは TX 、データエレメント文書は DE など) と文書名を渡す必要があります。技術的理由により、汎用モジュールのテーブルパラメータに行タイプ TLINE で空白の内部テーブルも渡す必要があります。
SAPscript
文書登録方法の詳細については、
システムオブジェクトの文書を参照してください。

Dynpro の項目ヘルプ
REPORT DEMO_DYNPRO_F1_HELP.
DATA:
TEXT(30),
VAR(4),
INT TYPE I,
LINKS TYPE TABLE OF TLINE,
FIELD3, FIELD4.
TABLES DEMOF1HELP.
TEXT = TEXT-001.
CALL SCREEN 100.
MODULE CANCEL INPUT.
LEAVE
PROGRAM.
ENDMODULE.
MODULE F1_HELP_FIELD2 INPUT.
INT = INT +
1.
CASE INT.
WHEN 1.
VAR = '0100'.
WHEN 2.
VAR = '0200'.
INT =
0.
ENDCASE.
ENDMODULE.
MODULE F1_HELP_FIELD3 INPUT.
CALL
FUNCTION 'HELP_OBJECT_SHOW_FOR_FIELD'
EXPORTING
DOKLANGU =
SY-LANGU
DOKTITLE =
TEXT-002
CALLED_FOR_TAB =
'DEMOF1HELP'
CALLED_FOR_FIELD =
'FIELD1'.
ENDMODULE.
MODULE F1_HELP_FIELD4 INPUT.
CALL
FUNCTION 'HELP_OBJECT_SHOW'
EXPORTING
DOKCLASS =
'TX'
DOKLANGU =
SY-LANGU
DOKNAME
= 'DEMO_FOR_F1_HELP'
DOKTITLE =
TEXT-003
TABLES
LINKS
= LINKS.
ENDMODULE.
Dynpro 100 の次画面 ( 静的定義) は 100 です。このレイアウトは次のとおりです。
ABAP ディクショナリの Dynpro 項目 DEMOf1HELP-FIELD1 と DEMOF1HELP-FIELD2 およびプログラム項目 FIELD3 と FIELD4 が入力項目に割り当てられます。押しボタンの機能コードは CANCEL で機能タイプは E です。
この Dynpro 制御ロジックは次のとおりです。
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
MODULE
CANCEL AT EXIT-COMMAND.
PROCESS ON HELP-REQUEST.
FIELD
DEMOF1HELP-FIELD2 MODULE F1_HELP_FIELD2 WITH VAR.
FIELD FIELD3 MODULE F1_HELP_FIELD3.
FIELD
FIELD4 MODULE F1_HELP_FIELD4.
構造 DEMOF1HELP のコンポーネント FIELD1 と FIELD 2 はいずれもデータエレメント DEMOF1TYPE を参照します。このデータエレメントは文書化されており、番号が 0100 と 0200 の 2 つの補足が付属しています。
以下の項目ヘルプが表示されます。
キ ユーザが DEMOF1HELP-FIELD1 の入力項目で F1 を選択すると、この項目はPROCESS ON HELP-REQUEST イベントで発生していないため、DEMOF1TYPE のデータエレメント文書が表示されます。
キ 入力項目 DEMOF1HELP-FIELD2 で F1 を繰り返し選択すると、データエレメント文書が表示されます。このとき 0100 と 0200 の補足文書も交互に表示されます。変数 VAR はダイアログモジュールF1_HELP_FILD2 に入力されます。
キ ユーザが FIELD3 の入力項目で F1 を選択すると、汎用モジュール HELP_OBJECT_SHOW_FOR_FIELD によってダイアログモジュール F1_HELP_FIELD3 内で呼び出されているため、DEMOF1TYPE のデータエレメント文書が表示されます。
キ ユーザが FIELD4 の入力項目で F1 を選択すると、汎用モジュール HELP_OBJECT によってダイアログモジュールF1_HELP_FIELD4 内で呼び出されているため SAPscript 文書 DEMO_FOR_F1_HELP が表示されます。