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 *
In hoc consequat, demonstrabo quomodo solas cellulas specificas in craticula editabili
praebeas.
123456 K
654321 E
567890 D
876543 B
900,000 A
Nunc catervam functionis cum screen (id est 0200) creamus ubi nostram ALV eget.
MODULE pbo_0200.
MODULE pai_0200.
DATA:
Agro signa:
EXPORTATIO
continens_name = 'GO_GRID_CONTAINER'.
EXPORTATIO
i_parent = gr_continens.
EXPORTATIO
i_structure_name = 'ZMATSTAT'
DE MUTATIONIBUS
ct_fieldcat = gt_fieldcat.
*!!! MAGNUS!!!
<fs_fcat>-edit = abap_true.
* Convenientem agrum ut R / O *
EXSEQUOR reload_data.
* Specificare nomen agri cum notitia de generibus cellularum (RW / RO)
ls_layout-stylefname = 'CELL_STYLES'.
ls_variant-fama = sy-repid.
ls_variant-usoris = sy-unname.
*!!! MAGNUS!!!
* propagatur ad GT_DATA
gr_grid->register_edit_event(i_event_id = cl_gui_alv_grid=>mc_evt_enter ).
* trahunt ALV
gr_grid-> set_table_for_first_display (
EXPORTATIO
is_layout = ls_layout
is_variant = ls_variant
i_save = 'A'
i_default = 'X'
DE MUTATIONIBUS
it_fieldcatalog = gt_fieldcat
it_outtab = gt_data ).
CIRCUMSERO.
OMNIBUS PAI_0200 adhibetur ad commercium usoris processus et hic sequitur codicem suum
DATA:
Agro signa:
CAUSA sy-ucomm.
CUM REDDO VEL DISCEDO' VEL 'ABLICO'.
PRAETECTIO 0 SET.
CUM 'UPDATE'.
* Update DB Z mensam
FINIS CAPISTRUM.
* Convenientem agrum ut R / O *
EXSEQUOR reload_data.
gr_grid-> refove_table_display ( ).
CUM 'REFOVEO'.
EXSEQUOR reload_data.
gr_grid-> refove_table_display ( ).
FINIS CAUSA.
Forma reload_data.
DATA:
Agro signa:
DELETE gt_data[].
* Lege data
SELECT *
RECTUS CAMPIS IN TABULA gt_data
FROM zmatstat.
CAPISTRUM AT gt_data
ALLOCATES <fs_data>
l_lvc_styl-style = cl_gui_alv_grid>mc_style_disabled.
l_lvc_styl-fieldname = 'PSTAT'.
FINIS CAPISTRUM.