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.

  • 📋 Tujuan Inti: ABAP List Viewer menyediakan fitur daftar standar melalui modul fungsi siap pakai, sehingga fitur-fitur tersebut tidak perlu diprogram lagi.
  • Katalog Lapangan: REUSE_ALV_FIELDCATALOG_MERGE membangun katalog yang menjelaskan setiap kolom keluaran, dan katalog ini juga dapat diisi secara manual.
  • Daftar dan Kisi-kisi: REUSE_ALV_LIST_DISPLAY mencetak daftar klasik, dan REUSE_ALV_GRID_DISPLAY menampilkan data yang sama dalam kontrol grid.
  • 🧱 Laporan Blok: INIT, APPEND, dan DISPLAY menggabungkan beberapa tabel internal menjadi satu keluaran yang terdiri dari blok-blok terpisah.
  • 🌳 Laporan Hierarkis: REUSE_ALV_HIERSEQ_LIST_DISPLAY menghubungkan tabel header dan tabel item melalui kunci bersama di IS_KEYINFO.
  • 🧰 Tipe Kolam SLIS: Setiap struktur, tipe tabel, dan konstanta yang digunakan oleh ALV klasik dideklarasikan dalam kumpulan tipe SLIS.
  • 💾 Varian Tampilan: Varian menyimpan pengaturan default untuk pengurutan, pemfilteran, dan penjumlahan, dan parameter I_SAVE menentukan apakah pengaturan tersebut spesifik untuk pengguna atau standar.

Laporan ALV masuk SAP ABAP

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:

  1. Ketik : 'H' – header, 'S' – pilihan, 'A' – aksi
  2. Kunci : hanya jika ketik 'S'.
  3. 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

  1. Gunakan kembali_alv_variant_default_get
  2. Gunakan kembali_alv_variant_f4
  3. 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!

Pertanyaan Umum Demo Slot

Modul REUSE termasuk dalam ALV klasik berbasis fungsi. CL_GUI_ALV_GRID adalah kontrol berorientasi objek yang tertanam dalam kontainer khusus pada dynpro, dan menawarkan sel yang dapat diedit serta penanganan peristiwa melalui metode.

Atur DO_SUM di katalog field untuk kolom yang harus dijumlahkan, dan berikan tabel pengurutan dengan SUBTOT diaktifkan untuk kolom yang mengelompokkan baris. Tidak diperlukan kode perhitungan tambahan.

Berikan nama formulir ke I_CALLBACK_USER_COMMAND. Formulir tersebut menerima kode fungsi dan baris yang dipilih, sehingga program dapat membaca catatan dan membuka daftar detail atau transaksi.

Ya. Asisten AI dalam alat pengembangan ABAP menghasilkan pernyataan SELECT, katalog field, dan panggilan REUSE_ALV_GRID_DISPLAY dari deskripsi kolom yang dibutuhkan. Pernyataan SELECT yang dihasilkan masih perlu diperiksa performanya.

Tidak. ALV tetap menjadi output standar dari SAP Laporan GUI. Asisten AI menambahkan nilai di atasnya dengan meringkas daftar panjang, menemukan data yang menyimpang, dan menjawab pertanyaan tentang data yang ditampilkan dalam bahasa yang mudah dipahami.

Ringkaslah postingan ini dengan: