Caracteristicile obișnuite dorite ale oricărui raport sunt „alinierea coloanelor”, sortarea, filtrarea, subtotalurile, totalurile etc. Pentru a le implementa de la zero, trebuie depuse multe eforturi de codificare. Pentru a evita acest lucru, putem folosi un concept numit ABAP List Viewer (ALV).
În acest tutorial veți învăța:
- Raport simplu
- Blocați raportul
- Rapoarte ierarhice
- Afișați variantele
Fiecare dintre aceste rapoarte oferă module funcționale care ajută la producerea rezultatului dorit fără eforturi mari. Să le privim în detaliu -
Raport simplu
Modulele funcționale importante din acest raport sunt -
- Reuse_alv_fieldcatalog_merge
- Reutilizați_alv_list_display
- Reuse_alv_events_get
- Reutilizați_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âmpuri. Este suficient pentru a menționa numele tabelului ca parametru (I_structure_name) în REUSE_ALV_LIST_DISPLAY. Dar în alte cazuri trebuie să-l creăm.
Notă: Catalogul de câmp poate fi completat manual, de asemenea, completând toate detaliile necesare în tabelul intern
. Parametrii importanți sunt:
1. Export:
- I_program_name: ID raport
- I_internal_tabname: tabelul de ieșire intern
- I_inclname: include sau numele raportului unde sunt tratate toate formularele dinamice.
2. Schimbarea
- ct_fieldcat: o tabelă internă cu tipul SLIS_T_FIELDCAT_ALV care este declarată în grupul de tip SLIS.
REUSE_ALV_LIST_DISPLAY
Acesta este modulul funcțional care tipărește 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 schimba funcționalitatea stării pf existente.
- I_callback_user_command: rutină în care sunt tratate codurile funcției.
- I_nume structură: numele tabelului dicționar
- Is_Layout: structură pentru a seta aspectul raportului
- It_fieldcat: tabel intern cu lista tuturor câmpurilor și atributelor lor care urmează să fie tipărite (acest tabel poate fi completat automat de funcție)
- It_events: tabel intern cu o listă cu toate evenimentele posibile ale ALV și numele corespunzătoare ale formularelor.
2. Tabelele:
- A. t_outtab: tabel intern cu datele de ieșit
REUSE_ALV_EVENTS_GET:
Returnează tabelul posibilelor evenimente pentru un tip de listă
1. Import:
Et_Events: Tabelul de evenimente este returnat cu toate evenimentele CALLBACK posibile pentru tipul listei specificat (coloana „NAME”). Pentru ca evenimentele să fie procesate de apel invers, trebuie completat câmpul „FORM”. 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 tipul SLIS de pool.
2. Export:
I_list_type: 0 = listă simplă REUSE_ALV_LIST_DISPLAY
1 = listă ierarhică-secvențială REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = listă simplă de blocuri REUSE_ALV_BLOCK_LIST_APPEND
3 = listă de blocuri ierarhic-secvențiale REUSE_ALV_BLOCK_LIST_LIST_DISPLAY
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ă: Grila nu poate gestiona volume mari. Funcții precum sortare, derulare î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, alegeți lista sau grila, dar dezvoltatorul trebuie să ia un apel pe baza experienței sale. Dacă nu sunteți sigur, atunci lista este cea mai bună opțiune
REUSE_ALV_COMMENTARY_WRITE
Aceasta este utilizată în evenimentul din partea de sus a paginii pentru a imprima 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:
- Tip: „H” - antet, „S” - selecție, „A” - acțiune
- Cheie: numai când tipul este „S”.
- Info: textul de imprimat
Blocați raportul
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. Din punct de vedere tehnic, dacă aveți mai multe tabele interne cu date care să fie afișate ca blocuri separate, atunci mergem pentru raportul de blocuri 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 funcțional este utilizat pentru a seta starea implicită a gui-ului etc. Parametrii sunt similari cu cei utilizați î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âmpuri
- I_tabname: numele tabelului intern 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 corelate. De exemplu, comanda de vânzare și detaliile articolului. Aici detaliile comenzii de vânzare pot fi datele antetului, în timp ce articolele din comanda de vânzări 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
- Este_evenimente
- I_tabname_header: Numele tabelului intern din program care conține datele de ieșire de cel mai înalt nivel ierarhic.
- I_tabname_item: Numele tabelului intern din program care conține datele de ieșire de cel mai jos nivel ierarhic.
- Is_keyinfo: Această structură conține numele câmpurilor antetului și tabelului de articole care leagă cele două tabele (cheie partajată).
Mese
- t_outtab_header: Tabel de antet cu date de ieșit
- t_outtab_item: Numele tabelului intern din program care conține datele de ieșire ale celui mai scăzut nivel de ierarhie.
Toate definițiile tabelelor, structurilor și constantelor interne sunt declarate într-un tip-pool numit SLIS. Acest tabel intern poate fi completat automat utilizând REUSE_ALV_FIELDCATALOG_MERGE '.
Afișați variantele
- 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 furniza 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
- Reuse_alv_variant_default_get
- Reutilizați_alv_variant_f4
- Reuse_alv_variant_existence
Asta este totul pentru programarea ABAP-ALV!