6

単純な ALV グリッドを作成し、グリッドにデータを入力しました。選択画面の後にグリッドが表示されるようになりました。カスタムコンテナを使用しておらず、グリッドを全画面表示しています。

通常はグリッドの上にあるボタンfiltersortなどでツールバーを有効にする ALV グリッド オブジェクトのプロパティはありますか?

これまでのところ、これは私が持っているものです:

TRY.
  cl_salv_table=>factory(
    IMPORTING
      r_salv_table   = gr_alv
    CHANGING
      t_table        = tbl_data
      ).
CATCH cx_salv_msg.
ENDTRY.

* initialize the alv settings - nothing done here for the moment.
PERFORM define_settings USING gr_alv.

* Display the ALV
gr_alv->display( ).
4

4 に答える 4

3

これは、ALV オブジェクト モデルを使用する場合、最初は混乱します。フルスクリーン モードで ALV を使用する場合、プログラムで GUI ステータスを参照し、グリッド インスタンスでメソッド SET_SCREEN_STATUS を使用する必要があります。こちらの SAP ヘルプで説明されています。

GUI ステータス SALV_TABLE_STANDARD を関数グループ SALV_METADATA_STATUS から開始点としてレポートにコピーすると、必要のない関数を削除できます。たとえば、ステータスを ALV_STATUS としてプログラムにコピーした場合は、次のように記述します。

gr_alv->set_screen_status( report   = sy-repid
                           pfstatus = 'ALV_STATUS' ).

ALV 機能の設定にクラスベースのモデルを使用する場合は、グリッド オブジェクトを画面のカスタム コンテナに埋め込む必要があります。

于 2011-07-05T12:17:29.710 に答える
2

次のように、グリッド オブジェクトから CL_SALV_FUNCTIONS_LIST のインスタンスを取得する必要があるようです。

data: lr_func TYPE REF TO CL_SALV_FUNCTIONS_LIST.
lr_func = gr_alv->get_functions( ).
lr_func->set_all( ).

しかし、そこからは、少し作業する必要があるようです。私のアドバイス: クラス CL_SALV_TABLE および CL_SALV_FUNCTIONS_LIST に関する文書を参照してください (つまり、トランザクション SE24 でクラスを表示するときに文書ボタンをクリックしてください)。後者は、何をする必要があるかを正確に伝えます。

(また、ちょっとしたヒント: 処理ロジックを try-catch ブロック内に配置します。初期化が失敗した場合、その例外をキャッチしても、インスタンス化されていないクラスまたは初期化されていないクラスでメソッドの呼び出しを試みる可能性があるためです)。

于 2011-07-04T19:57:23.680 に答える
0
  • 顧客コンテナーを GUI に追加します
  • クラス cl_gui_custom_container のオブジェクトを作成し、コンテナの名前を指定します
  • クラス cl_gui_alv_grid のインスタンスを作成し、カスタム コンテナー オブジェクトを提供します。
  • メソッドset_table_for_first_displayを使用します

これにより、すべてのボタンを含むツールバーが表示されます。set_table_for_first_display メソッドの IT_TOOLBAR_​​EXCLUDING パラメータを使用して、ツールバーに表示するボタンを制御できます。

于 2011-07-04T20:41:18.167 に答える