Elemente durch PUSH-Buttons ein- und ausblenden
Auf einem Report-Selektionsbild sind oftmals viele Bereiche, die aber für den täglichen Gebrauch nicht alle von Bedeutung sind. Durch geschickte Programmierung lässt sich auf einem Selektionsbild “ENJOY-Feeling” programmieren. Einzelne Bereiche können ein- oder ausgeblendet werden.
report zzdemo02. tables sscrfields. data: anz1, anz2, h_vbeln type vbeln, h_posnr type posnr, h_erdat type erdat, h_matkl type matkl. selection-screen pushbutton /1(20) push1 user-command push1. select-options: s_vbeln for h_vbeln modif id 1, s_erdat for h_erdat modif id 1. selection-screen pushbutton /1(20) push2 user-command push2. select-options: s_posnr for h_posnr modif id 2, s_matkl for h_matkl modif id 2. initialization. *--> Import, damit bei F3 alle Werte erhalten bleiben: import anz1 anz2 from memory id 'ZZMERK'. check sy-subrc > 0. push1 = 'Kopfdaten zeigen'. "pushbutton 1 benennen perform loop_at_screen using '1' 0. push1 = 'Positionsdaten zeigen'. "pushbutton 2 benennen perform loop_at_screen using '2' 0. at selection-screen. *--> Pushbutton 1: if sscrfields-ucomm = 'PUSH1'. if anz1 is initial. anz1 = 'X'. else. anz1 = space. endif. endif. *--> Pushbutton 2: if sscrfields-ucomm = 'PUSH2'. if anz2 is initial. anz2 = 'X'. else. anz2 = space. endif. endif. at selection-screen output. if anz1 is initial. push1 = 'Kopfdaten anzeigen'. perform loop_at_screen using '1' 0. perform refresh sel using '1'. else. push1 = 'Kopfdaten ausblenden'. perform loop_at_screen using '1' 1. endif. if anz2 is initial. push2 = 'Positionsdaten anzeigen'. perform loop_at_screen using '2' 0. perform refresh sel using '2'. else. push2 = 'Positionsdaten ausblenden'. perform loop_at_screen using '2' 1. endif. start-of-selection. *--> Export, damit bei F3 alle werte erhalten bleiben export anz1 anz2 to memory id 'ZZMERK'. .. ... .... end-of-selection. form loop_at_screen using value(p_gruppe) value(p_mode). loop at screen. if screen-group1 = p_gruppe. screen-active = p_mode. modify screen. endif. endloop. endform. form refresh_sel using value(p_gruppe). case p_gruppe. when '1'. refresh: s1, s2. when '2'. refresh: s3, s4. endcase. endform.
Screenshots
Und so sieht’s aus.
Noch sind keine Daten sichtbar:
Nach Druck auf [Kopfdaten einblenden] werden die zugeordneten Felder sichtbar:
Kopfdaten und Positionsdaten sind eingeblendet:
Letzte Artikel von Enno Wulff (Alle anzeigen)
- Meine Eclipse-Plugins - 22. November 2024
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024