このトピックでは、ツールバー関連のプログラミングを取り上げて説明します。

機能固有のボタンを追加関連技術

自動的に設定される選択画面の 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.