Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Include Z..._ALV
*&---------------------------------------------------------------------*
FORM create_alv .
IF go_container IS NOT BOUND.
IF cl_salv_table=>is_offline( ) EQ if_salv_c_bool_sap=>false.
CREATE OBJECT go_container
EXPORTING
* parent = " Parent container
container_name = 'CONTAINER' " Name of the dynpro CustCtrl name to link this container to
* style = " Windows style attributes applied to this container
* lifetime = LIFETIME_DEFAULT " Lifetime
* repid = " Dynpro to which this container is linked to
* dynnr = " Report to which this container is linked to
* no_autodef_progid_dynnr = " dont autodefine progid and dynnr?
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDIF.
TRY.
* Ausgabetabelle ermitteln
* CASE abap_true.
* WHEN ...
* WHEN OTHERS.
ASSIGN gt_ausgabe TO <fs_table>.
* ENDCASE.
IF sy-batch IS INITIAL.
cl_salv_table=>factory(
EXPORTING
r_container = cl_gui_container=>screen0
IMPORTING
r_salv_table = go_table " Basisklasse einfache ALV Tabellen
CHANGING
t_table = <fs_table>
).
ELSE.
cl_salv_table=>factory(
EXPORTING
* list_display = 'X'
r_container = go_container
container_name = 'CONTAINER'
IMPORTING
r_salv_table = go_table " Basisklasse einfache ALV Tabellen
CHANGING
t_table = <fs_table>
).
ENDIF.
* Spaltenbreite optimieren
go_columns = go_table->get_columns( ).
go_columns->set_optimize( gc_true ).
* Spaltenoptik ändern
PERFORM change_column.
* F4-Hilfe für Felder
PERFORM get_f4_columns.
* Funktionsleiste füllen
go_functions = go_table->get_functions( ).
go_functions->set_all( abap_true ).
** Refresh Button
gv_text_function = text-t01.
gv_tooltip_function = text-t02.
gv_icon_function = icon_refresh.
TRY.
go_functions->add_function(
EXPORTING
name = 'REFRESH' " ALV Funktion
icon = gv_icon_function
text = gv_text_function
tooltip = gv_tooltip_function
position = if_salv_c_function_position=>right_of_salv_functions " Funktion Positionierung
).
CATCH cx_salv_existing INTO go_err_salv_exist.
* MESSAGE gv_string TYPE 'E'.
CATCH cx_salv_wrong_call INTO go_err_wrong_call.
MESSAGE gv_string TYPE 'E'.
ENDTRY.
* Layout speichern
go_layout = go_table->get_layout( ).
IF pa_layou IS NOT INITIAL.
go_layout->set_initial_layout( pa_layou ).
ENDIF.
gs_layout_key-report = sy-repid.
go_layout->set_key( gs_layout_key ).
go_layout->set_save_restriction( if_salv_c_layout=>restrict_none ).
go_layout->set_default( abap_true ).
* Events (z.B. Doppelklick)
go_events_tab = go_table->get_event( ).
CREATE OBJECT go_events
EXPORTING
io_salv = go_table.
** Doppelklick
SET HANDLER go_events->on_double_click FOR go_events_tab.
** Toolbar Klick
SET HANDLER go_events->handle_toolbar_click FOR go_events_tab.
* Anzeigen
go_table->display( ).
CATCH cx_salv_msg INTO DATA(go_exc).
gv_string = go_exc->get_text( ).
MESSAGE gv_string TYPE 'E'.
ENDTRY.
ENDFORM.
Hallo exw,ewx hat geschrieben: ↑27.01.2025 17:46Welches Format gewählt wird, hängt meine ich an den Zusätzen zu REPORT: Line-Size und Line-Count.
Dann wird das verwendet, was zu dem Drucker definiert wurde und am besten passt.
X_24_80_JP
X_44_120
X_51_140_JP
X_58_170
X_60_80_JP
X_65_1024/4
X_65_132
X_65_132-2
X_65_200
X_65_255
X_65_256/2
X_65_512/2
X_65_80
X_65_80-2
usw.
vielleicht kannst du mit line-size eine andere Breite einstellen?
Wenn es "vorher" sauber funktioniert hat, musst du doch nur den Aufruf des SALVs im Job wierder analog machen. Du unterscheidest aktuell schon wie du den SALV erzeugst, addest aber immer den Button. Den brauchst du doch gar nicht im Job, erzeugst den SALV deswegen aber im Container...
Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag (Insgesamt 2):
ewx • black_adept