Rapoartele ALV în SAP Tutorial – ABAP List Viewer

Caracteristicile comune dorite ale oricărui raport sunt „alinierea coloanelor”, sortarea, filtrarea, subtotalurile, totalurile etc. Pentru a le implementa de la zero, trebuie depus mult efort de codare. Pentru a evita acest lucru, putem folosi un concept numit ABAP List Viewer (ALV).

Fiecare dintre aceste rapoarte oferă module funcţionale care ajută la producerea rezultatului dorit fără prea mult efort. Să le privim în detaliu -

Raport simplu

Module funcționale importante în acestea raportează sunteți -

  • Reuse_alv_fieldcatalog_merge
  • Reuse_alv_list_display
  • Reuse_alv_events_get
  • Reuse_alv_grid_display
  • Reuse_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE

Acest modul funcțional este utilizat pentru a completa un catalog de câmp, care este esențial pentru afișarea datelor în ALV.

Dacă datele de ieșire provin dintr-un singur tabel de dicționar și toate coloanele sunt selectate, atunci nu trebuie să creăm exclusiv catalogul de câmp. Este suficient să menționați numele tabelului ca parametru (I_structure_name) în REUSE_ALV_LIST_DISPLAY. Dar în alte cazuri trebuie să-l creăm.

Notă: Fieldcatalog poate fi completat manual și prin completarea tuturor detaliilor necesare în tabelul intern

Parametrii importanți sunt:

1. Export:

  • I_program_name : ID raport
  • I_internal_tabname : tabelul intern de ieșire
  • I_inclname : include sau numele raportului în care sunt gestionate toate formularele dinamice.

2. Schimbarea

  • ct_fieldcat : an masa interioara cu tipul SLIS_T_FIELDCAT_ALV care este declarat în pool-ul de tipuri SLIS.

REUSE_ALV_LIST_DISPLAY

Acesta este modulul funcțional care imprimă datele.

Parametrii importanți sunt:

1. Export:

  • I_callback_program : ID raport
  • I_bypassing_buffer : „X”
  • I_buffer_active : ' '
  • I_callback_pf_status_set : rutină în care un utilizator își poate seta propriul statut pf sau poate modifica funcționalitatea stării pf existente.
  • I_callback_user_command : rutină în care sunt gestionate codurile de funcție.
  • I_structure name : numele tabelului de dicționar
  • Is_Layout : structură pentru a seta aspectul raportului
  • It_fieldcat : tabel intern cu lista tuturor câmpurilor și atributele acestora care urmează să fie tipărite (acest tabel poate fi completat automat de funcție)
  • It_events : tabel intern cu o listă a tuturor evenimentelor posibile ale ALV și numele formelor corespunzătoare.

2. Tabele:

  • A. t_outtab : tabel intern cu datele de ieșit

REUSE_ALV_EVENTS_GET:

Returnează tabelul cu evenimente posibile pentru un tip de listă

1. Import:

Et_Events :Tabelul de evenimente este returnat cu toate evenimentele CALLBACK posibile pentru tipul de listă specificat (coloana „NUME”). Pentru ca evenimentele să fie procesate de apel invers, câmpul „FORM” al acestora trebuie completat. Dacă câmpul este inițializat, evenimentul este ignorat. Intrarea poate fi citită din tabelul de evenimente, câmpul „FORM” completat și intrarea modificată folosind constante din pool-ul de tip SLIS.

2. Export:

I_list_type: 0 = listă simplă REUSE_ALV_LIST_DISPLAY

1 = lista ierarhică-secvențială REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = listă simplă de blocare REUSE_ALV_BLOCK_LIST_APPEND

3 = listă de blocare ierarhică-secvențială REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_GRID_DISPLAY

O nouă funcție din versiunea ABAP4.6, pentru a afișa rezultatele în grilă, mai degrabă decât o previzualizare.

Parametri: la fel ca reuse_alv_list_display

Notă: Grid nu poate gestiona volume mari. Funcții precum sortarea, derularea în jos consumă o mulțime de resurse / timp dacă volumul de date care trebuie afișat este mare. Nu există o definiție clară, astfel încât, dacă cantitatea de date este X, mergeți pentru listă sau grilă, dar dezvoltatorul trebuie să accepte un apel pe baza experienței sale. Dacă nu sunteți sigur, atunci lista este cea mai bună opțiune

REUSE_ALV_COMMENTARY_WRITE

Acesta este utilizat în evenimentul Începutul paginii pentru a tipări titlurile și alte comentarii pentru listă.

Parametri importanți

  • It_list_commentary : Tabel intern cu titlurile de tip slis_t_listheader.

Acest tabel intern are trei câmpuri:

  1. Tip: „H” – antet, „S” – selecție, „A” – acțiune
  2. Cheie: numai când typ este „S”.
  3. Info: textul de tipărit

Raport de blocare

Acesta arată ca un raport simplu, dar acest raport are doar caracteristicile de sortare și filtrare. Acest raport este utilizat dacă trebuie să afișați mai multe rapoarte la ieșire. Tehnic vorbind, dacă aveți mai multe tabele interne cu date care urmează să fie afișate ca blocuri separate, atunci mergem pentru raportul de bloc al ALV.

Funcțiile importante utilizate pentru crearea acestui raport sunt:

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT

Acest modul de funcție este utilizat pentru a seta starea implicită a UI etc. Parametrii sunt similari cu cel utilizat în reuse_alv_list_display sau reuse_alv_grid_display

REUSE_ALV_BLOCK_LIST_APPEND

Acest modul funcțional adaugă datele la bloc.

Parametri importanți

1. Export:

  • is_layout : setări de aspect pentru bloc
  • it_fieldcat : catalog de câmp
  • I_tabname : numele intern al tabelului cu toate evenimentele posibile

2.Tabelele:

  • t_outtab : tabel intern cu date de ieșire.

REUSE_ALV_BLOCK_LIST_DISPLAY

Acest modul funcțional afișează lista cu datele adăugate de funcția de mai sus.

Parametri: Toți parametrii sunt opționali.

Rapoarte ierarhice

Afișarea ierarhică este utilizată pentru afișarea datelor care sunt legate. Cum ar fi comanda de vânzare și detaliile articolului. Aici detaliile comenzii de vânzare pot fi datele din antet, în timp ce articolele din comanda de vânzare pot fi datele articolului

Modulul funcțional utilizat pentru aceasta este

REUSE_ALV_HIERSEQ_LIST_DISPLAY

export:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_LAYOUT
  • It_fieldcat
  • It_evenimente
  • I_tabname_header : Numele tabelului intern din program care conține datele de ieșire de la cel mai înalt nivel ierarhic.
  • I_tabname_item : Numele tabelului intern din program care conține datele de ieșire ale celui mai jos nivel ierarhic.
  • Is_keyinfo : Această structură conține numele câmpurilor de antet și tabel de articole care leagă cele două tabele (cheie partajată).

Mese

  • t_outtab_header : Tabel de antet cu date de scos
  • t_outtab_item : Numele tabelului intern din program care conține datele de ieșire ale celui mai jos nivel ierarhic.

Toate definițiile tabelelor interne, structurilor și constantelor sunt declarate într-un tip-pool numit SLIS. Acest tabel intern poate fi completat automat utilizând REUSE_ALV_FIELDCATALOG_MERGE'.

Variante de afișare

  • Variantele de afișare sunt utilizate pentru a seta proprietățile implicite ale unei ieșiri alv, cum ar fi criteriile de sortare, criteriile de filtrare, totalizarea și subtotalizarea etc.
  • Variantele de afișare pot fi specifice utilizatorului și standard (variantele standard pot fi utilizate de orice utilizator)
  • Tipul de variante de afișare care pot fi salvate este controlat de parametrul i_save care este transmis în modulele funcționale reuse_alv_list_display / reuse_alv_grid_display
  • Puteți oferi o opțiune pe ecranul de selecție pentru a selecta varianta de afișare care va fi utilizată

Modulele funcționale comune legate de selectarea/validarea variantelor de afișare sunt

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existență

Asta e tot pentru ABAP – Programare ALV!