Zellen farbig formatieren

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Es kann eine gesamte Spalte einer Farbe zugewiesen werden im Fieldcat. Aber es kann dann auch bis auf die Zelle runtergebrochen werden, einer Zelle eine Farbe zuzuweisen und so mit der Farbcodierung der Zelle auch eine semantische Bedeutung geben.

Feld einfügen Typ LVC_T_SCOL

In der internen Tabelle, die im ALV ausgegeben wird, muss ein Feld (hier mit Namen CELLCOLL) eingefügt werden, was den Typ LVC_T_SCOL hat.

TYPES: BEGIN OF ty_texte,
       ..., "(normale Felder)
       CELLCOL  TYPE LVC_T_SCOL.    "Zellfarben
TYPES: END OF ty_texte.

Zellenfarbe4.jpg

Das Feld FNAME muss zwingend mit dem gewünschten Feld gefüllt werden. COLOR ist eine Struktur vom Typ LVC_S_COLO.

Zellenfarbe5.jpg


Das Feld COL wird mit einem Farbwert von 1 bis 7 gefüllt. INT und INV werden oft leer sein.

Zellenfarbe6.jpg

Feld CELLCOL in Layout-Struktur bekannt machen

In der Layoutstruktur wird dieses Feld CELLCOL dem ALV bekannt gemacht.

ls_layout-ctab_fname  = 'CELLCOL'.

Feld CELLCOL im Loop füllen

Beim Loop über die interne Tabelle wird dieses Feld CELLCOL nun gefüllt mit dem Feldnamen und dem gewünschten Farbwert.

Data: ls_cellcol type lvc_s_scol.

Field-Symbols: <fs_texte> type ty_texte.

constants: begin of gcs_color_inaktiv,
           col type lvc_col value 5, "steht hier für Grün
           int type lvc_int value 0,
           inv type lvc_inv value 0,
           end of gcs_color_inaktiv.

Loop at gt_texte assigning <fs_texte> where Textart = 'FP' or
                                            Textart = 'NP'.

  ls_cellcol-fname = 'TEXTART'.
  ls_cellcol-color = gcs_color_inaktiv.
  append ls_cellcol to <fs_texte>-cellcol.

  ls_cellcol-fname = 'TEXTNR'.
  ls_cellcol-color = gcs_color_inaktiv.
  append ls_cellcol to <fs_texte>-cellcol.

endloop.

Problem Select in tiefe Struktur

Wenn die interne Tabelle um die interne Tabelle CELLCOL erweitert wurde, liegt eine tiefe Struktur vor, in die nicht mehr so einfach selektiert werden kann mittels

select .. into itab

Es kann dann gleich bei der Syntaxprüfung zu einer Fehlermeldung kommen. Hier behilft man sich dann, indem die tiefe Struktur mit einer Select-Endselect-Schleife gefüllt wird oder die tiefe Struktur bereinigt um CELLCOL definiert wird und die Daten der bereinigten internen Tabelle dann zur tiefen Struktur übertragen werden.

Ausgabe ALV-Liste

Die Zellen mit den Werten "FP" und "NP" in der Spalte Textart (TA) erscheinen grün.

Zellenfarbe3.jpg

Web-Links