Code: Alles auswählen.
fieldcatalog-just = 'R'
Das ist eine gute Idee. Wenn du es richtig komfortabel haben willst verwende einen Konvertierungsexit, der die Leerzeichen mit dem dem nonbreaking Whitespace austauscht.Legxis hat geschrieben:Dann tausch die Leerzeichen doch mit was Anderem aus, das sieht ja auch nicht so schlimm aus, damit müssen die User klarkommen. In ABAP gibt es viel "geht nicht".
Code: Alles auswählen.
REPLACE ALL OCCURRENCES OF REGEX '\s' IN my_field WITH |{ cl_abap_conv_in_ce=>uccpi( 160 ) }|.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
Legxis • mfromg
Code: Alles auswählen.
REPORT y_cl_gui_alv_grid.
TABLES: makt.
*------------------------*
* Deklarationen *
*------------------------*
TYPES: BEGIN OF ty_auswertung,
matnr TYPE makt-matnr,
spras TYPE makt-spras,
maktx TYPE makt-maktx,
maktg TYPE makt-maktg,
END OF ty_auswertung.
* Datenträger
DATA: gt_auswertung TYPE STANDARD TABLE OF ty_auswertung,
wa_auswertung TYPE TABLE OF ty_auswertung WITH HEADER LINE.
* ALV Grid
DATA: go_grid TYPE REF TO cl_gui_alv_grid,
go_cont TYPE REF TO cl_gui_custom_container,
gt_fcat TYPE lvc_t_fcat,
ok_code TYPE sy-ucomm.
* Hilfsvariablen
DATA: h_count TYPE i,
h_white TYPE c.
FIELD-SYMBOLS: <fs_auswertung> TYPE ty_auswertung.
*------------------------*
* Programmstart *
*------------------------*
*-----------------------------Selection-Screen-----------------------------*
SELECTION-SCREEN: BEGIN OF BLOCK param WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_matnr FOR makt-matnr.
SELECTION-SCREEN: END OF BLOCK param.
*-----------------------------Datenverarbeitung-----------------------------*
START-OF-SELECTION.
SELECT *
FROM makt
INTO CORRESPONDING FIELDS OF TABLE gt_auswertung
WHERE matnr IN s_matnr.
* Leerzeichen einbauen, die in der Listausgabe angezeigt werden
h_count = 0.
LOOP AT gt_auswertung ASSIGNING <fs_auswertung>.
DO h_count TIMES.
CONCATENATE '' <fs_auswertung>-maktg INTO <fs_auswertung>-maktg SEPARATED BY space.
ENDDO.
h_white = cl_abap_conv_in_ce=>uccpi( 160 ).
REPLACE ALL OCCURRENCES OF REGEX '\s' IN <fs_auswertung>-maktg WITH h_white.
h_count = h_count + 3.
ENDLOOP.
PERFORM fieldcat_create CHANGING gt_fcat.
IF gt_auswertung IS NOT INITIAL.
PERFORM alv_init.
ELSE.
LEAVE TO LIST-PROCESSING.
MESSAGE 'Keine Daten gefunden!' TYPE 'I'.
ENDIF.
*---------------------------------------------------------------------*
* Form fieldcat_create
*---------------------------------------------------------------------*
FORM fieldcat_create CHANGING pt_fcat TYPE lvc_t_fcat.
FIELD-SYMBOLS: <fs_fcat> TYPE lvc_s_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'MAKT'
CHANGING
ct_fieldcat = gt_fcat.
* Key-Felder, Editierbare Felder, Spaltenüberschriften
LOOP AT gt_fcat ASSIGNING <fs_fcat>.
CASE <fs_fcat>-fieldname.
WHEN 'MATNR'.
<fs_fcat>-key = 'X'.
<fs_fcat>-emphasize = 'X'.
ENDCASE.
ENDLOOP.
ENDFORM. "fieldcat_create
*---------------------------------------------------------------------*
* Form alv_init
*---------------------------------------------------------------------*
FORM alv_init.
DATA: ls_layout TYPE lvc_s_layo.
IF go_cont IS INITIAL.
* Listausgabe erzwingen
WRITE:/ 'Stefan hat gesagt ich soll irgendwas ausgeben.'.
* Titel
ls_layout-grid_title = 'Materialart'.
* Grid erstellen
CREATE OBJECT go_grid
EXPORTING
i_parent = cl_gui_container=>screen0.
* Grid aufrufen
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_layout = ls_layout
CHANGING
it_fieldcatalog = gt_fcat
it_outtab = gt_auswertung.
ELSE.
ENDIF.
ENDFORM. "alv_init
*---------------------------------------------------------------------*
* Form user_command
*---------------------------------------------------------------------*
FORM user_command.
CALL METHOD cl_gui_cfw=>dispatch.
CASE ok_code.
WHEN 'BACK'.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
CLEAR ok_code.
ENDFORM. "user_command
*----------------------------------------------------------------------*
* MODULE pbo_0100 OUTPUT
*----------------------------------------------------------------------*
MODULE pbo_0100 OUTPUT.
PERFORM alv_init.
ENDMODULE. "pbo_0100 OUTPUT
*----------------------------------------------------------------------*
* MODULE pai_0100 INPUT
*----------------------------------------------------------------------*
MODULE pai_0100 INPUT.
PERFORM user_command.
ENDMODULE. "pai_0100 INPUT