このトピックでは、ツールバー関連のプログラミングを取り上げて説明します。
機能固有のボタンを追加
関連技術
自動的に設定される選択画面の GUI ステータスでは、 アプリケーションツールバーに無効な 押ボタンが 5 つあり、これらに機能コード FC01 から FC05 までが割り当てられ ています。この命令を使用すると、機能コード FC0n の押ボタンが有効化されます。 n には 1 と 5 の間にある値を入力しなければなりません。 押ボタンを使用できるようにするには、 TABLES 命令を使用して、ABAP ディクショナリに由来する構造 SSCRFIELDS の インタ フェース作業領域を宣言しなければなりません。 選択画面を呼び出す前にインタフェース領域 sscrfields のコンポーネント functxt_0n にテキスト が割り当てられていると、 このテキストが該当の押ボ タン上に表示されます。割 り当てられていないと、押 ボタンにテキストは表示されません。
サンプル
SAP標準のMIR5請求書一覧照会トランザクションのエキスパートモード機能の実装を例として解説します。 * 画面イメージ * 機能概要 「エキスパートモード」ボタンを押下により、エキスパートモードの表示/非表示を切り替える * 実装詳細 ①選択画面の定義に対象機能コードのボタンを有効にする
SELECTION-SCREEN FUNCTION KEY 1.
②INITIALIZATIONイベントブロックでボタンの初期表示テキストを設定
sscrfields-functxt_01 = text-001. "エキスパートモード
③AT SELECTION /AT USER-COMMANDイベントブロックでボタン押下イベントを処理
CASE sscrfields-ucomm. WHEN 'FC01'. IF status_expert = c_hide."元々エキスパートモードが閉じれれた場合 status_expert = c_show. "エキスパートモードフラグをONにする sscrfields-functxt_01 = text-007."ボタンテキストを「エキスパートモード非表示」に ELSE. "元々エキスパートモードがオープンれれた場合 status_expert = c_hide."エキスパートモードフラグをOFFにする sscrfields-functxt_01 = text-001. "ボタンテキストを「エキスパートモード」に ENDIF. ENDCASE.
④AT SELECTION-SCREEN OUTPUTイベントブロックでエキスパートモード項目の表示/非表示を切り替え
LOOP AT SCREEN. CASE screen-group1. WHEN 'F'. IF status_expert = c_show. screen-active = 1. SET CURSOR FIELD 'PA_FIDOC'. ELSE. screen-active = 0. ENDIF. MODIFY SCREEN. ENDCASE. ENDLOOP.