Skupne zaželene značilnosti katerega koli poročila so "poravnava stolpcev", razvrščanje, filtriranje, vmesni seštevki, vsote itd. Za njihovo izvajanje iz nič je treba vložiti veliko kodiranja. Da bi se temu izognili, lahko uporabimo koncept, imenovan ABAP List Viewer (ALV).
V tej vadnici boste izvedeli:
- Enostavno poročilo
- Blokiraj poročilo
- Hierarhična poročila
- Različice prikaza
Vsako od teh poročil vsebuje funkcijske module, ki brez večjega napora pomagajo ustvariti želene rezultate. Poglejmo si jih podrobno -
Enostavno poročilo
Pomembni funkcijski moduli v tem poročilu so -
- Ponovna uporaba_alv_fieldcatalog_merge
- Ponovna uporaba_alv_list_display
- Ponovna uporaba_alv_events_get
- Ponovna uporaba_alv_grid_display
- Ponovna uporaba_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Ta funkcijski modul se uporablja za izpolnjevanje kataloga polj, ki je bistvenega pomena za prikaz podatkov v ALV.
Če so izhodni podatki iz ene tabele slovarjev in so izbrani vsi stolpci, potem ni treba ustvariti izključno kataloga polj. Dovolj je, da se ime tabele omenja kot parameter (I_structure_name) v REUSE_ALV_LIST_DISPLAY. Toda v drugih primerih ga moramo ustvariti.
Opomba: Fieldcatalog lahko izpolnite ročno tudi tako, da v notranjo tabelo vnesete vse zahtevane podrobnosti.
Pomembni parametri v so:
1. Izvoz:
- I_program_name: ID poročila
- I_internal_tabname: notranja izhodna tabela
- I_inclname: vključi ali ime poročila, kjer se obravnavajo vsi dinamični obrazci.
2. Spreminjanje
- ct_fieldcat: notranja tabela s tipom SLIS_T_FIELDCAT_ALV, ki je deklarirana v tipu SLIS.
REUSE_ALV_LIST_DISPLAY
To je funkcijski modul, ki tiska podatke.
Pomembni parametri so:
1. Izvoz:
- I_callback_program: ID poročila
- I_bypassing_buffer: 'X'
- I_buffer_active: ''
- I_callback_pf_status_set: rutina, kjer lahko uporabnik nastavi svoje stanje pf ali spremeni funkcionalnost obstoječega stanja pf.
- I_callback_user_command: rutina, kjer se obdelujejo kode funkcij.
- Ime_strukture: ime tabele slovarja
- Is_Layout: struktura za nastavitev postavitve poročila
- It_fieldcat: notranja tabela s seznamom vseh polj in njihovih atributov, ki jih je treba natisniti (to tabelo lahko funkcija samodejno izpolni)
- It_events: notranja tabela s seznamom vseh možnih dogodkov ALV in ustreznimi imeni obrazcev.
2. Tabele:
- a. t_outtab: notranja tabela s podatki za izhod
REUSE_ALV_EVENTS_GET:
Vrne tabelo možnih dogodkov za aa vrsti seznama
1. Uvoz:
Et_Events: Tabela dogodek se vrača z vsemi možnimi povratni klic dogodkov za določen tip seznama (stolpec "NAME"). Če bo povratni klic obdelal dogodke, mora biti izpolnjeno njihovo polje »OBRAZEC«. Če je polje inicializirano, se dogodek prezre. Vnos je mogoče prebrati iz tabele dogodkov, izpolniti polje 'OBRAZEC' in vnos spremeniti s konstantami iz tipa pool SLIS.
2. Izvoz:
I_list_type: 0 = preprost seznam REUSE_ALV_LIST_DISPLAY
1 = hierarhično-zaporedni seznam REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = preprost seznam blokov REUSE_ALV_BLOCK_LIST_APPEND
3 = hierarhično-sekvenčni seznam blokov REUSE_ALV_BLOCK_END_BLOCK_END
REUSE_ALV_GRID_DISPLAY
Nova funkcija iz različice ABAP4.6 za prikaz rezultatov v mreži namesto v predogledu.
Parametri: enako kot ponovna uporaba_alv_list_display
Opomba: Mreža ne more obvladovati velikih količin. Funkcije, kot je razvrščanje, pomikanje navzdol, porabijo veliko virov / časa, če je obseg podatkov, ki jih je treba prikazati, velik. Nobene jasne definicije ni, da če je količina podatkov X, pojdite na seznam ali mrežo, vendar mora razvijalec sprejeti klic na podlagi svojih izkušenj. Če niste prepričani, potem je seznam boljša možnost
REUSE_ALV_COMMENTARY_WRITE
Uporablja se v dogodku Vrh strani za tiskanje naslovov in drugih komentarjev za seznam.
Pomembni parametri
- It_list_commentary: Notranja tabela z naslovi tipa slis_t_listheader.
Ta notranja tabela ima tri polja:
- Tip: 'H' - glava, 'S' - izbor, 'A' - dejanje
- Tipka: samo, če je tip 'S'.
- Info: besedilo za tiskanje
Blokiraj poročilo
To je videti kot preprosto poročilo, vendar ima to poročilo samo funkcije razvrščanja in filtriranja. To poročilo se uporablja, če morate na izhodu prikazati več poročil. Tehnično gledano, če imate več notranjih tabel s podatki, ki se prikažejo kot ločeni bloki, potem gremo za poročilo o bloku ALV.
Pomembne funkcije, uporabljene za ustvarjanje tega poročila, so:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Ta funkcijski modul se uporablja za nastavitev privzetega stanja GUI itd. Parametri so podobni tistim, ki se uporabljajo v reuse_alv_list_display ali reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Ta funkcijski modul doda podatke v blok.
Pomembni parametri 1.
Izvoz:
- is_layout: nastavitve postavitve bloka
- it_fieldcat: poljski katalog
- I_tabname: ime notranje tabele z vsemi možnimi dogodki
2. Tabele:
- t_outtab: notranja tabela z izhodnimi podatki.
REUSE_ALV_BLOCK_LIST_DISPLAY
Ta funkcijski modul prikaže seznam s podatki, ki jih priloži zgornja funkcija.
Parametri: Vsi parametri niso obvezni.
Hierarhična poročila
Hierarhični prikaz se uporablja za prikaz povezanih podatkov. Tako kot prodajno naročilo in podrobnosti o artiklu. Tu so podrobnosti prodajnega naročila lahko podatki glave, medtem ko so lahko njihovi elementi v prodajnem nalogu podatki postavk
. Funkcijski modul, uporabljen za to, je
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Export:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- It_events
- I_tabname_header: Ime notranje tabele v programu, ki vsebuje izhodne podatke najvišje ravni hierarhije.
- I_tabname_item: Ime notranje tabele v programu, ki vsebuje izhodne podatke najnižje ravni hierarhije.
- Is_keyinfo: Ta struktura vsebuje imena polj tabel glave in elementov, ki povezujejo dve tabeli (skupni ključ).
Mize
- t_outtab_header: Tabela glave s podatki za izhod
- t_outtab_item: Ime notranje tabele v programu, ki vsebuje izhodne podatke najnižje ravni hierarhije.
Vse definicije notranjih tabel, struktur in konstant so navedene v tipu skladb, imenovanem SLIS. To interno tabelo lahko samodejno izpolnite z uporabo REUSE_ALV_FIELDCATALOG_MERGE '.
Različice prikaza
- Različice zaslona se uporabljajo za nastavitev privzetih lastnosti izhoda alv, kot so merila za razvrščanje, merila za filtriranje, seštevanje in vmesni seštevek itd.
- Različice zaslona so lahko uporabniške in standardne (standardne različice lahko uporablja kateri koli uporabnik)
- Način prikaza različic, ki jih je mogoče shraniti, nadzoruje parameter i_save, ki se posreduje v funkcijskih modulih reuse_alv_list_display / reuse_alv_grid_display
- Na izbirnem zaslonu lahko izberete, katero različico zaslona želite uporabiti
Pogosti funkcijski moduli, povezani z izbiro / preverjanjem različic zaslona, so
- Ponovna uporaba_alv_variant_default_get
- Ponovna uporaba_alv_variant_f4
- Ponovna uporaba_alv_variant_obstoja
To je vse za ABAP-ALV programiranje!