Laporan ALV masuk SAP Tutorial – Penampil Daftar ABAP
⚡ Ringkasan Cerdas
Laporan ALV masuk SAPList Viewer, yang dihasilkan oleh ABAP List Viewer, menyediakan perataan kolom, pengurutan, pemfilteran, total, dan subtotal tanpa perlu pengkodean khusus. Halaman ini menjelaskan tipe daftar sederhana, blok, dan hierarkis, modul fungsi REUSE-nya, dan varian tampilannya.
Apa itu ALV? SAP ABAP?
Fitur umum yang diinginkan dalam setiap laporan adalah "penyelarasan kolom", pengurutan, pemfilteran, subtotal, total, dan lain-lain. Untuk mengimplementasikan fitur-fitur ini dari awal, dibutuhkan banyak upaya pengkodean. Untuk menghindari hal tersebut, kita dapat menggunakan konsep yang disebut ABAP List Viewer (ALV).
Masing-masing laporan ini menyediakan modul fungsi yang membantu dalam menghasilkan keluaran yang diinginkan tanpa banyak usaha. Mari kita lihat secara detail –
ALV klasik menawarkan tiga tipe daftar, dan masing-masing memiliki serangkaian modul fungsi REUSE sendiri:
- Laporan sederhana: satu tabel internal yang ditampilkan sebagai daftar atau kisi.
- Laporan blok: beberapa tabel internal ditampilkan satu di bawah yang lain sebagai blok terpisah.
- Laporan hierarkis: tabel header dan tabel item yang dihubungkan oleh kunci bersama.
Laporan Sederhana
Modul fungsi penting di dalamnya melaporkan adalah -
- Gunakan kembali_alv_fieldcatalog_merge
- Gunakan kembali_alv_list_display
- Gunakan kembali_alv_events_get
- Gunakan kembali_alv_grid_display
- Gunakan kembali_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Modul fungsi ini digunakan untuk mengisi katalog lapangan yang penting untuk menampilkan data di ALV.
Jika data keluaran berasal dari satu tabel kamus dan semua kolom dipilih, maka kita tidak perlu membuat katalog bidang secara eksklusif. Cukup menyebutkan nama tabel sebagai parameter (I_structure_name) di REUSE_ALV_LIST_DISPLAY. Namun dalam kasus lain kita perlu membuatnya.
Catatan: Fieldcatalog juga dapat diisi secara manual dengan mengisi semua detail yang diperlukan ke dalam tabel internal
Parameter penting dalam adalah:
1. Ekspor:
- I_program_name : id laporan
- I_internal_tabname : tabel keluaran internal
- I_inclname : sertakan atau nama laporan tempat semua formulir dinamis ditangani.
2. Berubah
- ct_fieldcat : sebuah meja internal dengan tipe SLIS_T_FIELDCAT_ALV yang dideklarasikan pada tipe pool SLIS.
REUSE_ALV_LIST_DISPLAY
Ini adalah modul fungsi yang mencetak data.
Parameter penting adalah:
1. Ekspor:
- I_callback_program : id laporan
- Saya_melewati_buffer : 'X'
- Saya_buffer_aktif : ' '
- I_callback_pf_status_set : rutin dimana pengguna dapat mengatur status pfnya sendiri atau mengubah fungsi status pf yang ada.
- I_callback_user_command : rutin tempat kode fungsi ditangani.
- I_structure name : nama tabel kamus
- Is_Layout : struktur untuk mengatur tata letak laporan
- It_fieldcat : tabel internal dengan daftar semua field dan atributnya yang akan dicetak (tabel ini dapat diisi secara otomatis oleh fungsi)
- It_events : tabel internal dengan daftar semua kemungkinan kejadian ALV dan nama formulir yang sesuai.
2. Tabel:
- A. t_outtab : tabel internal dengan data yang akan dikeluarkan
REUSE_ALV_EVENTS_GET
Mengembalikan tabel kejadian yang mungkin terjadi untuk tipe daftar aa
1. Impor:
Et_Acara :Tabel kejadian dikembalikan dengan semua kemungkinan kejadian CALLBACK untuk tipe daftar yang ditentukan (kolom 'NAMA'). Agar event dapat diproses oleh Callback, kolom 'FORMULIR' harus diisi. Jika bidang diinisialisasi, acara tersebut diabaikan. Entri dapat dibaca dari tabel kejadian, bidang 'FORMULIR' diisi dan entri dimodifikasi menggunakan konstanta dari kumpulan tipe SLIS.
2. Ekspor:
I_list_type: 0 = daftar sederhana REUSE_ALV_LIST_DISPLAY
1 = daftar hierarkis-sekuensial REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = daftar blokir sederhana REUSE_ALV_BLOCK_LIST_APPEND
3 = daftar blok hierarkis-sekuensial REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
Fungsi baru dari versi ABAP4.6, untuk menampilkan hasil dalam kisi, bukan pratinjau.
Parameter : sama dengan reuse_alv_list_display
Catatan: Grid tidak dapat menangani volume data yang tinggi. Fungsi seperti pengurutan dan pengguliran ke bawah akan menghabiskan banyak sumber daya/waktu jika volume data yang akan ditampilkan tinggi. Tidak ada definisi yang jelas bahwa jika jumlah data X, gunakan daftar atau grid, tetapi pengembang harus mengambil keputusan berdasarkan pengalamannya. Jika ragu, daftar adalah pilihan yang lebih baik.
REUSE_ALV_COMMENTARY_WRITE
Ini digunakan dalam acara Top-of-page untuk mencetak judul dan komentar lain untuk daftar tersebut.
Parameter Penting
- It_list_commentary : Tabel internal dengan judul tipe slis_t_listheader.
Tabel internal ini memiliki tiga bidang:
- Ketik : 'H' – header, 'S' – pilihan, 'A' – aksi
- Kunci : hanya jika ketik 'S'.
- Info : teks yang akan dicetak
Contoh: Laporan Grid ALV Sederhana
Program di bawah ini mengubah modul fungsi di atas menjadi laporan yang berfungsi. Program ini membaca tabel jadwal penerbangan SPFLI, membangun katalog lapangan secara otomatis, dan menampilkan hasilnya dalam bentuk tabel.
REPORT z_alv_demo. TYPE-POOLS: slis. DATA: lt_spfli TYPE STANDARD TABLE OF spfli, lt_fieldcat TYPE slis_t_fieldcat_alv, ls_layout TYPE slis_layout_alv. START-OF-SELECTION. * 1. Read the data into the output table SELECT * FROM spfli INTO TABLE lt_spfli. * 2. Build the field catalog from the dictionary structure CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = sy-repid i_internal_tabname = 'LT_SPFLI' i_structure_name = 'SPFLI' CHANGING ct_fieldcat = lt_fieldcat. * 3. Set the layout and display the grid ls_layout-zebra = 'X'. ls_layout-colwidth_optimize = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid is_layout = ls_layout it_fieldcat = lt_fieldcat i_save = 'A' TABLES t_outtab = lt_spfli.
Tiga parameter memegang sebagian besar pekerjaan. I_STRUCTURE_NAME memungkinkan katalog bidang diturunkan dari kamus, sehingga tidak ada kolom yang dijelaskan secara manual. IS_LAYOUT mengaktifkan baris bergaris dan lebar kolom yang dioptimalkan. I_SAVE = 'A' memungkinkan varian tampilan khusus pengguna dan standar untuk disimpan dari daftar yang sudah jadi.
Blokir Laporan
Ini tampak seperti laporan sederhana tetapi laporan ini hanya memiliki fitur sortir dan filter. Laporan ini digunakan jika Anda harus menampilkan lebih dari satu laporan pada output. Secara teknis, jika Anda memiliki beberapa tabel internal dengan data yang akan ditampilkan sebagai blok terpisah, maka kita akan menggunakan laporan blok ALV.
Fungsi penting yang digunakan untuk membuat laporan ini adalah:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Modul fungsi ini digunakan untuk mengatur status gui default, dll. Parameternya mirip dengan yang digunakan di reuse_alv_list_display atau reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Modul fungsi ini menambahkan data ke blok.
Parameter Penting
1.Ekspor :
- is_layout : pengaturan tata letak untuk blok
- it_fieldcat : katalog lapangan
- I_tabname : nama tabel internal dengan semua kemungkinan kejadian
2.Tabel :
- t_outtab : tabel internal dengan data keluaran.
REUSE_ALV_BLOCK_LIST_DISPLAY
Modul fungsi ini menampilkan daftar dengan data yang ditambahkan oleh fungsi di atas.
Parameter : Semua parameter bersifat opsional.
Laporan Hirarkis
Tampilan hierarkis digunakan untuk menampilkan data yang saling terkait. Seperti detail pesanan penjualan dan item. Di sini, detail pesanan penjualan dapat berupa data header sedangkan item dalam pesanan penjualan dapat berupa data item.
Modul fungsi yang digunakan untuk ini adalah
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Ekspor:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- Itu_fieldcat
- Ini_acara
- I_tabname_header : Nama tabel internal dalam program yang berisi data keluaran tingkat hierarki tertinggi.
- I_tabname_item : Nama tabel internal dalam program yang berisi data keluaran tingkat hierarki terendah.
- Is_keyinfo : Struktur ini berisi nama field header dan item tabel yang menghubungkan dua tabel (kunci bersama).
Meja
- t_outtab_header : Tabel header dengan data yang akan dikeluarkan
- t_outtab_item : Nama tabel internal dalam program yang berisi data keluaran tingkat hierarki terendah.
Semua definisi tabel internal, struktur, dan konstanta dideklarasikan dalam kumpulan tipe yang disebut SLIS. Tabel internal ini dapat diisi secara otomatis dengan menggunakan REUSE_ALV_FIELDCATALOG_MERGE'.
Varian Tampilan
- Varian tampilan digunakan untuk mengatur properti default dari keluaran alv seperti kriteria pengurutan, kriteria pemfilteran, penjumlahan dan subtotal, dll.
- Varian tampilan dapat spesifik dan standar pengguna (varian standar dapat digunakan oleh pengguna mana pun)
- Jenis varian tampilan yang dapat disimpan dikendalikan oleh parameter i_save yang dilewatkan dalam modul fungsi reuse_alv_list_display / reuse_alv_grid_display
- Anda dapat memberikan opsi pada layar pemilihan untuk memilih varian tampilan apa yang akan digunakan
Modul fungsi umum yang terkait dengan pemilihan/validasi varian tampilan adalah
- Gunakan kembali_alv_variant_default_get
- Gunakan kembali_alv_variant_f4
- Gunakan kembali_alv_variant_existence
💡 Kiat: Berikan nilai I_SAVE = 'U' untuk hanya mengizinkan varian khusus pengguna, 'X' untuk hanya varian standar, dan 'A' untuk keduanya. Nilai kosong akan memblokir penyimpanan sama sekali.
Itu saja ABAP – Pemrograman ALV!

