Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV REPORTS

Former Member
0 Likes
1,002

Is there any event in ALV REPORTS to change the colours in the output list.

what is the event.

Is there any event in ALV REPORTS to change the colours in the output list.

what is the event.

7 REPLIES 7
Read only

Sm1tje
Active Contributor
0 Likes
970

There is no standard event for that, but you can create you own button. And upon clicking button you can create some code to change the color of a column, row or even cell.

Read only

Former Member
0 Likes
970

i can't understand u r answer.

will plz tell the briefly and what to do.

Read only

Former Member
0 Likes
970

check this code...or go to program and select bc*alv and press f4..u will get the sample code

the sample code what i have used is as follows..

...
*&---------------------------------------------------------------------*
*& Report  ZIMP1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZIMP4.
*ALV GRID REPORT WITH HEADER AND FOOTER DISPLAY.

TABLES kna1.
TYPE-POOLS SLIS.

*Data Declaration
TYPEs: BEGIN OF t_kna1,
kunnr TYPE kna1-kunnr,
lAND1 TYPE KNA1-LAND1,
 NAME1 TYPE NAME1_GP,
ORT01 TYPE ORT01_GP,
LINE_COLOR(4) TYPE C,
END OF t_kna1.



DATA: It_kna1 TYPE STANDARD TABLE OF t_kna1 INITIAL SIZE 0,
wa_kna1 TYPE t_kna1.


*ALV Data Declaration
DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID TYPE SY-REPID,
I_EVENTS TYPE SLIS_T_EVENT,
W_EVENTS LIKE LINE OF I_EVENTS.
DATA: I_COMMENT TYPE SLIS_T_LISTHEADER,
WA_COMMENT TYPE SLIS_LISTHEADER.

START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BLD_FLDCAT.
PERFORM BLD_LAYOUT.
PERFORM CALL_EVENTS.
PERFORM DISPLAY_ALV_REPORT.


*Build Field Catalog for ALV Report
FORM BLD_FLDCAT.

FLDCAT-FIELDNAME = 'KUNNR'.
FLDCAT-SELTEXT_M = 'CUSTOMER NUMBER'.
FLDCAT-COL_POS = 0.
FLDCAT-EMPHASIZE = 'C411'.
FLDCAT-KEY = 'X'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'LAND1'.
FLDCAT-SELTEXT_L = 'COUNTRY'.
FLDCAT-COL_POS = 1.
FLDCAT-KEY = 'X'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'NAME1'.
FLDCAT-SELTEXT_L = 'CUSTOMER NAME'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'ORT01'.
FLDCAT-SELTEXT_M = 'CITY'.
FLDCAT-COL_POS = 3.
FLDCAT-EMPHASIZE = 'C110'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.

ENDFORM.


*Build Layout for ALV Grid Report
FORM BLD_LAYOUT.

GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.

ENDFORM.


*Display report using ALV grid
FORM DISPLAY_ALV_REPORT.

DATA T_EVENT TYPE SLIS_T_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = T_EVENT.
IF SY-SUBRC  <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
IS_LAYOUT = GD_LAYOUT
*I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

*I_CALLBACK_HTML_END_OF_LIST = 'END_OF_LIST_HTML'
IT_EVENTS = I_EVENTS
IT_FIELDCAT = FLDCAT[]
I_SAVE = 'X'
TABLES
T_OUTTAB = It_kna1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
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.


*Retrieve data from kna1 table and populate itab It_kna1
FORM DATA_RETRIEVAL.

DATA LD_COLOR(1) TYPE C.

SELECT *
UP TO 200 ROWS
FROM kna1
INTO CORRESPONDING FIELDS OF TABLE It_kna1.

LOOP AT It_kna1 INTO wa_kna1.
LD_COLOR = LD_COLOR + 1.
IF LD_COLOR = 8.
LD_COLOR = 1.
ENDIF.
CONCATENATE 'C' LD_COLOR '10' INTO wa_kna1-LINE_COLOR.
MODIFY It_kna1 FROM wa_kna1.
ENDLOOP.

ENDFORM.

FORM TOP_OF_PAGE.

WA_COMMENT-TYP = 'H'.
WA_COMMENT-info = 'REACHING TOP'.
APPEND WA_COMMENT TO I_COMMENT.
CLEAR WA_COMMENT.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
  EXPORTING
    IT_LIST_COMMENTARY       = I_COMMENT
*   I_LOGO                   =
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =
          .

ENDFORM.

FORM CALL_EVENTS.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = I_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

IF NOT I_EVENTS[] IS INITIAL.

READ TABLE I_EVENTS INTO W_EVENTS WITH KEY NAME = 'END_OF_LIST'.
W_EVENTS-FORM = 'GENERATE_USERCOMMAND_FOOTER'.
MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.

ENDIF.

ENDFORM.

FORM GENERATE_USERCOMMAND_FOOTER.
CLEAR I_COMMENT[].
WA_COMMENT-TYP = 'H'.
WA_COMMENT-INFO = ' Sas sucess end-of-page'.
APPEND WA_COMMENT TO I_COMMENT.
clear wa_comment.

WA_COMMENT-TYP = 'H'.
WA_COMMENT-INFO = ' die hard end-of-page'.
APPEND WA_COMMENT TO I_COMMENT.

CLEAR wa_COMMENT.
WA_COMMENT-TYP = 'S'.
WA_COMMENT-INFO =  SY-PAGNO.
APPEND WA_COMMENT TO I_COMMENT.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_COMMENT

I_LOGO = ''
I_END_OF_LIST_GRID = 'X'.

ENDFORM.
....... 

Check this and let me know u have understnad ot not a..rewards points if usefull

Read only

Former Member
0 Likes
970

yus ....when you define fieldcatlog

add one more field

EMPHASIZE = 'X'

Read only

Former Member
0 Likes
970

Hi,

For getting colours in ALVS

use in fieldcat the following field

wa_fieldcat-emphasize = 'C311'.

C is to specify color and must be in caps

3 is a color number ....u can use from 1 to 9.

first one for bold on or off.(1 on and 0 off)

another one is for inverse on or off.(1 on and 0 off)

Reward if helpful

Jagadish

Read only

venkat_o
Active Contributor
0 Likes
970

Kanigiri reddy, Please have a look at this sample program. Comments have been included wherever those are needed.

report  zvenkat_alv_color_row_col.

*&---------------------------------------------------------------------*
" Declaration
" To get color for row
" 1.Define color variable with length 3 type char in the final internal
"   which is displayed
" 2.build layout structure type slis_layout_alv by specifying
"   info_fieldname = 'COLOR' and pass layout structure thru FM REUSE*ALV*
" 3.Poplate Final internal with color values for the field COLOR.
*----------------------------------------------------------------------*
"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
  "emphasize ===== Set this to highlight column in color
  " Value range: SPACE, 'X' or 'Cxyz' (x:'1'-'9'; y,z: '0'=off '1'=on)
  " 'X' = The column is highlighted in the default color for color highlighting.
  " 'Cxyz' = The column is highlighted in the coded color:
  " C: Color (coding must start with C)
  " x: Color number
  " y: Intensified
  " z: Inverse
*&---------------------------------------------------------------------*
form fieldcat .

  clear :
  w_fieldcat,i_fieldcat[].

  w_fieldcat-fieldname = 'PERNR'.
  w_fieldcat-tabname   = 'I_PA0001'.
  w_fieldcat-emphasize = 'C71'.
  w_fieldcat-seltext_m = 'Employee No'.
  w_fieldcat-no_zero   = 'PERNR'.
  append w_fieldcat to i_fieldcat.
  clear w_fieldcat.


  w_fieldcat-fieldname = 'ENAME'.
  w_fieldcat-tabname   = 'I_PA0001'.
  w_fieldcat-seltext_m = '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_top_of_page      = 'TOP_OF_PAGE'
      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.

endform.                    "top_of_page
I hope that it helps u. Regards, Venkat.O

Read only

Former Member
0 Likes
970

Hi,

Check the following link:

http://sapdev.co.uk/reporting/alv/alvgrid_color.htm

Regards,

Bhaskar