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-LIGHTS

former_member329386
Participant
0 Likes
854

Hi all

I want to learn how to add lights in alv report. please give simplest sample code.

Thanks

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
833

Check the following program code for the Lights in ALV Report.

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.

************************************************************************
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

************************************************************************

************************************************************************
FORM WRITE_REPORT.

DATA: LAYOUT TYPE SLIS_LAYOUT_ALV.

LAYOUT-COLTAB_FIELDNAME = 'TCOLOR'.
LAYOUT-INFO_FIELDNAME = 'COLOR_LINE'.

PERFORM BUILD_FIELD_CATALOG.



CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FIELDCAT
TABLES
T_OUTTAB = IMARA.

ENDFORM. "write_report

************************************************************************


************************************************************************
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'.
APPEND FC_TMP TO FIELDCAT.

ENDFORM. "build_field_catalog 

REward Points if useful.

6 REPLIES 6
Read only

Former Member
0 Likes
833

Check this link:

http://www.saptechnical.com/Tutorials/ALV/Lights/ALV.htm.

Here you have a simple program on ALV Lights

Read only

Former Member
0 Likes
834

Check the following program code for the Lights in ALV Report.

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.

************************************************************************
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

************************************************************************

************************************************************************
FORM WRITE_REPORT.

DATA: LAYOUT TYPE SLIS_LAYOUT_ALV.

LAYOUT-COLTAB_FIELDNAME = 'TCOLOR'.
LAYOUT-INFO_FIELDNAME = 'COLOR_LINE'.

PERFORM BUILD_FIELD_CATALOG.



CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FIELDCAT
TABLES
T_OUTTAB = IMARA.

ENDFORM. "write_report

************************************************************************


************************************************************************
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'.
APPEND FC_TMP TO FIELDCAT.

ENDFORM. "build_field_catalog 

REward Points if useful.

Read only

Vijay
Active Contributor
0 Likes
833

hi

check these links will help you out

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

regards

vijay

reward points if helpful

Read only

Former Member
0 Likes
833

Hi,

copy this & excute..

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.

************************************************************************

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

************************************************************************

************************************************************************

FORM WRITE_REPORT.

DATA: LAYOUT TYPE SLIS_LAYOUT_ALV.

LAYOUT-COLTAB_FIELDNAME = 'TCOLOR'.

LAYOUT-INFO_FIELDNAME = 'COLOR_LINE'.

PERFORM BUILD_FIELD_CATALOG.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FIELDCAT

TABLES

T_OUTTAB = IMARA.

ENDFORM. "write_report

************************************************************************

************************************************************************

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'.

APPEND FC_TMP TO FIELDCAT.

ENDFORM. "build_field_catalog

Read only

Former Member
0 Likes
833

hi abap fighter,

look at the program i made... se the bold part you will be able to impelment lights easily,

----


  • DECLARING TYPES POOL *

----


  • All the definitions of internal tables, structures and constants

  • are declared in a type-pool called SLIS.

type-pools: slis.

----


  • TABLES *

----


tables: vbak,vbap,kna1.

----


  • TYPES *

----


*&--defining types for TABLE VBAK

types: begin of t_vbak,

vbeln type vbeln_va, "sales document

kunnr type kunag,

erdat type erdat,

auart type auart,

netwr type netwr_ak,

waerk type waerk,

vkorg type vkorg,

vtweg type vtweg,

spart type spart,

name1 type name1_gp,

stras type stras_gp,

ort01 type ort01_gp,

pstlz type pstlz,

regio type regio,

land1 type land1_gp,

telf1 type telf1,

end of t_vbak.

*&--Defining types for TABLE VBAP

types: begin of t_vbap,

vbeln type vbeln_va,

posnr type posnr_va,

matnr type matnr,

maktx type maktx,

end of t_vbap.

*&--MERGED FINAL SALES TABLE

types: begin of t_sales_final,

vbeln type vbeln_va,

kunnr type kunag,

posnr type posnr_va,

erdat type erdat, "date of creation

auart type auart,

netwr type netwr_ak,

waerk type waerk,

vkorg type vkorg,

vtweg type vtweg,

spart type spart,

name1 type name1_gp,

v_lights type c,

stras type stras_gp,

ort01 type ort01_gp,

pstlz type pstlz,

regio type regio,

land1 type land1_gp,

telf1 type telf1,

matnr type matnr,

maktx type maktx,

end of t_sales_final.

  • defining wrokarea and IT.

----


  • WORK AREA DECLARATION *

----


*&---work area for Internal Tables

data: wa_vbak type t_vbak.

data: wa_vbap type t_vbap.

data: wa_sales_final type t_sales_final.

*&--work area for layout

data: wa_layout type slis_layout_alv.

----


  • INTERNAL TABLES DECLARATION *

----


*&---Internal tables without Header Line.

data : i_vbak type standard table of t_vbak,

i_vbap type standard table of t_vbap,

i_sales_final type standard table of t_sales_final.

*&---Internal table for field catalog

data : i_fieldcat type slis_t_fieldcat_alv,

*&---Internal table for the sorting sequence.

i_sortinfo type slis_t_sortinfo_alv,

*&---Internal table for the event catalog.

i_eventcat type slis_t_event,

*&---Internal table for the top of page event

i_listheader type slis_t_listheader.

----


  • VARIABLE DECLARATION *

----


data : v_progname like sy-repid, "Program name(system defined)

v_gridtitle type lvc_title. "Grid Title

----


  • INITIALIZATION EVENT *

----


initialization.

v_progname = sy-repid.

refresh:i_vbak,

i_vbap,

i_sales_final,

i_fieldcat,

i_sortinfo,

i_eventcat,

i_listheader.

clear: wa_vbak,

wa_vbap,

wa_sales_final,

wa_layout.

----


  • SELECTION SCREEN *

----


  • SCREEN FOR ENTERING INFORMATION

selection-screen begin of block b1 with frame title text-001.

select-options: r_vbeln for wa_vbak-vbeln obligatory.

select-options: r_erdat for wa_vbak-erdat obligatory.

selection-screen end of block b1 .

----


  • AT SELECTION SCREEN *

----


at selection-screen.

perform zf_validate_sales_doc_no.

perform zf_validate_date.

----


  • START OF SELECTION EVENT

----


start-of-selection.

perform zf_populate_header.

perform zf_populate_detail.

perform zf_append_sales_final.

----


  • END OF SELECTION EVENT

----


end-of-selection.

*If Internal Table Is Populated Then Only Display Alv Report.

if i_sales_final is not initial.

  • Prepare fieldcatalog .

perform zf_build_fieldcat using i_fieldcat.

  • MODIFY the records IN the internal TABLE for the traffic lights.

perform zf_modify_final.

  • build event catalogue

perform zf_eventcat using i_eventcat.

  • build sorting

perform zf_sorting using i_sortinfo.

  • &---Build Listheader for TOP OF PAGE EVENT.

perform zf_build_listheader using i_listheader.

  • &---Build layout.

perform zf_layout.

  • &---Initializating Grid Title

perform zf_build_grid_title.

  • &---Display alv grid.

perform zf_display_alv_grid.

else.

*If Table is not Populated ie Records Does not exist

message 'Record Does Not Exist' type 'S'.

endif.

&----


*& Form zf_validate_sales_doc_no

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_validate_sales_doc_no .

select single vbeln into wa_vbak-vbeln from vbak where vbeln in r_vbeln .

if sy-subrc <> 0.

message i101.

endif.

endform. " zf_validate_sales_doc_no

&----


*& Form zf_validate_date

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_validate_date .

  • if date is future

if r_erdat-low >= sy-datum.

message e102.

elseif r_erdat-high >= sy-datum.

message e103.

endif.

endform. " zf_validate_date

&----


*& Form zf_populate_header

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_populate_header .

select vbeln

kunnr

erdat

auart

netwr

waerk

vkorg

vtweg

spart

into table i_vbak from vbak where vbeln in r_vbeln.

if sy-subrc <> 0.

message 'RECORD DOES NOT EXIST' type 'E'.

endif.

sort i_vbak by vbeln.

*&--LOGIC TO GET FIELDS FROM TABLE KNA1 INTO INTERNAL TABLE I_VBAK

loop at i_vbak into wa_vbak.

select single name1 stras ort01 pstlz regio land1 telf1 into (wa_vbak-name1,

wa_vbak-stras,

wa_vbak-ort01,

wa_vbak-pstlz,

wa_vbak-regio,

wa_vbak-land1,

wa_vbak-telf1)

from kna1

where kunnr = wa_vbak-kunnr.

  • modifying it_header.

modify i_vbak from wa_vbak.

clear wa_vbak.

endloop.

endform. " zf_populate_header

&----


*& Form zf_populate_detail

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_populate_detail .

if i_vbak[] is not initial.

select vbeln

posnr

matnr

into table i_vbap from vbap

for all entries in i_vbak where vbeln = i_vbak-vbeln.

endif.

sort i_vbap by vbeln.

sort i_vbap by posnr.

*&--LOGIC TO GET FIELDS FROM TABLE MAKT INTO INTERNAL TABLE I_VBAP

loop at i_vbap into wa_vbap.

select single maktx into (wa_vbap-maktx)

from makt where matnr = wa_vbap-matnr and spras = sy-langu.

  • modifying it_header.

modify i_vbap from wa_vbap.

clear wa_vbap.

endloop.

endform. " zf_populate_detail

&----


*& Form zf_append_sales_final

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_append_sales_final .

sort i_vbak by vbeln.

sort i_vbap by vbeln posnr.

loop at i_vbak into wa_vbak.

move-corresponding wa_vbak to wa_sales_final.

read table i_vbap with key vbeln = wa_vbak-vbeln

binary search transporting no fields.

loop at i_vbap into wa_vbap from sy-tabix.

if wa_vbap-vbeln <> wa_vbak-vbeln.

exit.

endif.

move-corresponding wa_vbap to wa_sales_final.

append wa_sales_final to i_sales_final.

endloop.

endloop.

endform. " zf_append_sales_final

&----


*& Form zf_build_fieldcat

&----


  • text

----


  • -->P_I_FIELDCAT text

----


form zf_build_fieldcat using p_i_fieldcat type slis_t_fieldcat_alv.

data: l_fieldcat type slis_fieldcat_alv. "local Workarea used

clear l_fieldcat.

FOR LIGHT IN COLUMN

clear l_fieldcat.

l_fieldcat-col_pos = '1'. " POSITION OF THE COLUMN.

l_fieldcat-fieldname = 'V_LIGHTS'.

" FIELD FOR WHICH CATALOG ID FILLED.

*We are passing final internal table 'I_FINAL' to l_fieldcat(local

*variable

l_fieldcat-tabname = 'I_SALES_FINAL'.

" INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.

l_fieldcat-just = 'C'. " FOR JUSTIFICATION.

l_fieldcat-outputlen = 20.

" TO DEFINE OUTPUT LENGTH OF THE COLUMN.

append l_fieldcat to p_i_fieldcat.

                                                    • FIRST COLUMN ********************************

l_fieldcat-col_pos = '2'. " POSITION OF THE COLUMN

l_fieldcat-fieldname = 'VBELN'. " FIELD FOR WHICH CATALOG ID FILLED

l_fieldcat-tabname = 'I_SALES_FINAL'. " INTERNAL TABLE BELONGS TO

l_fieldcat-key = 'X'. " SO THAT this field is not scrollable hiddable.

l_fieldcat-just = 'L'. " FOR JUSTIFICATION

*l_fieldcat-hotspot = 'X'. " MARK THIS field as hotsopt

l_fieldcat-lzero = 'X'. " OUTPUT WITH leading zeros.

l_fieldcat-seltext_l = 'Sales Document'. " long text for header.

l_fieldcat-seltext_m = 'Sales Doc'. " medium text for header.

l_fieldcat-seltext_s = 'Sales Doc'. " sort text for header.

l_fieldcat-outputlen = 20. " SET THE output length.

l_fieldcat-ref_tabname = 'VBAK'. " FOR F1 & F4 help as

append l_fieldcat to p_i_fieldcat.

clear l_fieldcat.

**************************SECOND COLUMN ********************************

*l_fieldcat-col_pos = '3'. " POSITION OF THE COLUMN

l_fieldcat-row_pos = '2'. " POSITION OF THE COLUMN

l_fieldcat-fieldname = 'POSNR'. " FIELD FOR WHICH CATALOG ID FILLED

l_fieldcat-tabname = 'I_SALES_FINAL'. " INTERNAL TABLE BELONGS TO

l_fieldcat-key = 'X'. " SO THAT this field is not scrollable hiddable.

l_fieldcat-just = 'L'. " FOR JUSTIFICATION

l_fieldcat-hotspot = 'X'. " MARK THIS field as hotsopt

l_fieldcat-lzero = 'x'. " OUTPUT WITH leading zeros.

l_fieldcat-seltext_l = 'Sales Document Item'. " long text for header.

l_fieldcat-seltext_m = 'Sales Document Item'. " medium text for header.

l_fieldcat-seltext_s = 'Sales Document Item'. " sort text for header.

l_fieldcat-outputlen = 20. " SET THE output length.

l_fieldcat-ref_tabname = 'VBAP'. " FOR F1 & F4 help as

append l_fieldcat to p_i_fieldcat.

clear l_fieldcat.

endform. " zf_build_fieldcat

&----


*& Form zf_eventcat

&----


  • text

----


  • -->P_I_EVENTCAT text

----


form zf_eventcat using p_i_eventcat type slis_t_event.

data: l_eventcat type slis_alv_event.

clear l_eventcat.

call function 'REUSE_ALV_EVENTS_GET'

exporting

i_list_type = 0

importing

et_events = p_i_eventcat

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.

  • TOP OF PAGE FORM

clear l_eventcat.

read table p_i_eventcat into l_eventcat with key

name = slis_ev_top_of_page.

"(COMPONENT "NAME"of structure)

if sy-subrc = 0. "if success

move 'ZF_TOP_OF_PAGE' to l_eventcat-form.

"matches name and moves form to workarea and modifies table

modify p_i_eventcat from l_eventcat index sy-tabix

transporting form.

endif.

  • PF_STATUS_SET FORM

clear l_eventcat.

read table p_i_eventcat into l_eventcat with key

name = slis_ev_pf_status_set.

if sy-subrc = 0.

move 'ZF_PF_STATUS_SET' to l_eventcat-form.

modify p_i_eventcat from l_eventcat index sy-tabix

transporting form.

.

endif.

  • USER_COMMAND FORM

clear l_eventcat.

read table p_i_eventcat into l_eventcat with key

name = slis_ev_user_command.

if sy-subrc = 0.

move 'ZF_USER_COMMAND' to l_eventcat-form.

modify p_i_eventcat from l_eventcat index sy-tabix

transporting form.

endif.

endform. " zf_eventcat

&----


*& Form zf_sorting

&----


  • text

----


  • -->P_I_SORTINFO text

----


form zf_sorting using p_i_sortinfo.

endform. " zf_sorting

&----


*& Form zf_build_listheader

&----


  • text

----


  • -->P_I_LISTHEADER text

----


form zf_build_listheader using p_i_listheader type slis_t_listheader.

data: l_listheader type slis_listheader.

refresh p_i_listheader.

clear l_listheader.

  • HEADER

l_listheader-typ = 'H'.

l_listheader-info = 'FUJITSU CONSULTING INDIA LTD.'.

append l_listheader to p_i_listheader.

  • SELECTION

l_listheader-typ = 'S'.

l_listheader-key = 'Date:'.

l_listheader-info = sy-datum.

append l_listheader to p_i_listheader.

  • ACTION

l_listheader-typ = 'A'.

*l_listheader-key =

l_listheader-info = 'SALES ORDER ALV REPORT By Rohan Malik'.

append l_listheader to p_i_listheader.

endform. " zf_build_listheader

&----


*& Form zf_build_grid_title

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_build_grid_title .

v_gridtitle = 'List of Purchase Order'.

endform. " zf_build_grid_title

&----


*& Form zf_display_alv_grid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_display_alv_grid .

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = v_progname

i_grid_title = v_gridtitle

is_layout = wa_layout

it_fieldcat = i_fieldcat

it_sort = i_sortinfo

it_events = i_eventcat

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab = i_sales_final

  • 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. " zf_display_alv_grid

&----


*& Form zf_top_of_page

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_top_of_page .

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = i_listheader

i_logo = 'ENJOYSAP_LOGO'

  • I_END_OF_LIST_GRID =

.

endform. " zf_top_of_page

&----


*& Form zf_user_command

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_user_command using r_ucomm like sy-ucomm

rs_selfield type slis_selfield .

case r_ucomm. "FCODE

when 'VA03'.

read table i_sales_final into wa_sales_final index rs_selfield-tabindex.

set parameter id 'AUN' field rs_selfield-value.

call transaction 'VA03' and skip first screen .

message i102 with rs_selfield-value .

when '&IC1'. "for hotspot with VBELN, POSNR, MATNR, KUNNR.

if rs_selfield-fieldname = 'MATNR'.

set parameter id 'MAT' field rs_selfield-value.

call transaction 'MM03' and skip first screen.

return.

message i103 with rs_selfield-value .

endif.

if rs_selfield-fieldname = 'VBELN'.

set parameter id 'AUN' field rs_selfield-value.

call transaction 'VA03' and skip first screen.

return.

message i104 with rs_selfield-value .

.

endif.

endcase.

endform. " zf_user_command

&----


*& Form ZF_PF_STATUS_SET

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_pf_status_set using rt_extab type slis_t_extab.

set pf-status 'Z11_RM_ALV_SO'.

endform. " ZF_PF_STATUS_SET

&----


*& Form zf_layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_layout .

wa_layout-zebra = 'X'.

wa_layout-lights_fieldname = 'V_LIGHTS'.

wa_layout-lights_tabname = 'I_SALES_FINAL'.

" 1, 2 or 3 for red, yellow and green respectively.

endform. " zf_layout

&----


*& Form zf_modify_final

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_modify_final .

CODE TO EXECUTE LIGHTS

*start of loop

loop at i_sales_final into wa_sales_final.

*giving conditions and modifying [as we want to change many rows]

if wa_sales_final-netwr <= 10000.

wa_sales_final-v_lights = '1'.

modify i_sales_final from wa_sales_final transporting v_lights.

elseif wa_sales_final-netwr > 10000 and wa_sales_final-netwr <= 100000.

wa_sales_final-v_lights = '2'. " Exception.

modify i_sales_final from wa_sales_final transporting v_lights.

else.

wa_sales_final-v_lights = '3'. " Exception.

modify i_sales_final from wa_sales_final transporting v_lights.

endif.

endloop.

reward point s if helpful

rohan malik

Read only

former_member188829
Active Contributor
0 Likes
833

Hi,

Check this thread..