SAP Eğitiminde ALV Raporları - ABAP Liste Görüntüleyicisi

İçindekiler:

Anonim

Herhangi bir raporun ortak istenen özellikleri "sütun hizalama", sıralama, filtreleme, ara toplamlar, toplamlar vb. Bunları sıfırdan uygulamak için çok fazla kodlama çalışması yapılması gerekir. Bundan kaçınmak için ABAP List Viewer (ALV) adlı bir kavram kullanabiliriz.

Bu eğitimde şunları öğreneceksiniz:

  • Basit Rapor
  • Engelleme Raporu
  • Hiyerarşik Raporlar
  • Görünüm Çeşitleri

Bu raporların her biri, çok fazla çaba harcamadan istenen çıktıyı üretmeye yardımcı olan işlev modülleri sağlar . Onlara detaylı bir şekilde bakalım -

Basit Rapor

Bu rapordaki önemli işlev modülleri şunlardır:

  • Reuse_alv_fieldcatalog_merge
  • Reuse_alv_list_display
  • Reuse_alv_events_get
  • Reuse_alv_grid_display
  • Reuse_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE
Bu işlev modülü, verileri ALV'de görüntülemek için gerekli olan bir alan kataloğunu doldurmak için kullanılır.
Çıktı verileri tek bir sözlük tablosundan alınmışsa ve tüm sütunlar seçilmişse, o zaman yalnızca alan kataloğunu oluşturmamız gerekmez. REUSE_ALV_LIST_DISPLAY'de tablo adını bir parametre olarak (I_structure_name) belirtmek yeterlidir. Ancak diğer durumlarda onu yaratmamız gerekir.
Not: Alan kataloğu, gerekli tüm ayrıntıların dahili tabloya doldurulmasıyla manuel olarak da doldurulabilir.
Önemli parametreler şunlardır:
1. Dışa aktar:

  • I_program_name: rapor kimliği
  • I_internal_tabname: dahili çıktı tablosu
  • I_inclname: dahil veya tüm dinamik formların işlendiği rapor adı.

2. Değiştirme

  • ct_fieldcat: SLIS_T_FIELDCAT_ALV tipinde, SLIS tip havuzunda bildirilen dahili bir tablo.

REUSE_ALV_LIST_DISPLAY
Bu, verileri yazdıran işlev modülüdür.
Önemli parametreler şunlardır:
1. Dışa aktar:

  • I_callback_program: rapor kimliği
  • I_bypassing_buffer: 'X'
  • I_buffer_active: ''
  • I_callback_pf_status_set: bir kullanıcının kendi pf durumunu ayarlayabileceği veya mevcut pf durumunun işlevselliğini değiştirebileceği yordam.
  • I_callback_user_command: fonksiyon kodlarının işlendiği yordam.
  • I_structure adı: sözlük tablosunun adı
  • Is_Layout: raporun düzenini belirleyen yapı
  • It_fieldcat: tüm alanların listesini ve yazdırılacak niteliklerini içeren dahili tablo (bu tablo fonksiyon tarafından otomatik olarak doldurulabilir)
  • It_events: ALV'nin tüm olası olaylarının bir listesini ve bunlara karşılık gelen form adlarını içeren dahili tablo.

2. Tablolar:

  • a. t_outtab: çıktısı alınacak verileri içeren dahili tablo

REUSE_ALV_EVENTS_GET: Bir
liste türü
1 için olası olayların tablosunu döndürür . Import:
Et_Events: Olay tablosu, belirtilen liste türü (sütun 'NAME') için tüm olası CALLBACK olaylarıyla birlikte döndürülür. Callback tarafından olayların işlenebilmesi için 'FORM' alanı doldurulmalıdır. Alan başlatılırsa, olay yok sayılır. Giriş, olay tablosundan okunabilir, 'FORM' alanı doldurulabilir ve giriş, SLIS tip havuzundaki sabitler kullanılarak değiştirilebilir.
2. Dışa Aktar:
I_list_type: 0 = basit liste REUSE_ALV_LIST_DISPLAY
1 = hiyerarşik sıralı liste REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = basit blok listesi REUSE_ALV_BLOCK_LIST_APPEND
3 = hiyerarşik-sıralı blok listesiEND_LIST_HS_BLOCK
REUSE_ALV_GRID_DISPLAY
Sonuçları bir önizleme yerine kılavuzda görüntülemek için ABAP4.6 sürümünden yeni bir işlev.
Parametreler: reuse_alv_list_display ile aynı

Not: Izgara, yüksek hacimleri işleyemez. Sıralama, aşağı kaydırma gibi işlevler, görüntülenecek veri hacmi yüksekse çok fazla kaynak / zaman tüketir. Veri miktarı X ise liste veya ızgara için giderse, ancak geliştiricinin deneyimine dayanarak bir çağrı alması gerektiği gibi net bir kesin tanım yoktur. Emin değilseniz, liste daha iyi bir seçenektir

REUSE_ALV_COMMENTARY_WRITE
Bu, liste için başlıkları ve diğer yorumları yazdırmak için Sayfanın başı olayında kullanılır.
Önemli Parametreler

  • It_list_commentary: slis_t_listheader türü başlıklara sahip dahili tablo.

Bu dahili tabloda üç alan vardır:

  1. Tip: 'H' - başlık, 'S' - seçim, 'A' - eylem
  2. Anahtar: yalnızca typ 'S' olduğunda.
  3. Bilgi: yazdırılacak metin

Engelleme Raporu

Bu basit bir rapor gibi görünür, ancak bu rapor yalnızca sıralama ve filtreleme özelliklerine sahiptir. Çıktı üzerinde birden fazla raporu görüntülemeniz gerekiyorsa bu rapor kullanılır. Teknik olarak, ayrı bloklar olarak görüntülenecek verileri içeren birden fazla dahili tablonuz varsa, ALV'nin blok raporuna gidiyoruz.
Bu raporu oluşturmak için kullanılan önemli işlevler şunlardır:

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT
Bu işlev modülü, varsayılan gui durumunu vb. Ayarlamak için kullanılır. Parametreler reuse_alv_list_display veya reuse_alv_grid_display'de kullanılana benzerdir
REUSE_ALV_BLOCK_LIST_APPEND
Bu işlev modülü verileri bloğa ekler.
Önemli Parametreler 1.
İhracat:

  • is_layout: blok için düzen ayarları
  • it_fieldcat: alan kataloğu
  • I_tabname: tüm olası olayları içeren dahili tablo adı

2. Tablolar:

  • t_outtab: çıktı verilerini içeren dahili tablo.

REUSE_ALV_BLOCK_LIST_DISPLAY
Bu işlev modülü, yukarıdaki işlevin eklediği verileri içeren listeyi görüntüler.
Parametreler: Tüm parametreler isteğe bağlıdır.

Hiyerarşik Raporlar

Hiyerarşik görüntüleme, ilgili verileri görüntülemek için kullanılır. Satış siparişi ve ürün ayrıntıları gibi. Burada satış siparişi ayrıntıları başlık verileri olabilirken, satış siparişindeki öğeler öğe verileri olabilir
Bunun için kullanılan işlev modülü
REUSE_ALV_HIERSEQ_LIST_DISPLAY Export'dur
:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_LAYOUT
  • It_fieldcat
  • It_events
  • I_tabname_header: En yüksek hiyerarşi seviyesinin çıktı verilerini içeren programdaki dahili tablonun adı.
  • I_tabname_item: En düşük hiyerarşi seviyesinin çıktı verilerini içeren programdaki dahili tablonun adı.
  • Is_keyinfo: Bu yapı, iki tabloyu (paylaşılan anahtar) birbirine bağlayan başlık ve öğe tablosu alan adlarını içerir.

Tablolar

  • t_outtab_header: Çıktısı alınacak verileri içeren başlık tablosu
  • t_outtab_item: En düşük hiyerarşi seviyesinin çıktı verilerini içeren programdaki dahili tablonun adı.

Dahili tabloların, yapıların ve sabitlerin tüm tanımları, SLIS adı verilen bir tür havuzunda bildirilir . Bu dahili tablo, REUSE_ALV_FIELDCATALOG_MERGE 'kullanılarak otomatik olarak doldurulabilir.

Görünüm Çeşitleri

  • Görüntüleme varyantları, bir alv çıktısının sıralama kriterleri, filtreleme kriterleri, toplama ve ara toplamlar gibi varsayılan özelliklerini ayarlamak için kullanılır
  • Ekran varyantları kullanıcıya özel ve standart olabilir (standart varyantlar herhangi bir kullanıcı tarafından kullanılabilir)
  • Kaydedilebilecek ekran varyantlarının türü, reuse_alv_list_display / reuse_alv_grid_display işlev modüllerinde iletilen i_save parametresi tarafından kontrol edilir
  • Hangi ekran varyantının kullanılacağını seçmek için seçim ekranında bir seçenek sunabilirsiniz.

Ekran varyantlarının seçilmesi / doğrulanmasıyla ilgili ortak işlev modülleri şunlardır:

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existence

Hepsi ABAP-ALV programlama için!