SAP ABAP - Sample Report Program On Colors In ALV Grid Display.

This report program can be used to color rows of a grid display in 8 different colors.


SAMPLE PROGRAM:

REPORT ZTEST_COLORS_ALV.

TABLES: ekko.

type-pools: slis. "ALV Declarations

* DATA DECLARATION

TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
line_color(4) TYPE C, " Used to store row color attributes
END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.

* ALV DATA DECLARATIONS

DATA: fieldcatalog TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
gd_tab_group TYPE SLIS_T_SP_GROUP_ALV,
gd_layout TYPE SLIA_LAYOUT_ALV,
gd_repid LIKE SY-REPID.

* START OF SELECTION
START-OF-SELECTION.

PERFORM data_retrieval.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.

*&---------------------------------------------------------------------
**& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------
** Build Fieldcatalog for ALV Report
*----------------------------------------------------------------------*
FORM build_fieldcatalog.

fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-datatype = 'CURR'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

ENDFORM. " BUILD_FIELDCATALOG

*&---------------------------------------------------------------------
**& Form BUILD_LAYOUT
*&---------------------------------------------------------------------
** Build layout for ALV grid report
*----------------------------------------------------------------------*
FORM build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-info_fieldname = 'LINE_COLOR'.

ENDFORM. " BUILD_LAYOUT

*&---------------------------------------------------------------------
**& Form DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------
** Display report using ALV grid
*----------------------------------------------------------------------*
FORM display_alv_report.
gd_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko .

ENDFORM. " DISPLAY_ALV_REPORT

*&---------------------------------------------------------------------
**& Form DATA_RETRIEVAL
*&---------------------------------------------------------------------
** Retrieve data form EKPO table and populate itab it_ekko
*----------------------------------------------------------------------
FORM data_retrieval.
DATA: ld_color(1) TYPE C.

SELECT ebeln
ebelp
statu
aedat
matnr
menge
meins
netpr
peinh
UP TO 10 ROWS
FROM ekpo
INTO TABLE it_ekko.

* POPULATE FIELD WITH COLOR ATTRIBUTES
LOOP AT it_ekko INTO wa_ekko.

* POPULATE COLOR VARIABLE WITH COLOR PROPERTIES
* Char 1 = C (This is a color property)
* Char 2 = 3 (Color codes: 1 - 7)
* Char 3 = Intensified on/off ( 1 or 0 )
* Char 4 = Inverse display on/off ( 1 or 0 )
* i.e. wa_ekko-line_color = 'C410'

ld_color = ld_color + 1.

* Only 7 colours so need to reset color value
IF ld_color = 8.
ld_color = 1.
ENDIF.

CONCATENATE 'C' ld_color '10' INTO wa_ekko-line_color.
* wa_ekko-line_color = 'C410'.

MODIFY it_ekko FROM wa_ekko.
ENDLOOP.

ENDFORM. " DATA_RETRIEVAL


OUTPUT SCREEN:














MORE PROGRAMS ON ALV DISPLAY:


- Dynamic ALV Grid/List Display.

- ALV Tree Display.

- Making ALV Grid Fields Editable.

- Display Average Value In ALV Report.

- ...Back To Sample Programs, Tips & Tricks On ALV Grid/List Display.

Your suggestions and comments are welcome in this section.


Please mail all your contributions to administrator@abapmadeeasy.com We request you to mention your Name, Designation, Experience & Organization you are working for. Your posts will be verified and posted in this site with your name.

No comments:

Post a Comment