ABAP
ABAPグリッドリストビューア(ALV)
サーチ…
ALVの作成と表示
この例では、 cl_salv_tableクラスを使用して最も単純なALV作成を示し、追加の書式設定オプションは示しません。追加の書式設定オプションは、 TRY ENDTRYブロックの後で、 alv->display( )メソッド呼び出しの前に含まれます。
ALV作成に対するABAPオブジェクトアプローチを使用する後続のすべての例では、この例を出発点として使用します。
DATA: t_spfli TYPE STANDARD TABLE OF spfli,
alv TYPE REF TO cl_salv_table,
error_message TYPE REF TO cx_salv_msg.
" Fill the internal table with example data
SELECT * FROM spfli INTO TABLE t_spfli.
" Fill ALV object with data from the internal table
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = alv
CHANGING
t_table = t_spfli ).
CATCH cx_salv_msg INTO error_message.
" error handling
ENDTRY.
" Use the ALV object's display method to show the ALV on the screen
alv->display( ).
ALV列幅を最適化する
この例では、列見出しとデータが切り捨てられないように列幅を最適化する方法を示します。
alv->get_columns( )->set_optimize( ).
ALV内の列を非表示にする
この例では、 MANDT (クライアント)フィールドをALVから隠しています。これが機能するには、 get_column( )渡されるパラメータを大文字にする必要があることに注意してください。
alv->get_columns( )->get_column( 'MANDT' )->set_visible( if_salv_c_bool_sap=>false ).
ALVの列見出しの名前を変更する
列テキストは、列の水平サイズ変更時に変更されることがあります。これを達成するには3つの方法があります:
| メソッド名 | 見出しの最大長 |
|---|---|
set_short_text | 10 |
set_medium_text | 20 |
set_long_text | 40 |
次の例は、3つすべての使用法を示しています。 columnオブジェクトは、 alv->get_columns( )->get_column( 'DISTID' )の結果への参照として宣言され、インスタンス化されます。列名はすべて大文字でなければなりません 。これは、このメソッド連鎖が、列見出しが変更されるたびに実行されるのではなく、インスタンス化で一度だけ呼び出されるようにするためです。
DATA column TYPE REF TO cl_salv_column.
column = alv->get_columns( )->get_column( 'DISTID' ).
column->set_short_text( 'Dist. Unit' ).
column->set_medium_text( 'Unit of Distance' ).
column->set_long_text( 'Mass Unit of Distance (kms, miles)' ).
ALVツールバーの機能を有効にする
次のメソッド呼び出しでは、ソート、フィルタリング、データのエクスポートなど、多くの高度な機能を使用できます。
alv->get_functions( )->set_all( ).
ALVで他のすべての行ストライピングを有効にする
このメソッドは、連続した行に背景色の濃淡を交互に表示することによって可読性を向上させます。
alv->get_display_settings( )->set_striped_pattern( if_salv_c_bool_sap=>true ).
表示されるALVのタイトルの設定
デフォルトでは、ALVが表示されているとき、一番上のタイトルはプログラム名にすぎません。この方法では、最大70文字のタイトルを設定できます。次の例は、表示されるレコードの数を表示する動的タイトルを設定する方法を示しています。
alv->get_display_settings( )->set_list_header( |Flight Schedule - { lines( t_spfli ) } records| ).