Diese Seite (Version-1) wurde zuletzt am 28-März-2017 14:37 von UnbekannterAutor geändert.

Du bist nicht autorisiert, diese Seite umzubenennen.

Du bist nicht autorisiert, diese Seite zu löschen.

Versionsgeschichte der Seite

Version Zuletzt geändert Größe Autor Änderungen Kommentar

Links

Eingehende Links Ausgehende Links

Versionsunterschiede

Unterschiede zwischen Version und .

Zeile 1: 180 Zeilen hinzugefügt.
[{ALLOW view All}]
[{ALLOW edit Authenticated}]
Following snippets enable you to manipulate most ALV functionalities:
{{{
DATA: alv_table TYPE REF TO cl_salv_table,
alv_ds TYPE REF TO cl_salv_display_settings,
alv_cols TYPE REF TO cl_salv_columns,
alv_col TYPE REF TO cl_salv_column,
alv_func TYPE REF TO cl_salv_functions_list,
alv_ddic TYPE salv_s_ddic_reference.
*... Create Instance
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = alv_table
CHANGING
t_table = ptab_out.
* add grid lines and background colors
alv_table->get_display_settings( RECEIVING value = alv_ds ).
alv_ds->set_vertical_lines( EXPORTING value = 'X' ).
alv_ds->set_horizontal_lines( EXPORTING value = ' ' ).
alv_ds->set_striped_pattern( EXPORTING value = 'X' ).
alv_ds->set_list_header( value = 'Jubiläumsliste' ).
* enable default ALV functions
alv_table->get_functions( RECEIVING value = alv_func ).
alv_func->set_all( EXPORTING value = 'X' ).
* set headings (set field references)
alv_table->get_columns( RECEIVING value = alv_cols ).
* fir column size to match values width
alv_cols->SET_OPTIMIZE( EXPORTING value = 'X' ).
"Eintrittsdatum IT 0000
PERFORM setheadertext USING 'EINDAT_IT00'
'EintrIT00' 'Eintr IT00' 'Eintritt IT0000'.
"Austrittsdatum IT 0000
PERFORM setheadertext USING 'AUSDAT_IT00'
'AustrIT00' 'Austr IT00' 'Austritt IT0000'.
"Eintrittsdatum IT 0001
PERFORM setheadertext USING 'EINDAT_IT01'
'EintrIT01' 'Eintr IT01' 'Eintritt IT0001'.
"Eintrittsdatum IT 0016
PERFORM setheadertext USING 'EINDAT_ERST_IT16'
'ErstE.IT16' 'ErstEintr IT16' 'Ersteintritt IT0016'.
PERFORM setheadertext USING 'EINDAT_KONZ_IT16'
'KonzE.IT16' 'KonzEintr IT16' 'Konzerneintritt IT0016'.
"PERFORM setheaderfieldreference USING 'EINDAT_ERST_IT16' 'P0016' 'EINDT'.
"PERFORM setheaderfieldreference USING 'EINDAT_KONZ_IT16' 'P0016' 'KONDT'.
PERFORM setheadertext USING 'EINDAT_IT41'
'EintrIT41' 'Eintr IT41' 'Eintritt IT0041'.
"Theoretischer Eintritt
PERFORM setheadertext USING 'EINDAT_RECHN'
'Rechn.Ein' 'Rechn.Eintritt' 'Rechnerischer Eintritt'.
PERFORM setheadertext USING 'ALTER'
'Alter' 'Alter' 'Alter'.
PERFORM setheadertext USING 'DIEJA'
'DienstJ.' 'Dienstjahre' 'Dienstjahre'.
PERFORM setheaderfieldreference USING 'SACHN' 'P0001' 'SACHP'.
PERFORM setheadertext USING 'KTEXT'
'KstBez' 'Kost.Bez.' 'Kostenstellenbezeichnung'.
PERFORM setheaderfieldreference USING 'ADRS_LINE1' 'P0006' 'STRAS'.
PERFORM setheaderfieldreference USING 'ADRS_LINE2' 'P0006' 'ORT01'.
* make columns fit to size
alv_cols->set_optimize( ).
IF it16 IS INITIAL.
alv_cols->get_column( EXPORTING columnname = 'EINDAT_IT41'
RECEIVING value = alv_col ).
alv_col->set_visible( EXPORTING value = ' ' ).
ENDIF.
IF it41 IS INITIAL.
alv_cols->get_column( EXPORTING columnname = 'EINDAT_ERST_IT16'
RECEIVING value = alv_col ).
alv_col->set_visible( EXPORTING value = ' ' ).
alv_cols->get_column( EXPORTING columnname = 'EINDAT_KONZ_IT16'
RECEIVING value = alv_col ).
alv_col->set_visible( EXPORTING value = ' ' ).
ENDIF.
*... Display Table
alv_table->display( ).
*------------------------------------------
* Change reference field for column header
*------------------------------------------
FORM setheaderfieldreference USING
value(out_field)
value(ddic_table)
value(ddic_field).
TRY.
alv_cols->get_column( EXPORTING columnname = out_field
RECEIVING value = alv_col ).
CATCH cx_salv_not_found.
WRITE: / 'ERROR: Spalte ', out_field, ' nicht gefunden.'.
ENDTRY.
alv_ddic-table = ddic_table.
alv_ddic-field = ddic_field.
alv_col->set_ddic_reference( value = alv_ddic ).
ENDFORM. "setHeaderFieldReference
*------------------------------------------
* Set short, middle and long title for column
*------------------------------------------
FORM setheadertext USING
value(out_field)
value(title_short)
value(title_med)
value(title_long).
DATA: ts(10) TYPE c,
tm(20) TYPE c,
tl(40) TYPE c.
TRY.
alv_cols->get_column( EXPORTING columnname = out_field
RECEIVING value = alv_col ).
CATCH cx_salv_not_found.
WRITE: / 'ERROR: Spalte ', out_field, ' nicht gefunden.'.
ENDTRY.
IF STRLEN( title_short ) GT 10.
ts = title_short(10).
ELSE.
ts = title_short.
ENDIF.
IF STRLEN( title_med ) GT 20.
tm = title_med(20).
ELSE.
tm = title_med.
ENDIF.
IF STRLEN( title_long ) GT 40.
tl = title_long(40).
ELSE.
tl = title_long.
ENDIF.
alv_col->set_short_text( value = ts ).
alv_col->set_medium_text( value = tm ).
alv_col->set_long_text( value = tl ).
ENDFORM. "setHeaderFieldReference
method get_column .
data: ls_column type salv_s_column_ref.
read table me->t_columns into ls_column
with key columnname = columnname.
if sy-subrc ne 0.
raise_column_not_found(
method = 'GET_COLUMN'
columnname = columnname ).
endif.
value = ls_column-r_column.
endmethod. "get_column
}}}