REUSE_ALV_GRID_DISPLA
- COLOR CELL
TCOLOR
Definition:
TCOLOR TYPE SLIS_T_SPECIALCOL_ALV,
Beim Layout eine Referenz eingeben
gs_alv_layout-coltab_fieldname = 'TCOLOR'. "Tabelle mit Farbinfo pro Zelle
In der ALV Tabelle in dem Feld TCOLOR, bei dem es sich wiederum um eine Tabelle handelt, die Info einfügen. (Tabelle deswegen, da die Farbinfo ja nicht für die ganze Zeile, sondern nur für ein Feld gilt)
DATA: xcolor TYPE slis_specialcol_alv.
LOOP AT gt_out WHERE status CA 'Vv'.
CLEAR xcolor.
xcolor-fieldname = 'STATUS'.
xcolor-color-col = '3'.
xcolor-color-int = '1'. " Intensified on/off
xcolor-color-inv = '0'.
APPEND xcolor TO gt_out-tcolor.
xcolor-fieldname = 'MATNR'.
APPEND xcolor TO gt_out-tcolor.
MODIFY gt_out.
ENDLOOP.
2. COLOR LINE
LINE_COLOR
Definition:
COLOR_LINE(4) TYPE C,
Beim Layout eine Referenz eingeben
gs_alv_layout-info_fieldname = 'COLOR_LINE'."Spalte mit Farbe für gesamte
In der ALV Tabelle das Feld COLOR_LINE mit der Farbinfo füllen. Diese Farbinfo gilt dann für die gesammte Zeile
LOOP AT gt_out WHERE status CA 'Vv'.
CLEAR gt_out-color_line.
gt_out-color_line = 'C311'. "Cxyz 1-9 1/0 1/0 oder X Gelb
MODIFY gt_out.
ENDLOOP.
3. Welche Farben gibt es?
* gt_out-color_line = 'C111'. "Cxyz 1-9 1/0 1/0 oder X Türkis
* gt_out-color_line = 'C211'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C311'. "Cxyz 1-9 1/0 1/0 oder X Gelb
* gt_out-color_line = 'C411'. "Cxyz 1-9 1/0 1/0 oder X Marineblau
* gt_out-color_line = 'C511'. "Cxyz 1-9 1/0 1/0 oder X Grün
* gt_out-color_line = 'C611'. "Cxyz 1-9 1/0 1/0 oder X Rot
* gt_out-color_line = 'C711'. "Cxyz 1-9 1/0 1/0 oder X Orange
* gt_out-color_line = 'C811'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C911'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'X'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C201'. "Cxyz 1-9 1/0 1/0 oder X Aufhellen
* gt_out-color_line = 'C200'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra Hell)
* gt_out-color_line = 'C801'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C800'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C901'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C900'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C910'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C810'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C210'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra Hell)
4. Bsp.1.:
FORM alv.
DATA: ld_repid LIKE sy-repid,
lv_pf TYPE slis_formname
VALUE 'PF_STATUS_SET',
lt_event_exit TYPE slis_t_event_exit,
lv_command TYPE slis_formname VALUE
'USER_COMMAND',
lc_formname_top_of_page TYPE slis_formname VALUE
'TOP_OF_PAGE'.
"Layout einstellen
gs_alv_layout-zebra = c_active.
gs_alv_layout-coltab_fieldname = 'TCOLOR'. "Tabelle mit Farbinfo pro Zelle
gs_alv_layout-info_fieldname = 'COLOR_LINE'."Spalte mit Farbe für gesamte Linie
gs_alv_layout-colwidth_optimize = c_active.
gs_alv_layout-detail_initial_lines = c_active.
gs_alv_layout-get_selinfos = c_active.
* gs_alv_layout-box_fieldname = 'SEL'.
IF sy-langu = 'D'.
gs_alv_layout-window_titlebar = 'Kritische Verbräuche'.
ELSE.
gs_alv_layout-window_titlebar = 'Critical Consumptions'.
ENDIF.
*--------------------------- End of Declarations -----------------------
"Farbinfo
DATA: xcolor TYPE slis_specialcol_alv.
LOOP AT gt_out WHERE status CA 'Vv'.
IF 1 = 0.
CLEAR xcolor.
xcolor-fieldname = 'STATUS'.
xcolor-color-col = '3'.
xcolor-color-int = '1'. " Intensified on/off
xcolor-color-inv = '0'.
APPEND xcolor TO gt_out-tcolor.
xcolor-fieldname = 'MATNR'.
APPEND xcolor TO gt_out-tcolor.
"gt_out-color_line = 'C410'.
ENDIF.
CLEAR gt_out-color_line.
* gt_out-color_line = 'C111'. "Cxyz 1-9 1/0 1/0 oder X Türkis
* gt_out-color_line = 'C211'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C311'. "Cxyz 1-9 1/0 1/0 oder X Gelb
* gt_out-color_line = 'C411'. "Cxyz 1-9 1/0 1/0 oder X Marineblau
* gt_out-color_line = 'C511'. "Cxyz 1-9 1/0 1/0 oder X Grün
* gt_out-color_line = 'C611'. "Cxyz 1-9 1/0 1/0 oder X Rot
* gt_out-color_line = 'C711'. "Cxyz 1-9 1/0 1/0 oder X Orange
* gt_out-color_line = 'C811'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C911'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'X'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C201'. "Cxyz 1-9 1/0 1/0 oder X Aufhellen
* gt_out-color_line = 'C200'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra Hell)
* gt_out-color_line = 'C801'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C800'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C901'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C900'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C910'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C810'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra)
* gt_out-color_line = 'C210'. "Cxyz 1-9 1/0 1/0 oder X (Wie Zebra Hell)
gt_out-color_line = 'C311'. "Cxyz 1-9 1/0 1/0 oder X Gelb
MODIFY gt_out.
ENDLOOP.
LOOP AT gt_out WHERE volum EQ 0 and mtart <> 'VERP'. "Volumen Null markieren
CLEAR xcolor.
xcolor-fieldname = 'VOLUM'.
xcolor-color-col = '6'.
xcolor-color-int = '1'. " Intensified on/off
xcolor-color-inv = '0'.
APPEND xcolor TO gt_out-tcolor.
xcolor-fieldname = 'IDNRK'.
APPEND xcolor TO gt_out-tcolor.
"gt_out-color_line = 'C410'.
MODIFY gt_out.
ENDLOOP.
DATA: wa_filter LIKE LINE OF gt_filter.
"Filter:
"Immer Filter Materialart
"Wenn Kundenbetreuer, dannn Filter auf Status
IF p_filter = 'X'.
wa_filter-tabname = 'GT_OUT'.
"Vorher: Interkativ KB nur v und V anzeigen
"Nachher:
IF sy-tcode = 'ZSD_ROH_KB'.
IF 1 = 0.
wa_filter-fieldname = 'STATUS'.
wa_filter-sign0 = 'I'.
"wa_filter-optio = 'CP'.
"wa_filter-valuf_int = 'AMLSV*'.
"APPEND wa_filter TO gt_filter.
"WA_FILTER-OPTIO = 'EQ'.
"WA_FILTER-VALUF_INT = 'AML----'.
"APPEND wa_filter TO gt_filter.
wa_filter-optio = 'CP'.
wa_filter-valuf_int = '*v*'.
APPEND wa_filter TO gt_filter.
wa_filter-valuf_int = '*V*'.
APPEND wa_filter TO gt_filter.
wa_filter-fieldname = 'MTART'.
wa_filter-sign0 = 'I'.
wa_filter-optio = 'EQ'.
wa_filter-valuf_int = 'ROH'.
APPEND wa_filter TO gt_filter.
"WA_FILTER-VALUF_INT = 'HALB'.
"APPEND WA_FILTER TO GT_FILTER.
wa_filter-valuf_int = 'HAWA'.
APPEND wa_filter TO gt_filter.
ENDIF.
ELSE.
wa_filter-fieldname = 'MTART'.
wa_filter-sign0 = 'I'.
wa_filter-optio = 'EQ'.
wa_filter-valuf_int = 'ROH'.
APPEND wa_filter TO gt_filter.
"WA_FILTER-VALUF_INT = 'HALB'.
"APPEND WA_FILTER TO GT_FILTER.
wa_filter-valuf_int = 'HAWA'.
APPEND wa_filter TO gt_filter.
ENDIF.
ENDIF.
* Set ALV Variables
ld_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING "I_BYPASSING_BUFFER = 'X'
"I_BUFFER_ACTIVE = ''
i_bypassing_buffer = ''
i_buffer_active = 'X'
i_callback_program = ld_repid
i_callback_pf_status_set = lv_pf
i_callback_user_command = lv_command
i_callback_top_of_page = lc_formname_top_of_page
is_layout = gs_alv_layout
it_fieldcat = gt_alv_fieldcat[]
it_filter = gt_filter[]
i_default = c_active
i_save = c_chara
is_variant = gs_alv_variant
* IT_EVENTS =
* it_event_exit = lt_event_exit[]
TABLES
t_outtab = gt_out
EXCEPTIONS
program_error = 1
OTHERS = 2.
"BREAK STANGL.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
5. Bsp.2:
*&---------------------------------------------------------------------*
*& Report ZHS_TEST01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZHS_TEST01.
"REPORT YMS_COLOURALV NO STANDARD PAGE HEADING.
TYPE-POOLS: SLIS, ICON.
DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: BEGIN OF IMARA OCCURS 0,
LIGHT(4) TYPE C,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MAKTX TYPE MAKT-MAKTX,
COLOR_LINE(4) TYPE C,
TCOLOR TYPE SLIS_T_SPECIALCOL_ALV, "cell
END OF IMARA.
DATA: XCOLOR TYPE SLIS_SPECIALCOL_ALV.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM WRITE_REPORT.
************************************************************************
* GET_DATA
************************************************************************
FORM GET_DATA.
WRITE ICON_GREEN_LIGHT AS ICON TO IMARA-LIGHT.
IMARA-MATNR = 'ABC'.
IMARA-MTART = 'ZCFG'.
IMARA-MAKTX = 'This is description for ABC'.
APPEND IMARA.
WRITE ICON_YELLOW_LIGHT AS ICON TO IMARA-LIGHT.
IMARA-MATNR = 'DEF'.
IMARA-MTART = 'ZCFG'.
IMARA-MAKTX = 'This is description for DEF'.
APPEND IMARA.
WRITE ICON_RED_LIGHT AS ICON TO IMARA-LIGHT.
IMARA-MATNR = 'GHI'.
IMARA-MTART = 'ZCFG'.
IMARA-MAKTX = 'This is description for GHI'.
APPEND IMARA.
LOOP AT IMARA.
IF SY-TABIX = 1.
IMARA-COLOR_LINE = 'C410'. " color line
ENDIF.
IF SY-TABIX = 2. " color CELL
CLEAR XCOLOR.
XCOLOR-FIELDNAME = 'MTART'.
XCOLOR-COLOR-COL = '3'.
XCOLOR-COLOR-INT = '1'. " Intensified on/off
XCOLOR-COLOR-INV = '0'.
APPEND XCOLOR TO IMARA-TCOLOR.
ENDIF.
MODIFY IMARA.
ENDLOOP.
ENDFORM. "get_data
************************************************************************
* WRITE_REPORT
************************************************************************
FORM WRITE_REPORT.
DATA: LAYOUT TYPE SLIS_LAYOUT_ALV.
LAYOUT-COLTAB_FIELDNAME = 'TCOLOR'.
LAYOUT-INFO_FIELDNAME = 'COLOR_LINE'.
PERFORM BUILD_FIELD_CATALOG.
"CALL ABAP LIST VIEWER (ALV)
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FIELDCAT
TABLES
T_OUTTAB = IMARA.
ENDFORM. "write_report
************************************************************************
* BUILD_FIELD_CATALOG
************************************************************************
FORM BUILD_FIELD_CATALOG.
DATA: FC_TMP TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
CLEAR: FIELDCAT. REFRESH: FIELDCAT.
CLEAR: FC_TMP.
FC_TMP-REPTEXT_DDIC = 'Status'.
FC_TMP-FIELDNAME = 'LIGHT'.
FC_TMP-TABNAME = 'IMARA'.
FC_TMP-OUTPUTLEN = '4'.
FC_TMP-ICON = 'X'.
APPEND FC_TMP TO FIELDCAT.
CLEAR: FC_TMP.
FC_TMP-REPTEXT_DDIC = 'Material Number'.
FC_TMP-FIELDNAME = 'MATNR'.
FC_TMP-TABNAME = 'IMARA'.
FC_TMP-OUTPUTLEN = '18'.
APPEND FC_TMP TO FIELDCAT.
CLEAR: FC_TMP.
FC_TMP-REPTEXT_DDIC = 'Material Type'.
FC_TMP-FIELDNAME = 'MTART'.
FC_TMP-TABNAME = 'IMARA'.
FC_TMP-OUTPUTLEN = '10'.
APPEND FC_TMP TO FIELDCAT.
CLEAR: FC_TMP.
FC_TMP-REPTEXT_DDIC = 'Material'.
FC_TMP-FIELDNAME = 'MAKTX'.
FC_TMP-TABNAME = 'IMARA'.
FC_TMP-OUTPUTLEN = '40'.
FC_TMP-EMPHASIZE = 'C610'. " color column
APPEND FC_TMP TO FIELDCAT.
ENDFORM. "build_field_catalog