【学習】SAP:ABAPのSE38で選択画面の作成をしてみた【初学者向けです】

CODE


SAPのABAP初学者
「SAPのABAPを学習しています。そこで、SE38を使って、選択画面を学習しようと思っています。何か手を動かしながら学習出来る記事ってないかな?インプットだけじゃなくてアウトプットもしたい!!!」

こういった疑問に答えます。

今日のポイント

  • ①練習1-単一入力
  • ②練習2-複数入力
  • ③練習3-各種ボタン

本日の完成図

完成コード

*----------------------------------------------------------------------*
*   プログラム名称        : 宿題1
*   プログラムID      : PRACTICE
*   概要             : 選択画面の作成
*  
*   作成              : 2020.XX.XX BY TANAKA TARO
*&---------------------------------------------------------------------*
*   変更               :
*   変更理由           :
*&---------------------------------------------------------------------*
REPORT PRACTICE.
*----------------------------------------------------------------------*
*   DATA定義
*----------------------------------------------------------------------*

*   変数 内部テーブル 内部テーブルヘッダ
DATA:
	GW_VBELN TYPE VBAP-VBELN, "販売伝票
	GW_POSNR TYPE VBAP-POSNR, "販売伝票明細
	GW_MATNR TYPE MARC-MATNR, "品目コード
	GW_WERKS TYPE MARC-WERKS. "プラント

*----------------------------------------------------------------------*
*   選択画面定義 PARAMETERS/SELECT-OPTIONS定義
*----------------------------------------------------------------------*

* 選択画面の定義

*パラメータ

SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-S01.
PARAMETERS:
	P_EBELN TYPE EKPO-EBELN DEFAULT 123456, "購買伝票
	P_EBELP TYPE EKPO-EBELP OBLIGATORY.	"購買伝票明細
SELECTION-SCREEN END OF BLOCK BL1.

SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-S02.
SELECT-OPTIONS:
	S_VBELN FOR GW_VBELN,				"販売伝票
	S_POSNR FOR GW_POSNR NO-EXTENSION NO INTERVALS, "販売伝票明細
	S_MATNR FOR GW_MATNR NO INTERVALS,		"品目コード
	S_WERKS FOR GW_WERKS NO-EXTENSION.		"プラント			
SELECTION-SCREEN END OF BLOCK BL2.

SELECTION-SCREEN BEGIN OF BLOCK BL3 WITH FRAME TITLE TEXT-S03.
PARAMETERS:
	C_CHECK1 AS CHECKBOX,			"チェックボックス1
	C_CHECK2 AS CHECKBOX DEFAULT 'X'.	"チェックボックス2
PARAMETERS:
	R_RADIO1 RADIOBUTTON GROUP RD1,		"ラジオボタン1
	R_RADIO2 RADIOBUTTON GROUP RD1.		"ラジオボタン2
SELECTION-SCREEN END OF BLOCK BL3.

①練習1-単一入力

こちらを作成します。

こちらの部分のコードです。

SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-S01.
PARAMETERS:
	P_EBELN TYPE EKPO-EBELN DEFAULT 123456, "購買伝票
	P_EBELP TYPE EKPO-EBELP OBLIGATORY.	"購買伝票明細
SELECTION-SCREEN END OF BLOCK BL1.

コードの解説です。

⑴枠の作成

  • 枠:SELECTION-SCREEN BEGIN OF BLOCK ブロック名で始める
  • 枠:SELECTION-SCREEN END OF BLOCK ブロック名で閉じる
  • タイトル:WITH FRAME TITLE TEXT-SXX(Xは数字)


SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-S01.
------------コード記述------------
SELECTION-SCREEN END OF BLOCK BL1.

⑵最初から「123456」が入っている設定方法

  • フォーム:PRAMETERS:で作成する
  • 構文:「変数名 TYPE データ型. 」
  • 初期入力:「DEFAULT 任意で記述」
PARAMETERS:
	P_EBELN TYPE EKPO-EBELN DEFAULT 123456, "購買伝票

⑶「入力必須」にする設定方法

  • 構文:「変数名 TYPE データ型. 」
  • 入力必須:「OBLIGATORY」を使う
P_EBELP TYPE EKPO-EBELP OBLIGATORY.	"購買伝票明細

②練習2-複数入力

こちらを作成します。

こちらの部分のコードです。

DATA:
	GW_VBELN TYPE VBAP-VBELN, "販売伝票
	GW_POSNR TYPE VBAP-POSNR, "販売伝票明細
	GW_MATNR TYPE MARC-MATNR, "品目コード
	GW_WERKS TYPE MARC-WERKS. "プラント

SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-S02.
SELECT-OPTIONS:
	S_VBELN FOR GW_VBELN,				"販売伝票
	S_POSNR FOR GW_POSNR NO-EXTENSION NO INTERVALS, "販売伝票明細
	S_MATNR FOR GW_MATNR NO INTERVALS,		"品目コード
	S_WERKS FOR GW_WERKS NO-EXTENSION.		"プラント			
SELECTION-SCREEN END OF BLOCK BL2.

コードの解説です。

⑴枠の作成

  • 枠:SELECTION-SCREEN BEGIN OF BLOCK ブロック名で始める
  • 枠:SELECTION-SCREEN END OF BLOCK ブロック名で閉じる
  • タイトル:WITH FRAME TITLE TEXT-SXX(Xは数字)
SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-S02.
------------コード記述------------
SELECTION-SCREEN END OF BLOCK BL2.

⑵複数入力の作成

  • 複数入力:SELECT-OPTIONSを使う
  • FORの後:DATAで定義した「GW_変数名」を使う
  • NO-EXTENSION:「複数選択の禁止」を意味する
  • NO INTERVALS:「2つめの項目が非表示」になる
DATA:
	GW_VBELN TYPE VBAP-VBELN, "販売伝票
	GW_POSNR TYPE VBAP-POSNR, "販売伝票明細
	GW_MATNR TYPE MARC-MATNR, "品目コード
	GW_WERKS TYPE MARC-WERKS. "プラント

SELECT-OPTIONS:
	S_VBELN FOR GW_VBELN,				"販売伝票
	S_POSNR FOR GW_POSNR NO-EXTENSION NO INTERVALS, "販売伝票明細
	S_MATNR FOR GW_MATNR NO INTERVALS,		"品目コード
	S_WERKS FOR GW_WERKS NO-EXTENSION.		"プラント

③練習3-各種ボタン

こちらを作成します。

こちらの部分のコードです。

SELECTION-SCREEN BEGIN OF BLOCK BL3 WITH FRAME TITLE TEXT-S03.
PARAMETERS:
	C_CHECK1 AS CHECKBOX,			"チェックボックス1
	C_CHECK2 AS CHECKBOX DEFAULT 'X'.	"チェックボックス2
PARAMETERS:
	R_RADIO1 RADIOBUTTON GROUP RD1,		"ラジオボタン1
	R_RADIO2 RADIOBUTTON GROUP RD1.		"ラジオボタン2
SELECTION-SCREEN END OF BLOCK BL3.

⑴枠の作成

  • 枠:SELECTION-SCREEN BEGIN OF BLOCK ブロック名で始める
  • 枠:SELECTION-SCREEN END OF BLOCK ブロック名で閉じる
  • タイトル:WITH FRAME TITLE TEXT-SXX(Xは数字)
SELECTION-SCREEN BEGIN OF BLOCK BL3 WITH FRAME TITLE TEXT-S03.
------------コード記述------------
SELECTION-SCREEN END OF BLOCK BL3.

⑵各種ボタンの作成

  • チェックボックス:「C_変数名(8文字以内) AS CHECKBOX」を使う
  • チェックボックス:最初からチェックを入れる「DEFAULT 'X'」を使う
  • ラジオボタン:「R_変数名 RADIOBUTTON GROUP グループ名」を使う
  • ラジオボタン:唯一性を持つので2つ以上作成してかつ、グループ名は共通にする
PARAMETERS:
	C_CHECK1 AS CHECKBOX,			"チェックボックス1
	C_CHECK2 AS CHECKBOX DEFAULT 'X'.	"チェックボックス2
PARAMETERS:
	R_RADIO1 RADIOBUTTON GROUP RD1,		"ラジオボタン1
	R_RADIO2 RADIOBUTTON GROUP RD1.		"ラジオボタン2

こちらで以上になります。以下が完成します。

④まとめ

本日のポイント

  • ①練習1-単一入力
  • ②練習2-複数入力
  • ③練習3-各種ボタン

以上になります。
TwitterYouTubeStand.fmもしているので
フォロー・視聴していただけると幸いです。