ABAP⑤ オブジェクト・選択画面
目次
選択画面
画面に表示する名称(ラベル)設定
ABAPメニュー > ジャンプ > テキストエレメント > 選択テキスト
INITIALIZATION.
横位置
SELECTION-SCREEN POSITION 50.
フレーム
SELECTION-SCREEN BEGIN OF BLOCK myBlock WITH FRAME TITLE myTitle1.
~
SELECTION-SCREEN END OF BLOCK myBlock
myTitle1 = ‘AAA’
コメント
SELECTION-SCREEN COMMENT /2(50) myTitle2.
myTitle2 = ‘BBB’
線
SELECTION-SCREEN ULINE.
改行
SELECTION-SCREEN SKIP 2.
テキストボックス
PARAMETERS: Input(10) TYPE C.
範囲入力1
TYPES:
BEGIN OF TypeId,
Name(8) TYPE C,
Age TYPE I,
END OF TypeId.
*内部テーブル型変数を宣言
DATA: MyId TYPE typeId.
SELECT-OPTIONS: myName FOR MyId-Name.
範囲入力2
DATA: MyRow LIKE テーブル名.
SELECT-OPTIONS: myName FOR MyRow-フィールド名.
*LOWER CASE
※入力値が文字列の時に大文字変換しない
SELECT-OPTIONS: myName FOR MyRow-フィールド名 LOWERE CASE.
SELECT-OPTIONS入力値の取得
左右の入力値を文字列連結した値がmyNameに格納される模様。
そして何故か先頭に「IBT」の文字が入る。
myName:「IBT左側入力値 右側入力値」
例:左側=’aaa’ 右側=’bbb’
myName:「IBTaaa bbb」
*通常の使い方
SELECT * FROM INTO myTable WHERE フィールド1 IN myName.
*ラジオボタン
PARAMETERS: Radio1 RADIOBUTTON GROUP R1.
PARAMETERS: Radio2 RADIOBUTTON GROUP R1.
SELECTION-SCREEN COMMENT 横方向位置(横方向長さ) コメント内容変数.
SELECTION-SCREEN COMMENT 10(20) Radio1.
SELECTION-SCREEN COMMENT 10(20) Radio2.
※選択テキストにてRadio1、Radio2 の表示名称を設定しておく
*選択画面の記述は↓これより上に書く事。
START-OF-SELECTION.
ラジオボタンの選択状態の取得
CASE ‘X’.
WHEN Radio1. WRITE:/ ‘Radio1’.
WHEN Radio1. WRITE:/ ‘Radio2’.
ENDCASE.
WRITE:/ Input.
オブジェクト
ALVリスト
汎用モジュール「REUSE_ALV_GRID_DISPLAY」を実行すると画面上に表示される帳票イメージ。
TYPE-POOLS: SLIS.
DATA: myTableTYPE TABLE OF テーブル名.
DATA: myVariant LIKE DISVARIANT.
*表示データ取得
SELECT * FROM テーブル名 INTO TABLE myTable.
*表示バリアント(レイアウト定義情報)設定
myVariant-REPORT = SY-REPID. *プログラム名
myVariant-HANDLE = ‘0001’ *表示バリアント識別キー(何でも可)
CALL FUNCTION REUSE_ALV_GRID_DISPLAY
EXPORTING
I_STRUCTURE_NAME = テーブル名
I_GRID_TITLE = ‘タイトル名’
IS_VARIANT = myVariant *表示バリアント(レイアウト定義情報)
I_SAVE = ‘X’ *表示バリアントを保存するか否か?(X:保存する)
TABLES
T_OUTTAB = myTable
.
IF SY-SUBRC <> 0.
MESSAGE ID ‘SABAPDCU’ TYPE ‘E’ NUMBER 888 WITH ‘エラーが発生しました。’.
ENDIF
※成功すると画面上にヘッダー付きのテーブルのデータが表示される。
ロックオブジェクト
DBを更新する為に、
排他ロック⇒更新⇒排他解除
という工程を経る。
SAPロック
ロックオブジェクトによる理論的なロック。
ABAPディクショナリに定義する。
登録するとロック、ロック解除用の汎用モジュールも生成される。
排他ロック、排他解除には、
この汎用モジュールを使用し、
ロックオブジェクトへのエンキュー/デキューを行う。