Saturday, December 18, 2010
To get color for row
Output

- Define color variable with length 3 type char in the final internal which is displayed
- Build layout structure type slis_layout_alv by specifying info_fieldname = 'COLOR' and pass layout structure thru FM REUSE_ALV_GRID_DISPLAY.
- Poplate Final internal with color values for the field COLOR.
REPORT zovh_alv_color_row_col.
*&---------------------------------------------------------------------*
" Declaration
*----------------------------------------------------------------------*
"types
TYPES:
BEGIN OF t_pa0001,
color(3) TYPE c, "1.Declare this
pernr TYPE pa0001-pernr,
ename TYPE pa0001-ename,
END OF t_pa0001.
"Work area
DATA:
w_pa0001 TYPE t_pa0001.
"Internal tables
DATA:
i_pa0001 TYPE STANDARD TABLE OF t_pa0001.
*&---------------------------------------------------------------------*
* ALV Declarations
*----------------------------------------------------------------------*
* Types Pools
TYPE-POOLS:
slis.
* Types
TYPES:
t_fieldcat TYPE slis_fieldcat_alv,
t_events TYPE slis_alv_event,
t_layout TYPE slis_layout_alv.
* Workareas
DATA:
w_fieldcat TYPE t_fieldcat,
w_events TYPE t_events,
w_layout TYPE t_layout.
* Internal Tables
DATA:
i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
i_events TYPE STANDARD TABLE OF t_events.
*&---------------------------------------------------------------------*
*&START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION .
PERFORM get_data.
PERFORM color_the_row. "Populate Color like this based on ur conditions
*&---------------------------------------------------------------------*
*&END-OF-SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM fieldcat.
PERFORM layout_build.
PERFORM dispaly .
*&---------------------------------------------------------------------*
" Form fieldcat
*&---------------------------------------------------------------------*
FORM fieldcat .
CLEAR :
w_fieldcat,i_fieldcat[].
w_fieldcat-col_pos = 1.
w_fieldcat-row_pos = 1.
w_fieldcat-fieldname = 'PERNR'.
w_fieldcat-tabname = 'I_PA0001'.
w_fieldcat-emphasize = 'C71'. "Setting Color for Column
w_fieldcat-seltext_m = 'Employee No'.
w_fieldcat-no_zero = 'PERNR'.
APPEND w_fieldcat TO i_fieldcat.
CLEAR w_fieldcat.
w_fieldcat-col_pos = 2.
w_fieldcat-row_pos = 1.
w_fieldcat-outputlen = '200'.
w_fieldcat-fieldname = 'ENAME'.
w_fieldcat-tabname = 'I_PA0001'.
w_fieldcat-seltext_l = 'ENAME'.
APPEND w_fieldcat TO i_fieldcat.
CLEAR w_fieldcat.
ENDFORM. " fieldcat
*&---------------------------------------------------------------------*
*& Form dispaly
*&---------------------------------------------------------------------*
FORM dispaly .
DATA :l_program TYPE sy-repid.
l_program = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_program
i_callback_html_top_of_page = 'TOP_OF_PAGE'
is_layout = w_layout
it_events = i_events
it_fieldcat = i_fieldcat
TABLES
t_outtab = i_pa0001.
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. " dispaly
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data .
DO 20 TIMES.
SELECT pernr ename
FROM pa0001
APPENDING CORRESPONDING FIELDS OF TABLE i_pa0001
UP TO 10 ROWS.
ENDDO.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
FORM layout_build .
w_layout-info_fieldname = 'COLOR'. "Pass COLOR field name like this.
ENDFORM. " layout_build
*&---------------------------------------------------------------------*
*& Form color_the_row
*&---------------------------------------------------------------------*
FORM color_the_row .
LOOP AT i_pa0001 INTO w_pa0001.
IF sy-tabix > 3.
w_pa0001-color = 'C31'.
MODIFY i_pa0001 FROM w_pa0001 INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDFORM. " color_the_row
*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
FORM top_of_page USING document TYPE REF TO cl_dd_document.
DATA:
l_text TYPE sdydo_text_element.
l_text = 'xyz'.
CALL METHOD document->add_text
EXPORTING
text = l_text
sap_emphasis = cl_dd_document=>strong
sap_style = cl_dd_document=>key.
CALL METHOD document->new_line.
l_text = 'lmn'.
CALL METHOD document->add_text
EXPORTING
text = l_text
sap_fontsize = cl_dd_document=>medium
sap_color = cl_dd_document=>list_positive
sap_style = cl_dd_document=>key.
CALL METHOD document->underline.
CALL METHOD document->add_gap
EXPORTING
width = '25'.
CALL METHOD document->add_text
EXPORTING
text = l_text
sap_fontsize = cl_dd_document=>medium
sap_color = cl_dd_document=>list_positive
sap_style = cl_dd_document=>key.
ENDFORM. "top_of_page
Output

Followers
Popular Posts
- SAP Adobe Form - Steps to create simple ADOBE Form and calling it from ABAP Program
- ABAP - ALV Report example with steps
- ABAP - Step by step tutorial on Smart Forms - Template Node
- ABAP - Sending email with pdf attachment
- SAP ABAP - CL_ABAP_CHAR_UTILITIES class usage
- ABAP - Multiple value selection from F4 help for SELECT-OPTIONS
- Execute ABAP Report using SUBMIT statement
- ABAP - Select all or Deselect all in ALV or Check box handling in ALV
- SAP ABAP-PDF display in Custom Container
- Web Dynpro ABAP ALV - ON_CLICK event
0 comments:
Post a Comment
Your useful comments, suggestions are appreciated.Your comments are moderated.