ALV izvješća u SAP Vodič – ABAP List Viewer
⚡ Pametni sažetak
ALV izvješća u SAP, koje proizvodi ABAP preglednik popisa, omogućuju poravnanje stupaca, sortiranje, filtriranje, zbrojeve i međuzbrojeve bez prilagođenog kodiranja. Ova stranica objašnjava jednostavne, blokovne i hijerarhijske vrste popisa, njihove module funkcija PONOVNE UPORABE i varijante prikaza.

Što je ALV u SAP ABAP?
Uobičajene željene značajke bilo kojeg izvješća su "poravnanje stupaca", sortiranje, filtriranje, međuzbrojevi, ukupni iznosi itd. Za njihovu implementaciju od nule potrebno je uložiti puno kodnog truda. Kako bismo to izbjegli, možemo koristiti koncept pod nazivom ABAP List Viewer (ALV).
Svaki od ovih izvještaja pruža funkcijski moduli koji pomažu u proizvodnji željenog rezultata bez puno truda. Pogledajmo ih detaljnije –
Klasični ALV nudi tri vrste popisa, a svaki od njih ima svoj vlastiti skup modula funkcije REUSE:
- Jednostavno izvješće: jedna interna tablica prikazana kao popis ili mreža.
- Izvješće o blokovima: nekoliko internih tablica prikazanih jedna ispod druge kao odvojeni blokovi.
- Hijerarhijsko izvješće: tablicu zaglavlja i tablicu stavki povezane zajedničkim ključem.
Jednostavno izvješće
Važni funkcijski moduli u ovim prijaviti jesu -
- Reuse_alv_field_catalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Reuse_alv_grid_display
- Reuse_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Ovaj funkcijski modul koristi se za popunjavanje kataloga polja koji je neophodan za prikaz podataka u ALV-u.
Ako su izlazni podaci iz jedne rječničke tablice i svi su stupci odabrani, tada ne moramo isključivo kreirati katalog polja. Dovoljno je spomenuti naziv tablice kao parametar (I_structure_name) u REUSE_ALV_LIST_DISPLAY. Ali u drugim slučajevima moramo ga stvoriti.
Napomena: Fieldcatalog se može ispuniti i ručno ispunjavanjem svih potrebnih detalja u internoj tablici
Važni parametri u su:
1. Izvoz:
- I_program_name : ID izvješća
- I_internal_tabname : interna izlazna tablica
- I_inclname : uključi ili ime izvješća gdje se rukuje svim dinamičkim obrascima.
2. Mijenjanje
- ct_fieldcat : an interni stol s tipom SLIS_T_FIELDCAT_ALV koji je deklariran u skupu tipova SLIS.
REUSE_ALV_LIST_DISPLAY
Ovo je funkcijski modul koji ispisuje podatke.
Važni parametri su:
1. Izvoz:
- I_callback_program : ID izvješća
- I_bypassing_buffer : 'X'
- I_buffer_active : ' '
- I_callback_pf_status_set : rutina gdje korisnik može postaviti svoj vlastiti pf status ili promijeniti funkcionalnost postojećeg pf statusa.
- I_callback_user_command : rutina u kojoj se rukuje funkcijskim kodovima.
- I_structure name : naziv tablice rječnika
- Is_Layout : struktura za postavljanje izgleda izvješća
- It_fieldcat : interna tablica s popisom svih polja i njihovih atributa koji se trebaju ispisati (ovu tablicu funkcija može automatski popuniti)
- It_events : interna tablica s popisom svih mogućih događaja ALV-a i njihovih odgovarajućih naziva oblika.
2. Tablice:
- a. t_outtab : interna tablica s podacima za izlaz
PONOVNA_UPORABA_ALV_DOGAĐAJA_GET
Vraća tablicu mogućih događaja za vrstu popisa
1. Uvoz:
Et_Events :Vraća se tablica događaja sa svim mogućim događajima CALLBACK za navedenu vrstu popisa (stupac 'IME'). Da bi se događaji obradili povratnim pozivom, njihovo polje 'FORM' mora biti ispunjeno. Ako je polje inicijalizirano, događaj se zanemaruje. Unos se može pročitati iz tablice događaja, popuniti polje 'FORM' i modificirati unos pomoću konstanti iz skupa tipova SLIS.
2. Izvoz:
I_list_type: 0 = jednostavan popis REUSE_ALV_LIST_DISPLAY
1 = hijerarhijski-sekvencijalni popis REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = jednostavan popis blokiranih REUSE_ALV_BLOCK_LIST_APPEND
3 = hijerarhijski-sekvencijalni popis blokiranih REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
Nova funkcija iz verzije ABAP4.6 za prikaz rezultata u tablici umjesto u pregledu.
Parametri: isto kao i reuse_alv_list_display
Napomena: Mreža ne može podnijeti velike količine. Funkcije poput sortiranja i pomicanja prema dolje troše puno resursa/vremena ako je količina podataka koja se prikazuje velika. Ne postoji jasna definicija, tako da ako je količina podataka X, treba odabrati listu ili mrežu, ali programer mora donijeti odluku na temelju svog iskustva. Ako niste sigurni, onda je lista bolja opcija.
REUSE_ALV_COMMENTARY_WRITE
Ovo se koristi u događaju Top-of-page za ispis naslova i drugih komentara za popis.
Važni parametri
- It_list_commentary : interna tablica s naslovima tipa slis_t_listheader.
Ova interna tablica ima tri polja:
- Tip: 'H' – zaglavlje, 'S' – odabir, 'A' – akcija
- Tipka : samo kada je tip 'S'.
- Info : tekst za ispis
Primjer: Jednostavno ALV Grid izvješće
Program u nastavku pretvara gornje funkcionalne module u radno izvješće. Čita tablicu rasporeda letova SPFLI, automatski izrađuje katalog polja i prikazuje rezultat u mreži.
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.
Tri parametra obavljaju većinu posla. I_STRUCTURE_NAME omogućuje izvođenje kataloga polja iz rječnika, tako da se nijedan stupac ne opisuje ručno. IS_LAYOUT uključuje prugaste retke i optimizirane širine stupaca. I_SAVE = 'A' omogućuje spremanje i korisnički specifičnih i standardnih varijanti prikaza s gotovog popisa.
Blokiraj izvješće
Ovo izgleda kao jednostavno izvješće, ali ovo izvješće ima samo značajke sortiranja i filtriranja. Ovo izvješće se koristi ako morate prikazati više od jednog izvješća na izlazu. Tehnički govoreći, ako imate više internih tablica s podacima koji se prikazuju kao zasebni blokovi, onda idemo na blokovno izvješće ALV-a.
Važne funkcije koje se koriste za izradu ovog izvješća su:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Ovaj funkcijski modul koristi se za postavljanje zadanog GUI statusa itd. Parametri su slični onima koji se koriste u reuse_alv_list_display ili reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Ovaj funkcijski modul dodaje podatke u blok.
Važni parametri
1. Izvoz:
- is_layout : postavke izgleda za blok
- it_fieldcat : terenski katalog
- I_tabname : naziv interne tablice sa svim mogućim događajima
2. Tablice:
- t_outtab : interna tablica s izlaznim podacima.
REUSE_ALV_BLOCK_LIST_DISPLAY
Ovaj funkcijski modul prikazuje popis s podacima dodanim gornjom funkcijom.
Parametri: Svi parametri nisu obavezni.
Hijerarhijska izvješća
Hijerarhijski prikaz koristi se za prikaz podataka koji su povezani. Poput pojedinosti o prodajnoj narudžbi i artiklu. Ovdje detalji prodajnog naloga mogu biti podaci zaglavlja, dok njihove stavke u prodajnom nalogu mogu biti podaci o artiklu
Funkcijski modul koji se za to koristi je
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Izvoz:
- I_CALLACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- JE_RASPORED
- It_fieldcat
- To_događaji
- I_tabname_header : Naziv interne tablice u programu koja sadrži izlazne podatke najviše razine hijerarhije.
- I_tabname_item : Naziv interne tablice u programu koja sadrži izlazne podatke najniže razine hijerarhije.
- Is_keyinfo : Ova struktura sadrži nazive polja tablice zaglavlja i stavki koji povezuju dvije tablice (dijeljeni ključ).
Tablice
- t_outtab_header : Tablica zaglavlja s podacima za izlaz
- t_outtab_item : Naziv interne tablice u programu koja sadrži izlazne podatke najniže razine hijerarhije.
Sve definicije internih tablica, struktura i konstanti deklarirane su u skupu tipova koji se zove SLIS. Ova se interna tablica može automatski popuniti korištenjem REUSE_ALV_FIELDCATALOG_MERGE'.
Varijante prikaza
- Varijante prikaza koriste se za postavljanje zadanih svojstava alv izlaza kao što su kriteriji sortiranja, kriteriji filtriranja, zbrajanje i međuzbrojevi itd.
- Varijante prikaza mogu biti specifične za korisnika i standardne (standardne varijante može koristiti bilo koji korisnik)
- Vrsta varijanti prikaza koje se mogu spremiti kontrolira se parametrom i_save koji se prosljeđuje u funkcijskim modulima reuse_alv_list_display / reuse_alv_grid_display
- Na zaslonu za odabir možete dati opciju za odabir varijante prikaza koja će se koristiti
Uobičajeni funkcijski moduli koji se odnose na odabir/provjeru varijanti prikaza su
- Reuse_alv_variant_default_get
- Ponovna upotreba_alv_varijante_f4
- Ponovno korištenje_alv_varijante_postojanje
💡 Savjet: Proslijedite I_SAVE = 'U' za dopuštanje samo korisnički specifičnih varijanti, 'X' samo za standardne varijante i 'A' za obje. Prazna vrijednost blokira spremanje u potpunosti.
To je sve ABAP – ALV programiranje!
