Belajar ABAP Part 9: ALV (ABAP List Viewer)
ALV (ABAP List Viewer) adalah toolkit standar SAP untuk menampilkan data tabel secara rapi dan interaktif — lengkap dengan fitur sorting, filtering, layout, export, dan event handling. Di artikel ini kita bahas tipe ALV yang sering dipakai, contoh kode, cara menambahkan tombol custom, field catalog manual, dan demo embed-ready.
Field Catalog di ALV
Field catalog berfungsi sebagai “peta” kolom ALV: menentukan label, panjang kolom, alignment, apakah kolom bisa disortir, dll. Field catalog ini wajib di REUSE_ALV_GRID_DISPLAY
dan CL_GUI_ALV_GRID
, sedangkan CL_SALV_TABLE
otomatis membangun dari struktur.
Contoh Lengkap Field Catalog Manual
REPORT z_alv_fieldcat.
TABLES: mara.
DATA: gt_fieldcat TYPE lvc_t_fcat,
gs_fieldcat TYPE lvc_s_fcat,
gt_data TYPE TABLE OF mara.
START-OF-SELECTION.
SELECT * FROM mara INTO TABLE gt_data UP TO 20 ROWS.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'MATNR'.
gs_fieldcat-coltext = 'Material'.
gs_fieldcat-outputlen = 18.
gs_fieldcat-key = abap_true.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'MTART'.
gs_fieldcat-coltext = 'Material Type'.
gs_fieldcat-outputlen = 10.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'MATKL'.
gs_fieldcat-coltext = 'Material Group'.
gs_fieldcat-outputlen = 12.
APPEND gs_fieldcat TO gt_fieldcat.
" ALV grid display dengan field catalog manual
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = gt_fieldcat
TABLES
t_outtab = gt_data.
Demo ALV Embed-Ready
Supaya pembaca bisa coba step by step, berikut demo ALV ditampilkan dengan kombinasi <details>
di Blogspot. Klik untuk expand:
🔽 Demo ALV dengan CL_SALV_TABLE (Klik untuk expand)
Preview: Program ini menampilkan data MARA ke ALV dengan CL_SALV_TABLE.
REPORT z_demo_alv_salv.
DATA: lt_data TYPE TABLE OF mara,
lo_alv TYPE REF TO cl_salv_table.
START-OF-SELECTION.
SELECT * FROM mara INTO TABLE lt_data UP TO 30 ROWS.
cl_salv_table=>factory(
IMPORTING r_salv_table = lo_alv
CHANGING t_table = lt_data ).
lo_alv->display( ).
🔽 Demo ALV dengan Field Catalog + REUSE_ALV_GRID_DISPLAY
Preview: Program ini menampilkan MARA dengan custom kolom (MATNR, MTART, MATKL).
REPORT z_demo_alv_fcat.
TYPES: BEGIN OF ty_data,
matnr TYPE mara-matnr,
mtart TYPE mara-mtart,
matkl TYPE mara-matkl,
END OF ty_data.
DATA: gt_data TYPE TABLE OF ty_data,
gt_fieldcat TYPE lvc_t_fcat,
gs_fieldcat TYPE lvc_s_fcat.
START-OF-SELECTION.
SELECT matnr mtart matkl
FROM mara
INTO TABLE gt_data
UP TO 50 ROWS.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'MATNR'.
gs_fieldcat-coltext = 'Material'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'MTART'.
gs_fieldcat-coltext = 'Material Type'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = 'MATKL'.
gs_fieldcat-coltext = 'Material Group'.
APPEND gs_fieldcat TO gt_fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = gt_fieldcat
TABLES
t_outtab = gt_data.
Kesimpulan
Dengan Field Catalog, kita bisa kontrol penuh tampilan ALV. Sementara itu, demo embed-ready memudahkan pembaca coba langsung script pendek. Untuk program baru, gunakan CL_SALV_TABLE
bila kebutuhan sederhana; gunakan Field Catalog + ALV Grid bila butuh customisasi lanjut.
👉 Lanjut ke: Belajar ABAP Part 10: OOP di ABAP — Class, Object, Inheritance, Exception
Comments
Post a Comment