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.

  • 📋 Osnovna svrha: ABAP preglednik popisa nudi standardne značajke popisa putem gotovih funkcijskih modula, tako da ih nikada više ne treba programirati.
  • 🗂️ Katalog polja: REUSE_ALV_FIELDCATALOG_MERGE izrađuje katalog koji opisuje svaki izlazni stupac, a može se i ručno popuniti.
  • 🖥️ Popis i mreža: REUSE_ALV_LIST_DISPLAY ispisuje klasični popis, a REUSE_ALV_GRID_DISPLAY prikazuje iste podatke u kontroli mreže.
  • 🧱 Izvješće o blokovima: INIT, APPEND i DISPLAY kombiniraju nekoliko internih tablica u jedan izlaz napravljen od odvojenih blokova.
  • ???? Hijerarhijsko izvješće: REUSE_ALV_HIERSEQ_LIST_DISPLAY povezuje tablicu zaglavlja i tablicu stavki putem zajedničkog ključa u IS_KEYINFO.
  • 🧰 Tip bazena SLIS: Svaka struktura, tip tablice i konstanta koju koristi klasični ALV deklarirana je u skupu tipova SLIS.
  • 💾 Varijante prikaza: Varijanta pohranjuje zadane vrijednosti sortiranja, filtriranja i zbrajanja, a parametar I_SAVE odlučuje je li specifična za korisnika ili standardna.

ALV izvješća u SAP ABAP

Š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:

  1. Tip: 'H' – zaglavlje, 'S' – odabir, 'A' – akcija
  2. Tipka : samo kada je tip 'S'.
  3. 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

  1. Reuse_alv_variant_default_get
  2. Ponovna upotreba_alv_varijante_f4
  3. 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!

Pitanja i odgovori

Moduli REUSE pripadaju klasičnom, na funkcijama temeljenom ALV-u. CL_GUI_ALV_GRID je objektno orijentirana kontrola ugrađena u prilagođeni kontejner na dynpro-u, a nudi ćelije koje se mogu uređivati ​​i rukovanje događajima putem metoda.

Postavite DO_SUM u katalogu polja za stupac koji treba dodati i proslijedite tablicu sortiranja s uključenom SUBTOT za stupac koji grupira retke. Nije potreban dodatni kod za izračun.

Proslijedite naziv obrasca funkciji I_CALLBACK_USER_COMMAND. Obrazac prima kod funkcije i odabrani redak, tako da program može pročitati zapis i otvoriti popis detalja ili transakciju.

Da. AI asistenti u ABAP razvojnim alatima generiraju SELECT, katalog polja i poziv REUSE_ALV_GRID_DISPLAY iz opisa potrebnih stupaca. Generirani SELECT i dalje treba provjeru performansi.

Ne. ALV ostaje standardni izlaz SAP Izvješća GUI-ja. AI asistenti dodaju vrijednost sažimanjem dugog popisa, uočavanjem outliera i odgovarajući na pitanja o prikazanim podacima jednostavnim jezikom.

Sažmite ovu objavu uz: