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

関連技術

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