SAP Pemrograman Laporan ABAP

⚡ Ringkasan Cerdas

Pemrograman Laporan ABAP membangun program yang dapat dieksekusi untuk memilih, memproses, dan menampilkan sejumlah besar data. SAP Data. Halaman ini menjelaskan penambahan header laporan, layar pemilihan, urutan kejadian, perintah pemformatan, daftar interaktif, dan basis data logis.

  • 📊 Tujuan Inti: Program pelaporan membaca data dari beberapa tabel, memprosesnya, dan menyajikannya sebagai daftar yang dapat diformat, diunduh, atau dikirim melalui pos.
  • 🧾 Jenis Program: Setiap laporan adalah program yang dapat dieksekusi tipe 1, terikat pada area aplikasi, dan sepenuhnya digerakkan oleh peristiwa.
  • 🏁 Penambahan Header: TIDAK ADA JUDUL HALAMAN STANDAR, LINE-UKURAN, LINE-COUNT, dan MESSAGE-ID termasuk dalam pernyataan REPORT pertama.
  • Layar Seleksi: PARAMETERS menerima nilai tunggal, dan SELECT-OPTIONS menerima rentang atau sekumpulan nilai.
  • Urutan Peristiwa: Proses LOAD-OF-PROGRAM, INITIALIZATION, AT SELECTION-SCREEN, START-OF-SELECTION, dan END-OF-SELECTION berjalan dalam urutan tetap.
  • Daftar Interaktif: HIDE menyimpan nilai field dari baris yang dipilih, dan HOTSPOT mengubah field daftar menjadi elemen yang dapat diklik untuk daftar sekunder.
  • Basis Data Logis: Dibuat di SE36, fitur ini menggantikan pernyataan SELECT dengan event GET dan menambahkan pemeriksaan otorisasi terpusat.

SAP Pemrograman Laporan ABAP

Apa itu Pemrograman Laporan ABAP?

SAP-ABAP mendukung dua jenis Program – Program Laporan & Program Dialog. Program Laporan digunakan ketika sejumlah besar data perlu ditampilkan.

Tujuan/Penggunaan Program Laporan

  • Metode ini digunakan ketika data dari sejumlah tabel harus dipilih dan diproses sebelum disajikan.
  • Digunakan ketika laporan memerlukan format khusus.
  • Digunakan ketika laporan harus diunduh SAP ke lembar Excel untuk didistribusikan.
  • Digunakan ketika laporan harus dikirimkan melalui pos ke orang tertentu.

Poin Penting yang Perlu Diperhatikan Tentang Program Laporan

  • Program Laporan selalu merupakan Program yang Dapat Dieksekusi. Jenis Program selalu 1.
  • Setiap program Laporan sesuai dengan Tipe Aplikasi tertentu, misalnya dengan Penjualan & Distribusi, FI – CO, dll. Bisa juga dengan Aplikasi Lintas, yaitu ketik '*'.
  • Pemrograman Laporan adalah pemrograman berbasis peristiwa.
  • Baris pertama program laporan selalu Laporan .
  • Untuk menyembunyikan judul daftar atau nama program tambahannya Tidak Ada Judul Halaman Standar digunakan.
  • Ukuran garis untuk laporan tertentu dapat diatur dengan menggunakan penambahan ukuran garis .
  • Jumlah baris untuk halaman tertentu dapat diatur dengan menggunakan penambahan jumlah baris n(n1). N adalah jumlah baris untuk halaman dan N1 adalah jumlah baris yang dicadangkan untuk footer halaman.
  • Untuk menampilkan informasi atau pesan kesalahan apa pun, kami menambahkan kelas pesan ke program menggunakan tambahan: ID pesan . Kelas pesan dipertahankan di SE91.

Oleh karena itu, program laporan yang ideal harus dimulai dengan:

Report <report name> no standard page heading

line-size <size>

line-count <n(n1)>

message-id <message class>.

Program Pelaporan vs Program Dialog

Kedua jenis program ini berjalan dalam sistem yang sama, namun mereka memecahkan masalah yang berlawanan. Sebuah laporan membaca dan menampilkan data, sedangkan program dialog memungkinkan pengguna untuk mengelola data tersebut melalui layar.

Kriteria Laporan Program Program Dialog
Jenis program Tipe 1, dapat dieksekusi Tipe M, kumpulan modul
Dimulai oleh Nama program atau kode transaksi Hanya kode transaksi
Alur kontrol Peristiwa seperti INISIALISASI dan AWAL SELEKSI Logika alur layar dengan modul PBO dan PAI
Masukan pengguna Layar pemilihan yang dihasilkan Layar yang dirancang di Layar Painter
Penggunaan khas Menampilkan dan mengunduh volume data yang besar Membuat dan mengubah data bisnis

Layar pemilihan adalah tempat laporan mengumpulkan inputnya, jadi akan dijelaskan selanjutnya.

Layar Pemilihan

“Layar pemilihan” adalah layar tempat pengguna menentukan nilai input yang akan digunakan program untuk dijalankan.

Layar pemilihan biasanya dihasilkan dari

  1. Parameter Teknis
  2. Pilih Pilihan

Sintaksis

Selection-screen begin of screen <screen #>
selection-screen begin of block <#>  with frame title <text>
.........
.........
selection-screen end of block <#>
selection-screen end of screen <screen #>

Parameter Teknis

Parameter membantu seseorang melakukan seleksi dinamis. Mereka hanya dapat menampung satu nilai untuk satu siklus eksekusi program.

Sintaksis

Mendefinisikan parameter sebagai tipe data

Parameters p_id(30) type c.

Mendefinisikan parameter seperti bidang tabel.

Parameter p_id like <table name>-<field name>.

Parameter dapat berupa Kotak Centang dan Tombol Radio.

Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>.
Parameters p_id2  radiobutton group <group name>.

Parameter dapat berupa kotak daftar.

Parameter p_id like <table name>-<field name> as listbox

Pilih Pilihan

Select-Option digunakan untuk memasukkan rentang nilai atau sekumpulan nilai ke suatu program

Sintaksis

select-options s_vbeln for vbak-vbeln.

Layar Pemilihan

Tangkapan layar menunjukkan kolom input rendah dan tinggi yang dihasilkan oleh opsi pilihan, bersama dengan tombol pilihan ganda.

Anda juga dapat menentukan opsi pemilihan seperti variabel

select-options s_vbeln for vbak-vbeln no intervals no-extension

Setelah input dikumpulkan, program bereaksi terhadap serangkaian peristiwa yang telah ditentukan.

Peristiwa dalam Program Laporan ABAP

Program laporan ABAP adalah program yang didorong oleh peristiwa. Peristiwa berbeda dalam Program laporan adalah:

Pemuatan program

  • Memicu kejadian terkait dalam sesi internal setelah memuat program tipe 1, M, F, atau S.
  • Juga menjalankan blok pemrosesan terkait satu kali dan hanya satu kali untuk setiap program dan sesi internal.
  • Blok pemrosesan LOAD-OF-PROGRAM memiliki fungsi yang kurang lebih sama untuk sebuah program ABAP tipe 1, M, F atau S sebagai konstruktor untuk kelas di Objek ABAP

Inisialisasi.

  • Acara ini dijalankan sebelum layar pemilihan ditampilkan.
  • Inisialisasi semua nilai.
  • Anda dapat menetapkan nilai berbeda selain nilai default pada layar pemilihan.
  • Anda dapat mengisi layar pilihan Anda dengan beberapa nilai saat runtime.

Di Layar Seleksi.

  • Acara diproses ketika layar pemilihan telah diproses (di akhir PAI).
  • Validasi & Pemeriksaan nilai yang dimasukkan terjadi di sini

Awal Seleksi.

  • Di sini program mulai memilih nilai dari tabel.

Akhir seleksi.

  • Setelah semua data dipilih, acara ini menulis data ke layar.

Acara Interaktif

  • Digunakan untuk pelaporan interaktif. Ini digunakan untuk membuat daftar rinci dari daftar dasar.

💡 Kiat: Pernyataan yang ditulis tanpa kata kunci peristiwa apa pun secara default termasuk dalam START-OF-SELECTION, itulah sebabnya laporan masih berjalan meskipun peristiwa tersebut tidak ada.

Contoh: Program Laporan ABAP Sederhana

Program di bawah ini menggabungkan penambahan, layar pemilihan, dan peristiwa ke dalam satu laporan kerja. Program ini membaca header pesanan penjualan dari VBAK untuk angka yang dimasukkan pada layar pemilihan dan menuliskannya sebagai daftar.

REPORT z_sales_order_list NO STANDARD PAGE HEADING
                          LINE-SIZE 80
                          LINE-COUNT 65(3)
                          MESSAGE-ID zsd.

TABLES: vbak.

DATA: lt_vbak TYPE STANDARD TABLE OF vbak,
      ls_vbak TYPE vbak.

* Selection screen
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
PARAMETERS: p_erdat LIKE vbak-erdat.

INITIALIZATION.
  p_erdat = sy-datum.

AT SELECTION-SCREEN.
  IF p_erdat > sy-datum.
    MESSAGE e001(zsd).          " Date must not lie in the future
  ENDIF.

START-OF-SELECTION.
  SELECT * FROM vbak
    INTO TABLE lt_vbak
    WHERE vbeln IN s_vbeln
      AND erdat LE p_erdat.

END-OF-SELECTION.
  LOOP AT lt_vbak INTO ls_vbak.
    WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr.
    HIDE ls_vbak-vbeln.
  ENDLOOP.

Tiga detail penting perlu diperhatikan. INITIALIZATION mengisi parameter tanggal sebelum layar pemilihan muncul. AT SELECTION-SCREEN memvalidasi entri dan menampilkan pesan dari kelas ZSD. HIDE menyimpan nomor urutan setiap baris yang ditulis, sehingga klik ganda dapat membuat daftar sekunder darinya, yang merupakan subjek bagian selanjutnya.

Memformat laporan

ABAP memungkinkan laporan diformat sesuai keinginan pengguna. Misalnya, “Garis Alternatif” harus muncul dalam warna berbeda dan garis “Total” akan muncul dalam warna Kuning.

Sintaksis

Format Color n

Format Color n Intensified On

n mungkin sesuai dengan berbagai nomor

Harap dicatat bahwa ada tambahan lain beserta formatnya juga

FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF

Pemrograman Laporan Interaktif

  • Dengan menggunakan Pemrograman Interaktif, pengguna dapat secara aktif mengontrol pengambilan dan tampilan data.
  • Digunakan untuk membuat daftar terperinci dari daftar yang sangat sederhana.
  • Data rincinya ditulis pada daftar sekunder.
  • Daftar sekunder mungkin sepenuhnya melapisi layar pertama atau dapat menampilkannya di layar baru
  • Daftar sekunder bisa bersifat interaktif.
  • Daftar pertama juga bisa disebut transaksi.
  • Ada berbagai peristiwa yang terkait dengan pemrograman interaktif.

Beberapa perintah yang digunakan untuk pemrograman interaktif

hotspot

Jika seseorang menyeret mouse ke atas data yang ditampilkan dalam laporan, kursor akan berubah menjadi Tangan dengan jari telunjuk terentang. Hotspot dapat dicapai dengan menggunakan pernyataan FORMAT.

Syntax:      Format Hotspot On (Off).

menyembunyikan

Perintah ini membantu Anda menyimpan nama field berdasarkan mana yang akan diproses lebih lanjut untuk mendapatkan daftar detail. Itu ditulis langsung setelah pernyataan WRITE untuk suatu bidang. Ketika sebuah baris dipilih, nilainya secara otomatis terisi dalam variabel untuk digunakan lebih lanjut.

Syntax:     Hide <field-name>.

Laporan yang membaca banyak tabel dapat mengganti pernyataan SELECT-nya dengan basis data logis, seperti yang dijelaskan di bawah ini.

Basis Data Logis

  • Daripada menggunakan kueri "Pilih", Anda dapat menggunakan database logis untuk mengambil data untuk suatu program.
  • Basis data logis dibuat berdasarkan transaksi SE36
  • Panjang nama database logis bisa mencapai 20 karakter. Ini mungkin dimulai dengan awalan namespace.
  • Data dipilih oleh program lain dan seseorang dapat mengakses data tersebut menggunakan GET perintah yang menempatkan data di area kerja .

Keuntungan database logis dibandingkan kueri Select normal.

  1. Ia menawarkan kondisi pemeriksaan untuk melihat apakah masukannya benar, lengkap, dan masuk akal
  2. Ini berisi pemeriksaan otorisasi pusat untuk akses database
  3. Peningkatan seperti peningkatan kinerja segera berlaku untuk semua laporan yang menggunakan database logis.

Catatan: Karena kompleksitas yang terlibat, database logis tidak digunakan dalam sebagian besar kasus

Pertanyaan Umum Demo Slot

PARAMETERS membuat satu kolom input yang menampung satu nilai. SELECT-OPTIONS membuat tabel internal dengan kolom SIGN, OPTION, LOW, dan HIGH, sehingga menerima rentang, pengecualian, dan beberapa pilihan.

AT LINE-SELECTION bereaksi terhadap klik ganda atau tombol F2, dan AT USER-COMMAND bereaksi terhadap kode fungsi dari menu. Keduanya membangun daftar sekunder dari nilai-nilai yang disimpan oleh HIDE.

Menu daftar menawarkan opsi Daftar, Simpan, dan File Lokal untuk laporan klasik. Sebuah program juga dapat memanggil modul fungsi GUI_DOWNLOAD, dan daftar ALV dapat diekspor ke spreadsheet tanpa perlu pengkodean tambahan.

Ya. Asisten AI dalam alat pengembangan ABAP menghasilkan header REPORT, SELECT-OPTIONS, dan blok event dari deskripsi sederhana daftar yang dibutuhkan. SELECT yang dihasilkan masih perlu ditinjau kinerjanya.

Alat AI meringkas daftar panjang, menyoroti data yang menyimpang, dan menjawab pertanyaan tentang data dalam bahasa yang mudah dipahami. Mengintegrasikan analitik semacam itu biasanya berarti memindahkan daftar klasik ke output berbasis ALV atau Fiori.

Ringkaslah postingan ini dengan: