Professional Documents
Culture Documents
Først skal jeg forberede noen demonstrasjonsdata. Det vil være en liste over materialer og
deres vedlikeholdsstatus. Hvis status er satt til 'A' ønsker vi å deaktivere redigering av status i
rutenettet.
123456 K
654321 E
567890 D
876543 B
900 000 A
Nå lager vi en funksjonsgruppe med skjerm (dvs. 0200) der vi tegner ALV-rutenettet vårt.
MODUL pbo_0200.
MODULE pai_0200.
PBO_0200-modulen brukes til å samle data, lage feltkatalog og vise ALV. Her følger koden
DATA:
FELTSYMBOLER:
EKSPORTER
container_name = 'GO_GRID_CONTAINER'.
EKSPORTER
i_parent = gr_container.
* Enkleste feltkatalogoppretting
EKSPORTER
i_structure_name = 'ZMATSTAT'
ENDRINGER
ct_fieldcat = gt_fieldcat.
*!!! VIKTIG!!!
<fs_fcat>-edit = abap_true.
UTFØR reload_data.
* Angi feltnavnet med informasjon om cellestiler (RW / RO)
ls_layout-stylefname = 'CELL_STYLES'.
ls_variant-report = sy-repid.
ls_variant-brukernavn = sy-unavn.
*!!! VIKTIG!!!
* Tegn ALV
gr_grid->set_table_for_first_display(
EKSPORTER
is_layout = ls_layout
is_variant = ls_variant
i_save = 'A'
i_default = 'X'
ENDRINGER
it_fieldcatalog = gt_fieldcat
it_outtab = gt_data ).
SLUTT OM.
Modul PAI_0200 brukes til å behandle brukerinteraksjon og her følger dens kode
DATA:
FELTSYMBOLER:
CASE sy-ucomm.
NÅR 'TILBAKE' ELLER 'LEAVE' ELLER 'AVBRYT'.
STILL SKJERM 0.
NÅR 'OPPDATERING'.
* Oppdater DB Z-tabell
ENDLOOP.
UTFØR reload_data.
gr_grid->refresh_table_display( ).
NÅR 'REFRESH'.
UTFØR reload_data.
gr_grid->refresh_table_display( ).
ENDCASE.
Hjelperen FORM RELOAD_DATA brukes til å samle data fra databasen og merke de aktuelle
feltene som skrivebeskyttet
FORM reload_data.
DATA:
FELTSYMBOLER:
SLETT gt_data[].
* Les dataene
PLUKKE UT *
I TILSVARENDE FELTER I TABELL gt_data
FRA zmatstat.
LOOP AT gt_data
TILDELER <fs_data>
l_lvc_styl-style = cl_gui_alv_grid=>mc_style_disabled.
l_lvc_styl-fieldname = 'PSTAT'.
ENDLOOP.
SLUTTFORM. "reload_data