SAP Knowledge Wiki
ABAP/SELECTION-SCREEN
をテンプレートにして作成
開始行:
[[選択画面>ABAP/選択画面]]のレイアウトを作ったりいじった...
----
#contents
----
* 概要 [#v3fc8d0b]
** 用法 [#l2f96b3f]
基本的に、[[選択画面>ABAP/選択画面]]で色々やろうと思った...
[[Dynpro>ABAP/Dynpro]]では各パーツをレイアウトエディタで...
凝ったことをやるなら[[Dynpro>ABAP/Dynpro]]で組めよという...
** サンプル(選択画面の登録) [#p1e491a2]
*** Dynproとしての選択画面の登録 [#nbb04e35]
SELECTION-SCREEN BEGIN OF SCREEN (Dynpro番号) TITLE (...
これが最もよくある使い方かと思う。
タイトルは、[[テキストシンボル>ABAP/テキストエレメント]]...
SELECTION-SCREEN BEGIN OF SCREEN (Dynpro番号) AS WINDOW
モーダルダイアログボックスとして使う場合。
SELECTION-SCREEN BEGIN OF SCREEN 9000 TITLE TEXT-010 AS ...
PARAMETERS P_UNAME TYPE SY-UNAME.
SELECTION-SCREEN END OF SCREEN 9000.
CALL SELECTION-SCREEN '9000' STARTING AT 10 10.
こんな感じで予め定義しておき、[[CALL SELECTION-SCREEN>ABA...
*** 従属画面としての選択画面の登録 [#v18858bb]
SELECTION-SCREEN BEGIN OF SCREEN (Dynpro番号) AS SUBSC...
SELECTION-SCREEN END OF SCREEN (Dynpro番号).
「NO INTERVALS」オプションは[[SELECT-OPTIONS>ABAP/SELECT-...
** サンプル(選択画面のレイアウト) [#nd0422f9]
*** 空白行の挿入 [#q7d47607]
SELECTION-SCREEN SKIP.
この記述だと1行飛ばし、行数指定する場合は下記となる。
SELECTION-SCREEN SKIP n.
nには普通の数値を指定し、ブランク行を入れたいときに。
キュッと固めたりゆとりを持たせたり、それだけで人間工学的...
*** 区切り線の描画 [#n0daa55f]
SELECTION-SCREEN ULINE /(ポジション) (長さ).
スラッシュ以降は省略可、省略した場合はフルで線が引かれる。
SELECTION-SCREEN ULINE MODIF ID (修正グループID).
修正グループを割り当てることで[[MODIFY SCREEN>ABAP/MODIFY...
あまり使わない気もするが、他の選択画面の項目を変更しても...
他のオプションでも利用可能な記述。
こんな感じ。
SELECTION-SCREEN ULINE.
SELECTION-SCREEN ULINE /1(50).
*** テキストの表示 [#v51a0555]
※ポジションと長さの指定とMODIF IDについては上記のULINEと...
SELECTION-SCREEN COMMENT (テキスト) FOR FIELD (選択項...
テキストを、選択画面の項目の見出しとして定義する場合。
SELECTION-SCREEN COMMENT (テキスト) VISIBLE LENGTH (...
定義長で出してしまうと長過ぎる場合に、表示長を調整できる。
実際の書き方は、こんな感じ。
SELECTION-SCREEN COMMENT /1(50) comm1 MODIF ID mg1.
*** 押しボタン [#l518d5c3]
位置と長さの指定、MODIF ID、VISIBLE LENGTHについては上記...
SELECTION-SCREEN PUSHBUTTON (ボタンのテキスト)
ちなみに、[[汎用モジュール>SAPのオブジェクト/汎用モジュー...
動きはテーブルICONTを検索して補足情報を付与する等シンプル...
また、ボタンだけ作っても意味がないので、「ボタンが押され...
SELECTION-SCREEN PUSHBUTTON 2(10) W_DESC3 USER-COMMAND ...
これにより、ボタンが押されると[[AT SELECTION-SCREEN>ABAP/...
USER COMMANDと書くが、[[AT USER-COMMAND>ABAP/AT USER-COMM...
*** 同じ行に色々な要素を入れる [#fdc45648]
標準・アドオンを問わず、同じ行に2つ以上の入力項目があった...
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : P_KUNNR TYPE KNA1-KUNNR.
SELECTION-SCREEN POSITION 30.
...
SELECTION-SCREEN END OF LINE.
こんな感じ。
この書き方をして[[PARAMETERS>ABAP/PARAMETERS]]を宣言して...
*** 選択画面の中にブロックを設ける [#y8cda1a9]
SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME (テキスト...
...
SELECTION-SCREEN END OF BLOCK B01.
単に見た目だけをまとめるだけでなく、ここで定義したブロッ...
例えば、[[会社コード>財務会計/会社コード]]と[[管理領域>管...
たりする。
*** タブを作る [#y553e71e]
[[選択画面>ABAP/選択画面]]にも[[タブストリップ>ABAP/タブ...
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
PARAMETERS :
P1_STR1 TYPE c LENGTH 10,
P1_STR2 TYPE c LENGTH 10,
P1_STR3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 100.
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
PARAMETERS :
P2_STR1 TYPE c LENGTH 10,
P2_STR2 TYPE c LENGTH 10,
P2_STR3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
SELECTION-SCREEN PUSHBUTTON 2(10) W_DESC3 USER-COMMAND ...
SELECTION-SCREEN END OF SCREEN 300.
SELECTION-SCREEN :
BEGIN OF TABBED BLOCK mytab FOR 5 LINES,
TAB (20) W_DESC1 USER-COMMAND UCOM1 DEFAULT SCREEN 1...
TAB (20) W_DESC2 USER-COMMAND UCOM2 DEFAULT SCREEN 2...
TAB (20) W_DESC4 USER-COMMAND UCOM3 DEFAULT SCREEN 3...
END OF BLOCK mytab.
こんな感じで組むと、3つタブのある[[タブストリップ>ABAP/タ...
*** GUIステータスなしでメニューにボタンを追加する [#sf2c2...
TABLES : SSCRFIELDS.
まず、このように[[TABLES>ABAP/TABLES]]でSSCRFIELDSが宣言...
SSCRFIELDS-FUNCTXT_01 = '1st'.
SSCRFIELDS-FUNCTXT_02 = '2nd'.
このように、宣言したSSCRFIELDSの項目FUNCTXT_0nにボタンの...
そうすると、メニューにボタンが有効化されるので、
SELECTION-SCREEN FUNCTION KEY n.
この形の命令で、nには1-5までの数字を割り当てる。
そうすると、nで指定した数値とリンクして、「FC0n」という[[...
この例では、実行ボタンの右隣に「1st」や「2nd」というボタ...
** サンプル(その他の選択画面からのエレメントの使用) [#s...
SELECTION-SCREEN INCLUDE ...
いくつか派生はあるが、基本的にはこんな感じで書いて、文字...
使い回しをしたいシーンは然程多くはないかもしれないが、複...
SELECTION-SCREEN INCLUDE PARAMETERS P_KUNNR.
[[PARAMETERS>ABAP/PARAMETERS]]のInclude。
SELECTION-SCREEN INCLUDE SELECT-OPTIONS S_KUNNR.
[[SELECT-OPTIONSS>ABAP/SELECT-OPTIONS]]のInclude。
SELECTION-SCREEN INCLUDE COMMENT xxx
テキスト等のInclude。
SELECTION-SCREEN INCLUDE PUSHBUTTON xxx
ボタンのInclude。
SELECTION-SCREEN INCLUDE BLOCKS xxx
ブロックのInclude。
** サンプル(論理データベースの選択画面) [#y358871c]
[[論理データベース>SAPのオブジェクト/論理データベース]]で...
通常の記述とは異なるので注意・・・といっても、今となって...
*** 標準選択画面のバージョン [#s3fb06de]
実際の[[論理データベース>SAPのオブジェクト/論理データベー...
SELECTION-SCREEN BEGIN OF VERSION 900 TEXT-900.
SELECTION-SCREEN EXCLUDE SELECT-OPTIONS: KD_AUGDT.
SELECTION-SCREEN END OF VERSION 900.
*** 項目選択 [#i5cf6b0e]
こちらも、KDFより。
SELECTION-SCREEN FIELD SELECTION FOR TABLE LFA1.
FOR NODE xxxの記述法もあり。
*** 動的選択 [#s6d8ffdd]
同じく、KDFより。
SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE BSIK.
ここで宣言しておくと、動的選択で選べる模様。
上記と同じく、FOR NODEが利用可能。
* その他 [#s3712aef]
選択画面の定義自体に関連する命令は、[[PARAMETERS>ABAP/PAR...
その他の画面処理に関連する命令は、[[SET SCREEN>ABAP/SET S...
TUS>ABAP/GET PF-STATUS]]、[[SET TITLEBAR>ABAP/SET TITLEBA...
DIALOG>ABAP/SUPPRESS DIALOG]]、[[SET CURSOR>ABAP/SET CUR...
CONTROLS]]、[[REFRESH CONROL>ABAP/REFRESH CONROL]]などが...
~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)
終了行:
[[選択画面>ABAP/選択画面]]のレイアウトを作ったりいじった...
----
#contents
----
* 概要 [#v3fc8d0b]
** 用法 [#l2f96b3f]
基本的に、[[選択画面>ABAP/選択画面]]で色々やろうと思った...
[[Dynpro>ABAP/Dynpro]]では各パーツをレイアウトエディタで...
凝ったことをやるなら[[Dynpro>ABAP/Dynpro]]で組めよという...
** サンプル(選択画面の登録) [#p1e491a2]
*** Dynproとしての選択画面の登録 [#nbb04e35]
SELECTION-SCREEN BEGIN OF SCREEN (Dynpro番号) TITLE (...
これが最もよくある使い方かと思う。
タイトルは、[[テキストシンボル>ABAP/テキストエレメント]]...
SELECTION-SCREEN BEGIN OF SCREEN (Dynpro番号) AS WINDOW
モーダルダイアログボックスとして使う場合。
SELECTION-SCREEN BEGIN OF SCREEN 9000 TITLE TEXT-010 AS ...
PARAMETERS P_UNAME TYPE SY-UNAME.
SELECTION-SCREEN END OF SCREEN 9000.
CALL SELECTION-SCREEN '9000' STARTING AT 10 10.
こんな感じで予め定義しておき、[[CALL SELECTION-SCREEN>ABA...
*** 従属画面としての選択画面の登録 [#v18858bb]
SELECTION-SCREEN BEGIN OF SCREEN (Dynpro番号) AS SUBSC...
SELECTION-SCREEN END OF SCREEN (Dynpro番号).
「NO INTERVALS」オプションは[[SELECT-OPTIONS>ABAP/SELECT-...
** サンプル(選択画面のレイアウト) [#nd0422f9]
*** 空白行の挿入 [#q7d47607]
SELECTION-SCREEN SKIP.
この記述だと1行飛ばし、行数指定する場合は下記となる。
SELECTION-SCREEN SKIP n.
nには普通の数値を指定し、ブランク行を入れたいときに。
キュッと固めたりゆとりを持たせたり、それだけで人間工学的...
*** 区切り線の描画 [#n0daa55f]
SELECTION-SCREEN ULINE /(ポジション) (長さ).
スラッシュ以降は省略可、省略した場合はフルで線が引かれる。
SELECTION-SCREEN ULINE MODIF ID (修正グループID).
修正グループを割り当てることで[[MODIFY SCREEN>ABAP/MODIFY...
あまり使わない気もするが、他の選択画面の項目を変更しても...
他のオプションでも利用可能な記述。
こんな感じ。
SELECTION-SCREEN ULINE.
SELECTION-SCREEN ULINE /1(50).
*** テキストの表示 [#v51a0555]
※ポジションと長さの指定とMODIF IDについては上記のULINEと...
SELECTION-SCREEN COMMENT (テキスト) FOR FIELD (選択項...
テキストを、選択画面の項目の見出しとして定義する場合。
SELECTION-SCREEN COMMENT (テキスト) VISIBLE LENGTH (...
定義長で出してしまうと長過ぎる場合に、表示長を調整できる。
実際の書き方は、こんな感じ。
SELECTION-SCREEN COMMENT /1(50) comm1 MODIF ID mg1.
*** 押しボタン [#l518d5c3]
位置と長さの指定、MODIF ID、VISIBLE LENGTHについては上記...
SELECTION-SCREEN PUSHBUTTON (ボタンのテキスト)
ちなみに、[[汎用モジュール>SAPのオブジェクト/汎用モジュー...
動きはテーブルICONTを検索して補足情報を付与する等シンプル...
また、ボタンだけ作っても意味がないので、「ボタンが押され...
SELECTION-SCREEN PUSHBUTTON 2(10) W_DESC3 USER-COMMAND ...
これにより、ボタンが押されると[[AT SELECTION-SCREEN>ABAP/...
USER COMMANDと書くが、[[AT USER-COMMAND>ABAP/AT USER-COMM...
*** 同じ行に色々な要素を入れる [#fdc45648]
標準・アドオンを問わず、同じ行に2つ以上の入力項目があった...
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : P_KUNNR TYPE KNA1-KUNNR.
SELECTION-SCREEN POSITION 30.
...
SELECTION-SCREEN END OF LINE.
こんな感じ。
この書き方をして[[PARAMETERS>ABAP/PARAMETERS]]を宣言して...
*** 選択画面の中にブロックを設ける [#y8cda1a9]
SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME (テキスト...
...
SELECTION-SCREEN END OF BLOCK B01.
単に見た目だけをまとめるだけでなく、ここで定義したブロッ...
例えば、[[会社コード>財務会計/会社コード]]と[[管理領域>管...
たりする。
*** タブを作る [#y553e71e]
[[選択画面>ABAP/選択画面]]にも[[タブストリップ>ABAP/タブ...
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
PARAMETERS :
P1_STR1 TYPE c LENGTH 10,
P1_STR2 TYPE c LENGTH 10,
P1_STR3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 100.
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
PARAMETERS :
P2_STR1 TYPE c LENGTH 10,
P2_STR2 TYPE c LENGTH 10,
P2_STR3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
SELECTION-SCREEN PUSHBUTTON 2(10) W_DESC3 USER-COMMAND ...
SELECTION-SCREEN END OF SCREEN 300.
SELECTION-SCREEN :
BEGIN OF TABBED BLOCK mytab FOR 5 LINES,
TAB (20) W_DESC1 USER-COMMAND UCOM1 DEFAULT SCREEN 1...
TAB (20) W_DESC2 USER-COMMAND UCOM2 DEFAULT SCREEN 2...
TAB (20) W_DESC4 USER-COMMAND UCOM3 DEFAULT SCREEN 3...
END OF BLOCK mytab.
こんな感じで組むと、3つタブのある[[タブストリップ>ABAP/タ...
*** GUIステータスなしでメニューにボタンを追加する [#sf2c2...
TABLES : SSCRFIELDS.
まず、このように[[TABLES>ABAP/TABLES]]でSSCRFIELDSが宣言...
SSCRFIELDS-FUNCTXT_01 = '1st'.
SSCRFIELDS-FUNCTXT_02 = '2nd'.
このように、宣言したSSCRFIELDSの項目FUNCTXT_0nにボタンの...
そうすると、メニューにボタンが有効化されるので、
SELECTION-SCREEN FUNCTION KEY n.
この形の命令で、nには1-5までの数字を割り当てる。
そうすると、nで指定した数値とリンクして、「FC0n」という[[...
この例では、実行ボタンの右隣に「1st」や「2nd」というボタ...
** サンプル(その他の選択画面からのエレメントの使用) [#s...
SELECTION-SCREEN INCLUDE ...
いくつか派生はあるが、基本的にはこんな感じで書いて、文字...
使い回しをしたいシーンは然程多くはないかもしれないが、複...
SELECTION-SCREEN INCLUDE PARAMETERS P_KUNNR.
[[PARAMETERS>ABAP/PARAMETERS]]のInclude。
SELECTION-SCREEN INCLUDE SELECT-OPTIONS S_KUNNR.
[[SELECT-OPTIONSS>ABAP/SELECT-OPTIONS]]のInclude。
SELECTION-SCREEN INCLUDE COMMENT xxx
テキスト等のInclude。
SELECTION-SCREEN INCLUDE PUSHBUTTON xxx
ボタンのInclude。
SELECTION-SCREEN INCLUDE BLOCKS xxx
ブロックのInclude。
** サンプル(論理データベースの選択画面) [#y358871c]
[[論理データベース>SAPのオブジェクト/論理データベース]]で...
通常の記述とは異なるので注意・・・といっても、今となって...
*** 標準選択画面のバージョン [#s3fb06de]
実際の[[論理データベース>SAPのオブジェクト/論理データベー...
SELECTION-SCREEN BEGIN OF VERSION 900 TEXT-900.
SELECTION-SCREEN EXCLUDE SELECT-OPTIONS: KD_AUGDT.
SELECTION-SCREEN END OF VERSION 900.
*** 項目選択 [#i5cf6b0e]
こちらも、KDFより。
SELECTION-SCREEN FIELD SELECTION FOR TABLE LFA1.
FOR NODE xxxの記述法もあり。
*** 動的選択 [#s6d8ffdd]
同じく、KDFより。
SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE BSIK.
ここで宣言しておくと、動的選択で選べる模様。
上記と同じく、FOR NODEが利用可能。
* その他 [#s3712aef]
選択画面の定義自体に関連する命令は、[[PARAMETERS>ABAP/PAR...
その他の画面処理に関連する命令は、[[SET SCREEN>ABAP/SET S...
TUS>ABAP/GET PF-STATUS]]、[[SET TITLEBAR>ABAP/SET TITLEBA...
DIALOG>ABAP/SUPPRESS DIALOG]]、[[SET CURSOR>ABAP/SET CUR...
CONTROLS]]、[[REFRESH CONROL>ABAP/REFRESH CONROL]]などが...
~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)
ページ名: