ALV - Character Feld mit Space am Anfang

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

ALV - Character Feld mit Space am Anfang

Beitrag von mfromg (ForumUser / 17 / 11 / 0 ) »
Hallo ,

gibt es einen Weg, im ALV-Grid Character-Felder mit führenden leerzeichen so anzuzeigen, dass die führenden Leerzeichen nicht emntfernt werden.


z.B.

Zeile 1
..Punkt A
..Punkt B
Zeile 2
..Punkt C
....Punkt D
....Punkt F

(Die Punkte sind Leerzeichen, da hier sonst auch alles linksbündig angezeigt wird)


Danke

Michael

PS habe im ALV-Grid die im SALV anwendbare Methode SET_LEADING_SPACES in CL_SALV_COLUMN leider nicht gefunden.
Zuletzt geändert von mfromg am 25.07.2018 13:52, insgesamt 1-mal geändert.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ALV - Character Feld mit Space am Anfang

Beitrag von Legxis (Specialist / 160 / 90 / 28 ) »

Code: Alles auswählen.

fieldcatalog-just = 'R'
Das rückt den Text nach rechts ein und zeigt dann vielleicht auch Leerzeichen an. Musst du mal ausprobieren.

Wieso willst du denn führende Leerzeichen haben? Wäre da ein ALV Tree nicht besser?
( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

Re: ALV - Character Feld mit Space am Anfang

Beitrag von mfromg (ForumUser / 17 / 11 / 0 ) »
Hallo Legxis,

danke für die Antwort,

aber alles rechtsbündig würde ja nur funktionieren, wenn ich Blocksatz hätte, ansonsten keine Option.

Alv-Tree ist in dme Fall keine Option.

Gruß

Michael

Re: ALV - Character Feld mit Space am Anfang

Beitrag von Legxis (Specialist / 160 / 90 / 28 ) »
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".
( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

Re: ALV - Character Feld mit Space am Anfang

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
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".
Das ist eine gute Idee. Wenn du es richtig komfortabel haben willst verwende einen Konvertierungsexit, der die Leerzeichen mit dem dem nonbreaking Whitespace austauscht.

Code: Alles auswählen.

    REPLACE ALL OCCURRENCES OF REGEX '\s' IN my_field  WITH |{ cl_abap_conv_in_ce=>uccpi( 160 ) }|.
Dieses "andere Leerzeichen" wird vom ALV nicht nach links gerückt, sieht aber genau so aus wie ein normales Leerzeichen

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
Legxismfromg

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: ALV - Character Feld mit Space am Anfang

Beitrag von Legxis (Specialist / 160 / 90 / 28 ) »
Stefans Lösung funktioniert auf beidem, dem ALV und SALV, hier eine Demo, brauchst du nur zu kopieren um es auszuführen:
(Ich musste die Syntax des Befehls ändern, da ich auf einem alten System bin, da kann ich auf diese Weise keine pipes und curly brackets verwenden.)

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
Bild

Folgende Benutzer bedankten sich beim Autor Legxis für den Beitrag:
mfromg

( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

Re: ALV - Character Feld mit Space am Anfang

Beitrag von mfromg (ForumUser / 17 / 11 / 0 ) »
Hallo ihr Beiden,

vielen Dank für die Lösung. Echt super...

Danke

Michael

Seite 1 von 1

Vergleichbare Themen

0
Antw.
2149
Views
Unicode Problematik bei Character 'SPACE'
von ABAP_User » 31.03.2014 18:40 • Verfasst in Web-Dynpro, BSP + BHTML
3
Antw.
10248
Views
Anzahl Chars in Character-Feld bestimmen
von Timo7 » 01.12.2005 10:55 • Verfasst in ABAP® Core
1
Antw.
3679
Views
character abschneiden...?
von b0rsti » 08.02.2008 11:20 • Verfasst in ABAP® für Anfänger
6
Antw.
2887
Views
Ergebnis gelicht am Anfang eines Reports anzeigen
von bohne » 03.01.2007 14:28 • Verfasst in ABAP® für Anfänger
2
Antw.
1918
Views
Währungsfelder in character konvertieren.
von Gast » 10.10.2005 14:25 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 599
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2228
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8822