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 problem

Former Member
0 Likes
658

hi friends....

can anybody please give me the code.....

if i click on the data of first alv -


> should display data in second screens' alv corresponding to first alv....

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
625

Hi..,

check this.. it contains the code for all the possible operations on ALV GRID..

http://www.sap-img.com/abap/sample-programs-on-alv-grid.htm

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

  • TABLES AND DATA DECLARATION.

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

*TABLES: mara,makt.",marc.

data syrepid like sy-repid.

data sydatum(10). " LIKE sy-datum.

data sypagno(3) type n.

  • WHEN USING MORE THAN ONE TABLE IN ALV WE NEEED TO DECLARE THE TYPE

  • GROUP (TYPE-POOLS--------->SLIS)

type-pools : slis.

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

  • INTERNAL TABLE DECLARATION.

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

  • INTERNAL TABLE TO HOLD THE VALUES FROM THE MARA TABLE

data: begin of t_mara occurs 0,

matnr like mara-matnr,

meins like mara-meins,

mtart like mara-mtart,

matkl like mara-matkl,

end of t_mara.

  • INTERNAL TABLE TO HOLD THE CONTENTS FROM THE EKKO TABLE

data : begin of t_marc occurs 0,

matnr like mara-matnr,

werks like marc-werks,

minbe like marc-minbe.

data: end of t_marc.

  • INTERNAL TABLE TO HOLD THE VALUES FROM MAKT TABLE.

data : begin of t_makt occurs 0,

matnr like mara-matnr,

maktx like makt-maktx,

spras like makt-spras,

end of t_makt.

  • INTERNAL TABLE WHICH ACTUALLY MERGES ALL THE OTHER INTERNAL TABLES.

data: begin of itab1 occurs 0,

matnr like mara-matnr,

meins like mara-meins,

maktx like makt-maktx,

spras like makt-spras,

werks like marc-werks,

minbe like marc-minbe,

end of itab1.

  • THE FOLLOWING DECLARATION IS USED FOR DEFINING THE FIELDCAT

  • AND THE LAYOUT FOR THE ALV.

  • HERE AS slis_t_fieldcat_alv IS A INTERNAL TABLE WITHOUT A HEADER LINE

  • WE EXPLICITELY DEFINE AN INTERNAL TABLE OF THE SAME STRUCTURE AS THAT

  • OF slis_t_fieldcat_alv BUT WITH A HEADER LINE IN THE DEFINITION.

  • THIS IS DONE TO MAKE THE CODE SIMPLER.

  • OTHERWISE WE MAY HAVE TO DEFINE THE STRUCTURE AS IN THE NORMAL SAP

  • PROGRAMS.

  • IN THE FIELDCATALOG TABLE WE ACTUALLY PASS THE FIELDS FROM ONE OR

  • MORE TABLES AND CREATE A STRUCTURE

  • IN THE LAYOUT STRUCTURE WE BASICALLY DEFINE THE FORMATTING OPTIONS

  • LIKE DISPLAY IN THE ZEBRA PATTERN ,THE HOTSPOT OPTIONS ETC.

data: fieldcatalog type slis_t_fieldcat_alv with header line,

fieldlayout type slis_layout_alv.

  • DECLARING THE EVENTTABLE INTERNL TABLE FOR USING EVENTS LIKE

  • TOP-OF-PAGE ETC.

data : eventstab type slis_t_event with header line.

  • DECLARING AN INTERNAL TABLE TO HOLD THE DATA FOR THE TOP-OF-PAGE

data : heading type slis_t_listheader with header line.

data : heading1 type slis_t_listheader with header line.

data : heading2 type slis_t_listheader with header line.

data : heading3 type slis_t_listheader with header line.

data : heading4 type slis_t_listheader with header line.

data : heading5 type slis_t_listheader with header line.

data : heading6 type slis_t_listheader with header line.

data : heading7 type slis_t_listheader with header line.

data : heading8 type slis_t_listheader with header line.

  • STRUCTURE TO PASS THE COLOR ATTRIBUTES FOR DISPLAY.

data : colorstruct type slis_coltypes.

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

  • INITIALIZATION. *

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

initialization.

syrepid = sy-repid.

sypagno = sy-pagno.

clear fieldcatalog.

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

  • START-OF-SELECTION. *

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

start-of-selection.

  • SUBROUTINE TO POPULATE THE COLORSTRUCT

perform fill_colorstruct using colorstruct.

  • SUBROUTINE TO POPULATE THE FIELDS OF THE FIELD CATALOGUE

perform populate_fieldcatalog.

  • SUBROUTINE TO SELECT DATA FROM VARIOUS TABLES AND POPULATE IT IN THE

  • INTERNAL TABLE.

perform selectdata_and_sort.

  • SUBROUTINE TO POPULATE THE LAYOUT STRUCTURE.

perform populate_layout using fieldlayout.

  • SUBROUTINE TO CALL THE FUNCTION MERGE TO ENSURE PROPER DISPLAY.

perform merge_fieldcatalog.

  • SUBROUTINE TO POPULATE THE EVENTSTAB.

perform fill_eventstab tables eventstab.

  • SUBROUTINE TO POPULATE THE HEADING TABLES.

perform fill_headingtable tables heading using 'HEADING'.

perform fill_headingtable tables heading1 using 'HEADING1'.

perform fill_headingtable tables heading2 using 'HEADING2'.

perform fill_headingtable tables heading3 using 'HEADING3'.

perform fill_headingtable tables heading4 using 'HEADING4'.

perform fill_headingtable tables heading5 using 'HEADING5'.

perform fill_headingtable tables heading6 using 'HEADING6'.

perform fill_headingtable tables heading7 using 'HEADING7'.

perform fill_headingtable tables heading8 using 'HEADING8'.

  • SUBROUTINE TO DISPLAY THE LIST.

perform display_alv_list.

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

  • FORMS

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

  • IN THIS SUBROUTINE WE POPULATE THE FIELDCATALOG TABLE WITH THE NAMES

  • OF THE TABLE,FIELDNAME,WHETHER IT IS KEY FIELD OR NOT,HEADING AND

  • COLUMN JUSTIFICATION.

form populate_fieldcatalog.

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MATNR' 'X' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MEINS' ' '.

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MAKTX' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MTART' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MATKL' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'SPRAS' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'WERKS' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MINBE' ' ' .

endform. " POPULATE_FIELDCATALOG

----


  • FORM FILL_FIELDS_OF_FIELDCATALOG *

----


  • ........ *

----


  • --> FIELDCATALOG *

  • --> P_TABNAME *

  • --> P_FIELDNAME *

  • --> P_KEY *

  • --> P_KEY *

----


form fill_fields_of_fieldcatalog tables fieldcatalog

structure fieldcatalog

using p_tabname

p_fieldname

p_key.

  • p_no_out.

fieldcatalog-tabname = p_tabname.

fieldcatalog-fieldname = p_fieldname.

fieldcatalog-key = p_key.

fieldcatalog-emphasize = '1234'.

*fieldcatalog-no_out = p_no_out.

append fieldcatalog.

endform. " FILL_FIELDSOFFIELDCATALOG

----


  • FORM POPULATE_LAYOUT *

----


  • ........ *

----


  • --> FIELDLAYOUT *

----


form populate_layout using fieldlayout type slis_layout_alv.

fieldlayout-f2code = '&ETA' .

fieldlayout-zebra = 'X'.

  • FOR THE WINDOW TITLE.

fieldlayout-window_titlebar = 'ALV with Events'.

fieldlayout-colwidth_optimize = 'X'.

fieldlayout-no_vline = ' '.

*fieldlayout-no_input = 'X'.

fieldlayout-confirmation_prompt = ''.

fieldlayout-key_hotspot = 'X'.

  • This removes the column headings if the flag is set to 'X'

fieldlayout-no_colhead = ' '.

*fieldlayout-hotspot_fieldname = 'MAKTX'.

fieldlayout-detail_popup = 'X'.

  • fieldlayout-coltab_fieldname = 'X'.

endform. " POPULATE_LAYOUT

----


  • FORM SELECTDATA_AND_SORT *

----


  • ........ *

----


form selectdata_and_sort.

select matnr meins mtart matkl from mara

into corresponding fields of t_mara

up to 500 rows .

select matnr maktx spras from makt

into corresponding fields of t_makt

where matnr = t_mara-matnr and

spras = sy-langu.

select matnr werks minbe from marc

into corresponding fields of t_marc

where matnr = t_mara-matnr.

append t_marc.

endselect.

append t_makt.

endselect.

append t_mara.

endselect.

perform populate_itab1.

sort itab1 by matnr.

endform. " SELECTDATA_AND_SORT

----


  • FORM MERGE_FIELDCATALOG *

----


  • ........ *

----


form merge_fieldcatalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = syrepid

i_internal_tabname = 'ITAB1'

  • i_structure_name = 'COLORSTRUCT'

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = syrepid

changing

ct_fieldcat = fieldcatalog[]

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

endform. " MERGE_FIELDCATALOG

  • IN THIS FUNCTION THE MINIMUM PARAMETERS THAT WE NEED TO PASS IS AS

  • FOLLOWS:-

  • i_callback_program --> CALLING PROGRAM NAME

  • i_structure_name --> STRUCTURE NAME.

  • is_layout --> LAYOUT NAME.

  • it_fieldcat ---> BODY OF THE FIELD CATALOGUE INTERNAL TABLE

form display_alv_list.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

i_callback_program = syrepid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

i_structure_name = 'ITAB1'

is_layout = fieldlayout

it_fieldcat = fieldcatalog[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • THE FOLLOWING PARAMETER IS SET AS 'A' INORDER TO DISPLAY THE STANDARD

  • TOOL BAR

i_save = 'A'

  • IS_VARIANT = ' '

it_events = eventstab[]

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab = itab1

exceptions

program_error = 1

others = 2.

endform. " DISPLAY_ALV_LIST

&----


*& Form POPULATE_ITAB1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form populate_itab1.

loop at t_mara.

loop at t_makt where matnr = t_mara-matnr.

loop at t_marc where matnr = t_mara-matnr.

move-corresponding t_mara to itab1.

move-corresponding t_makt to itab1.

move-corresponding t_marc to itab1.

append itab1.

endloop.

endloop.

endloop.

endform. " POPULATE_ITAB1

&----


*& Form FILL_EVENTSTAB

&----


  • text

----


  • -->P_EVENTSTAB text *

----


form fill_eventstab tables p_eventstab structure eventstab.

  • WHEN THE FOLLOWING FUNCTION IS CALLED THE SYSTEM POPULATES THE

  • INTERNAL TABLE EVENTSTAB WITH A LIST OF EVENTS NAME.

  • AS SHOWN BELOW WHEN USING I_LIST_TYPE = 0 THE FUNCTION RETURNS 14

  • EVENTS NAME.

call function 'REUSE_ALV_EVENTS_GET'

exporting

i_list_type = 0

importing

et_events = p_eventstab[]

exceptions

list_type_wrong = 1

others = 2.

  • BY CALLING THE ABOVE FUNCTION WE FIRST POPULATE THE EVENTSTAB WITH

  • THE PREDEFINED EVENTS AND THEN WE MOVE THE FORM NAME AS SHOWN BELOW.

  • WE ASSIGN A FORM NAME TO THE EVENT AS REQUIRED BY THE USER.

  • FORM NAME CAN BE ANYTHING.THE PERFORM STATEMENT FOR THIS FORM

  • IS DYNAMICALY CALLED.

read table p_eventstab with key name = slis_ev_top_of_page.

if sy-subrc = 0 .

move 'TOP_OF_PAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_top_of_coverpage.

if sy-subrc = 0 .

move 'TOP_OF_COVERPAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_end_of_coverpage .

if sy-subrc = 0 .

move 'END_OF_COVERPAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_foreign_top_of_page.

if sy-subrc = 0 .

move 'FOREIGN_TOP_OF_PAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_foreign_end_of_page.

if sy-subrc = 0 .

move 'FOREIGN_END_OF_PAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_list_modify.

if sy-subrc = 0 .

move 'LIST_MODIFY' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_top_of_list.

if sy-subrc = 0 .

move 'TOP_OF_LIST' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_end_of_page.

if sy-subrc = 0 .

move 'END_OF_PAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_end_of_list .

if sy-subrc = 0 .

move 'END_OF_LIST' to p_eventstab-form.

append p_eventstab.

endif.

endform. " FILL_EVENTSTAB

&----


*& Form FILL_HEADINGTABLE

&----


  • text

----


  • -->P_HEADING text *

----


form fill_headingtable tables p_heading structure heading

using tablename.

case tablename.

when 'HEADING'.

p_heading-typ = 'H'.

concatenate

' REPORT NAME:-' syrepid

' ABB Industry Pte Ltd' into p_heading-info.

append p_heading.

write sy-datum using edit mask '__/__/____' to sydatum.

concatenate

' DATE:-' sydatum ' USER: ' sy-uname 'PAGE NO:' sypagno

into p_heading-info.

append p_heading.

when 'HEADING1'.

p_heading-typ = 'H'.

p_heading-info = 'TOP-OF-COVER-PAGE'.

append p_heading.

when 'HEADING2'.

p_heading-typ = 'H'.

p_heading-info = 'END-OF-COVER-PAGE'.

append p_heading.

when 'HEADING3'.

p_heading-typ = 'H'.

p_heading-info = 'FOREIGN-TOP-OF-PAGE'.

append p_heading.

when 'HEADING4'.

p_heading-typ = 'H'.

p_heading-info = 'FOREIGN-END-OF-PAGE'.

append p_heading.

  • WHEN 'HEADING5'.

  • P_HEADING-TYP = 'H'.

  • P_HEADING-INFO = 'LIST-MODIFY'.

  • APPEND P_HEADING.

when 'HEADING6'.

p_heading-typ = 'H'.

p_heading-info = 'END-OF-PAGE'.

append p_heading.

when 'HEADING7'.

p_heading-typ = 'H'.

p_heading-info = 'END-OF-LIST'.

append p_heading.

when 'HEADING8'.

p_heading-typ = 'H'.

p_heading-info = 'TOP-OF-LIST'.

append p_heading.

endcase.

endform. " FILL_HEADINGTABLE

----


  • FORM TOP_OF_PAGE *

----


  • ........ *

----


form top_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading[]

exceptions

others = 1.

endform.

&----


*& Form FILL_COLORSTRUCT

&----


  • text

----


  • -->P_COLORSTRUCT text *

----


form fill_colorstruct using p_colorstruct type slis_coltypes .

p_colorstruct-heacolfir-col = 6.

p_colorstruct-heacolfir-int = 1.

p_colorstruct-heacolfir-inv = 1.

endform. " FILL_COLORSTRUCT

----


  • FORM TOP_OF_COVERPAGE *

----


  • ........ *

----


form top_of_coverpage.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading1[]

exceptions

others = 1.

endform.

----


  • FORM END_OF_COVERPAGE *

----


  • ........ *

----


form end_of_coverpage.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading2[]

exceptions

others = 1.

endform.

----


  • FORM FOREIGN_TOP_OF_PAGE *

----


  • ........ *

----


form foreign_top_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading3[]

exceptions

others = 1.

endform.

----


  • FORM FOREIGN_END_OF_PAGE *

----


  • ........ *

----


form foreign_end_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading4[]

exceptions

others = 1.

endform.

----


  • FORM LIST_MODIFY *

----


  • ........ *

----


*FORM LIST_MODIFY.

  • CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

  • EXPORTING

  • IT_LIST_COMMENTARY = HEADING5[]

  • EXCEPTIONS

  • OTHERS = 1.

*ENDFORM.

----


  • FORM END_OF_PAGE *

----


  • ........ *

----


form end_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading6[]

exceptions

others = 1.

endform.

----


  • FORM END_OF_LIST *

----


  • ........ *

----


form end_of_list.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading7[]

exceptions

others = 1.

endform.

----


  • FORM TOP_OF_LIST *

----


  • ........ *

----


form top_of_list.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading8[]

exceptions

others = 1.

endform.

*--- End of Program

regards,

sai ramesh

5 REPLIES 5
Read only

Former Member
0 Likes
626

Hi..,

check this.. it contains the code for all the possible operations on ALV GRID..

http://www.sap-img.com/abap/sample-programs-on-alv-grid.htm

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

  • TABLES AND DATA DECLARATION.

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

*TABLES: mara,makt.",marc.

data syrepid like sy-repid.

data sydatum(10). " LIKE sy-datum.

data sypagno(3) type n.

  • WHEN USING MORE THAN ONE TABLE IN ALV WE NEEED TO DECLARE THE TYPE

  • GROUP (TYPE-POOLS--------->SLIS)

type-pools : slis.

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

  • INTERNAL TABLE DECLARATION.

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

  • INTERNAL TABLE TO HOLD THE VALUES FROM THE MARA TABLE

data: begin of t_mara occurs 0,

matnr like mara-matnr,

meins like mara-meins,

mtart like mara-mtart,

matkl like mara-matkl,

end of t_mara.

  • INTERNAL TABLE TO HOLD THE CONTENTS FROM THE EKKO TABLE

data : begin of t_marc occurs 0,

matnr like mara-matnr,

werks like marc-werks,

minbe like marc-minbe.

data: end of t_marc.

  • INTERNAL TABLE TO HOLD THE VALUES FROM MAKT TABLE.

data : begin of t_makt occurs 0,

matnr like mara-matnr,

maktx like makt-maktx,

spras like makt-spras,

end of t_makt.

  • INTERNAL TABLE WHICH ACTUALLY MERGES ALL THE OTHER INTERNAL TABLES.

data: begin of itab1 occurs 0,

matnr like mara-matnr,

meins like mara-meins,

maktx like makt-maktx,

spras like makt-spras,

werks like marc-werks,

minbe like marc-minbe,

end of itab1.

  • THE FOLLOWING DECLARATION IS USED FOR DEFINING THE FIELDCAT

  • AND THE LAYOUT FOR THE ALV.

  • HERE AS slis_t_fieldcat_alv IS A INTERNAL TABLE WITHOUT A HEADER LINE

  • WE EXPLICITELY DEFINE AN INTERNAL TABLE OF THE SAME STRUCTURE AS THAT

  • OF slis_t_fieldcat_alv BUT WITH A HEADER LINE IN THE DEFINITION.

  • THIS IS DONE TO MAKE THE CODE SIMPLER.

  • OTHERWISE WE MAY HAVE TO DEFINE THE STRUCTURE AS IN THE NORMAL SAP

  • PROGRAMS.

  • IN THE FIELDCATALOG TABLE WE ACTUALLY PASS THE FIELDS FROM ONE OR

  • MORE TABLES AND CREATE A STRUCTURE

  • IN THE LAYOUT STRUCTURE WE BASICALLY DEFINE THE FORMATTING OPTIONS

  • LIKE DISPLAY IN THE ZEBRA PATTERN ,THE HOTSPOT OPTIONS ETC.

data: fieldcatalog type slis_t_fieldcat_alv with header line,

fieldlayout type slis_layout_alv.

  • DECLARING THE EVENTTABLE INTERNL TABLE FOR USING EVENTS LIKE

  • TOP-OF-PAGE ETC.

data : eventstab type slis_t_event with header line.

  • DECLARING AN INTERNAL TABLE TO HOLD THE DATA FOR THE TOP-OF-PAGE

data : heading type slis_t_listheader with header line.

data : heading1 type slis_t_listheader with header line.

data : heading2 type slis_t_listheader with header line.

data : heading3 type slis_t_listheader with header line.

data : heading4 type slis_t_listheader with header line.

data : heading5 type slis_t_listheader with header line.

data : heading6 type slis_t_listheader with header line.

data : heading7 type slis_t_listheader with header line.

data : heading8 type slis_t_listheader with header line.

  • STRUCTURE TO PASS THE COLOR ATTRIBUTES FOR DISPLAY.

data : colorstruct type slis_coltypes.

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

  • INITIALIZATION. *

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

initialization.

syrepid = sy-repid.

sypagno = sy-pagno.

clear fieldcatalog.

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

  • START-OF-SELECTION. *

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

start-of-selection.

  • SUBROUTINE TO POPULATE THE COLORSTRUCT

perform fill_colorstruct using colorstruct.

  • SUBROUTINE TO POPULATE THE FIELDS OF THE FIELD CATALOGUE

perform populate_fieldcatalog.

  • SUBROUTINE TO SELECT DATA FROM VARIOUS TABLES AND POPULATE IT IN THE

  • INTERNAL TABLE.

perform selectdata_and_sort.

  • SUBROUTINE TO POPULATE THE LAYOUT STRUCTURE.

perform populate_layout using fieldlayout.

  • SUBROUTINE TO CALL THE FUNCTION MERGE TO ENSURE PROPER DISPLAY.

perform merge_fieldcatalog.

  • SUBROUTINE TO POPULATE THE EVENTSTAB.

perform fill_eventstab tables eventstab.

  • SUBROUTINE TO POPULATE THE HEADING TABLES.

perform fill_headingtable tables heading using 'HEADING'.

perform fill_headingtable tables heading1 using 'HEADING1'.

perform fill_headingtable tables heading2 using 'HEADING2'.

perform fill_headingtable tables heading3 using 'HEADING3'.

perform fill_headingtable tables heading4 using 'HEADING4'.

perform fill_headingtable tables heading5 using 'HEADING5'.

perform fill_headingtable tables heading6 using 'HEADING6'.

perform fill_headingtable tables heading7 using 'HEADING7'.

perform fill_headingtable tables heading8 using 'HEADING8'.

  • SUBROUTINE TO DISPLAY THE LIST.

perform display_alv_list.

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

  • FORMS

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

  • IN THIS SUBROUTINE WE POPULATE THE FIELDCATALOG TABLE WITH THE NAMES

  • OF THE TABLE,FIELDNAME,WHETHER IT IS KEY FIELD OR NOT,HEADING AND

  • COLUMN JUSTIFICATION.

form populate_fieldcatalog.

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MATNR' 'X' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MEINS' ' '.

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MAKTX' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MTART' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MATKL' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'SPRAS' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'WERKS' ' ' .

perform fill_fields_of_fieldcatalog tables fieldcatalog

using 'ITAB1' 'MINBE' ' ' .

endform. " POPULATE_FIELDCATALOG

----


  • FORM FILL_FIELDS_OF_FIELDCATALOG *

----


  • ........ *

----


  • --> FIELDCATALOG *

  • --> P_TABNAME *

  • --> P_FIELDNAME *

  • --> P_KEY *

  • --> P_KEY *

----


form fill_fields_of_fieldcatalog tables fieldcatalog

structure fieldcatalog

using p_tabname

p_fieldname

p_key.

  • p_no_out.

fieldcatalog-tabname = p_tabname.

fieldcatalog-fieldname = p_fieldname.

fieldcatalog-key = p_key.

fieldcatalog-emphasize = '1234'.

*fieldcatalog-no_out = p_no_out.

append fieldcatalog.

endform. " FILL_FIELDSOFFIELDCATALOG

----


  • FORM POPULATE_LAYOUT *

----


  • ........ *

----


  • --> FIELDLAYOUT *

----


form populate_layout using fieldlayout type slis_layout_alv.

fieldlayout-f2code = '&ETA' .

fieldlayout-zebra = 'X'.

  • FOR THE WINDOW TITLE.

fieldlayout-window_titlebar = 'ALV with Events'.

fieldlayout-colwidth_optimize = 'X'.

fieldlayout-no_vline = ' '.

*fieldlayout-no_input = 'X'.

fieldlayout-confirmation_prompt = ''.

fieldlayout-key_hotspot = 'X'.

  • This removes the column headings if the flag is set to 'X'

fieldlayout-no_colhead = ' '.

*fieldlayout-hotspot_fieldname = 'MAKTX'.

fieldlayout-detail_popup = 'X'.

  • fieldlayout-coltab_fieldname = 'X'.

endform. " POPULATE_LAYOUT

----


  • FORM SELECTDATA_AND_SORT *

----


  • ........ *

----


form selectdata_and_sort.

select matnr meins mtart matkl from mara

into corresponding fields of t_mara

up to 500 rows .

select matnr maktx spras from makt

into corresponding fields of t_makt

where matnr = t_mara-matnr and

spras = sy-langu.

select matnr werks minbe from marc

into corresponding fields of t_marc

where matnr = t_mara-matnr.

append t_marc.

endselect.

append t_makt.

endselect.

append t_mara.

endselect.

perform populate_itab1.

sort itab1 by matnr.

endform. " SELECTDATA_AND_SORT

----


  • FORM MERGE_FIELDCATALOG *

----


  • ........ *

----


form merge_fieldcatalog.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = syrepid

i_internal_tabname = 'ITAB1'

  • i_structure_name = 'COLORSTRUCT'

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = syrepid

changing

ct_fieldcat = fieldcatalog[]

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

endform. " MERGE_FIELDCATALOG

  • IN THIS FUNCTION THE MINIMUM PARAMETERS THAT WE NEED TO PASS IS AS

  • FOLLOWS:-

  • i_callback_program --> CALLING PROGRAM NAME

  • i_structure_name --> STRUCTURE NAME.

  • is_layout --> LAYOUT NAME.

  • it_fieldcat ---> BODY OF THE FIELD CATALOGUE INTERNAL TABLE

form display_alv_list.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

i_callback_program = syrepid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

i_structure_name = 'ITAB1'

is_layout = fieldlayout

it_fieldcat = fieldcatalog[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • THE FOLLOWING PARAMETER IS SET AS 'A' INORDER TO DISPLAY THE STANDARD

  • TOOL BAR

i_save = 'A'

  • IS_VARIANT = ' '

it_events = eventstab[]

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab = itab1

exceptions

program_error = 1

others = 2.

endform. " DISPLAY_ALV_LIST

&----


*& Form POPULATE_ITAB1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form populate_itab1.

loop at t_mara.

loop at t_makt where matnr = t_mara-matnr.

loop at t_marc where matnr = t_mara-matnr.

move-corresponding t_mara to itab1.

move-corresponding t_makt to itab1.

move-corresponding t_marc to itab1.

append itab1.

endloop.

endloop.

endloop.

endform. " POPULATE_ITAB1

&----


*& Form FILL_EVENTSTAB

&----


  • text

----


  • -->P_EVENTSTAB text *

----


form fill_eventstab tables p_eventstab structure eventstab.

  • WHEN THE FOLLOWING FUNCTION IS CALLED THE SYSTEM POPULATES THE

  • INTERNAL TABLE EVENTSTAB WITH A LIST OF EVENTS NAME.

  • AS SHOWN BELOW WHEN USING I_LIST_TYPE = 0 THE FUNCTION RETURNS 14

  • EVENTS NAME.

call function 'REUSE_ALV_EVENTS_GET'

exporting

i_list_type = 0

importing

et_events = p_eventstab[]

exceptions

list_type_wrong = 1

others = 2.

  • BY CALLING THE ABOVE FUNCTION WE FIRST POPULATE THE EVENTSTAB WITH

  • THE PREDEFINED EVENTS AND THEN WE MOVE THE FORM NAME AS SHOWN BELOW.

  • WE ASSIGN A FORM NAME TO THE EVENT AS REQUIRED BY THE USER.

  • FORM NAME CAN BE ANYTHING.THE PERFORM STATEMENT FOR THIS FORM

  • IS DYNAMICALY CALLED.

read table p_eventstab with key name = slis_ev_top_of_page.

if sy-subrc = 0 .

move 'TOP_OF_PAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_top_of_coverpage.

if sy-subrc = 0 .

move 'TOP_OF_COVERPAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_end_of_coverpage .

if sy-subrc = 0 .

move 'END_OF_COVERPAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_foreign_top_of_page.

if sy-subrc = 0 .

move 'FOREIGN_TOP_OF_PAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_foreign_end_of_page.

if sy-subrc = 0 .

move 'FOREIGN_END_OF_PAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_list_modify.

if sy-subrc = 0 .

move 'LIST_MODIFY' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_top_of_list.

if sy-subrc = 0 .

move 'TOP_OF_LIST' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_end_of_page.

if sy-subrc = 0 .

move 'END_OF_PAGE' to p_eventstab-form.

append p_eventstab.

endif.

read table p_eventstab with key name = slis_ev_end_of_list .

if sy-subrc = 0 .

move 'END_OF_LIST' to p_eventstab-form.

append p_eventstab.

endif.

endform. " FILL_EVENTSTAB

&----


*& Form FILL_HEADINGTABLE

&----


  • text

----


  • -->P_HEADING text *

----


form fill_headingtable tables p_heading structure heading

using tablename.

case tablename.

when 'HEADING'.

p_heading-typ = 'H'.

concatenate

' REPORT NAME:-' syrepid

' ABB Industry Pte Ltd' into p_heading-info.

append p_heading.

write sy-datum using edit mask '__/__/____' to sydatum.

concatenate

' DATE:-' sydatum ' USER: ' sy-uname 'PAGE NO:' sypagno

into p_heading-info.

append p_heading.

when 'HEADING1'.

p_heading-typ = 'H'.

p_heading-info = 'TOP-OF-COVER-PAGE'.

append p_heading.

when 'HEADING2'.

p_heading-typ = 'H'.

p_heading-info = 'END-OF-COVER-PAGE'.

append p_heading.

when 'HEADING3'.

p_heading-typ = 'H'.

p_heading-info = 'FOREIGN-TOP-OF-PAGE'.

append p_heading.

when 'HEADING4'.

p_heading-typ = 'H'.

p_heading-info = 'FOREIGN-END-OF-PAGE'.

append p_heading.

  • WHEN 'HEADING5'.

  • P_HEADING-TYP = 'H'.

  • P_HEADING-INFO = 'LIST-MODIFY'.

  • APPEND P_HEADING.

when 'HEADING6'.

p_heading-typ = 'H'.

p_heading-info = 'END-OF-PAGE'.

append p_heading.

when 'HEADING7'.

p_heading-typ = 'H'.

p_heading-info = 'END-OF-LIST'.

append p_heading.

when 'HEADING8'.

p_heading-typ = 'H'.

p_heading-info = 'TOP-OF-LIST'.

append p_heading.

endcase.

endform. " FILL_HEADINGTABLE

----


  • FORM TOP_OF_PAGE *

----


  • ........ *

----


form top_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading[]

exceptions

others = 1.

endform.

&----


*& Form FILL_COLORSTRUCT

&----


  • text

----


  • -->P_COLORSTRUCT text *

----


form fill_colorstruct using p_colorstruct type slis_coltypes .

p_colorstruct-heacolfir-col = 6.

p_colorstruct-heacolfir-int = 1.

p_colorstruct-heacolfir-inv = 1.

endform. " FILL_COLORSTRUCT

----


  • FORM TOP_OF_COVERPAGE *

----


  • ........ *

----


form top_of_coverpage.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading1[]

exceptions

others = 1.

endform.

----


  • FORM END_OF_COVERPAGE *

----


  • ........ *

----


form end_of_coverpage.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading2[]

exceptions

others = 1.

endform.

----


  • FORM FOREIGN_TOP_OF_PAGE *

----


  • ........ *

----


form foreign_top_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading3[]

exceptions

others = 1.

endform.

----


  • FORM FOREIGN_END_OF_PAGE *

----


  • ........ *

----


form foreign_end_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading4[]

exceptions

others = 1.

endform.

----


  • FORM LIST_MODIFY *

----


  • ........ *

----


*FORM LIST_MODIFY.

  • CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

  • EXPORTING

  • IT_LIST_COMMENTARY = HEADING5[]

  • EXCEPTIONS

  • OTHERS = 1.

*ENDFORM.

----


  • FORM END_OF_PAGE *

----


  • ........ *

----


form end_of_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading6[]

exceptions

others = 1.

endform.

----


  • FORM END_OF_LIST *

----


  • ........ *

----


form end_of_list.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading7[]

exceptions

others = 1.

endform.

----


  • FORM TOP_OF_LIST *

----


  • ........ *

----


form top_of_list.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = heading8[]

exceptions

others = 1.

endform.

*--- End of Program

regards,

sai ramesh

Read only

Former Member
0 Likes
625

Hi Saurabh,

Check this code.

REPORT YMS_ALVINTER1.

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

TABLE DECLARATION

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

TABLES: vbak , "Sales Document: Header Data

vbap , "Sales Document: Item Data

makt , "Material Descriptions

lips . "SD document: Delivery: Item data

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

DECLARATION OF TYPE-POOL

*THIS TYPE-POOL CONTAINS THE EVENTS,

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

TYPE-POOLS : slis.

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

DECLARATION OF EVENTS

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

DATA: i_event TYPE slis_t_event.

DATA: t_event TYPE slis_alv_event.

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

DECLARATION OF LIST HEADER

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

DATA: i_listheader TYPE slis_t_listheader.

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

DECLARATION OF FIELD CATALOG FOR SCREEN 1

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

DATA: i_fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

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

DECLARATION OF FIELD CATALOG FOR SCREEN 2

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

DATA: i_fldcat2 TYPE slis_t_fieldcat_alv WITH HEADER LINE.

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

DECLARATION OF FIELD LAYOUT

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

DATA: i_layout TYPE slis_layout_alv.

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

SORTING OF OUTPUT

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

DATA: i_sort TYPE slis_t_sortinfo_alv.

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

*DATA DECLARATION

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

DATA: v_auart TYPE tvak-auart,

v_vkorg TYPE tvko-vkorg,

v_kunnr TYPE kna1-kunnr,

v_matnr TYPE mara-matnr ,

v_spart TYPE tvta-spart .

TYPES: BEGIN OF it_so ,

vbeln TYPE vbeln_va , "SALES ORDER NO.

auart TYPE auart , "SALES DOC. TYPE

vkorg TYPE vkorg , "SALES ORG.

spart TYPE spart , "DIVISION

kunnr TYPE kunag , "SOLD TO PARTY

posnr TYPE posnr_va , "SALES DOC. ITEM

matnr TYPE matnr , "MATERIAL NO

maktx TYPE maktx , "DESCRIPTION

kwmeng TYPE kwmeng , "QUANTITY

vrkme TYPE vrkme , "SALES UNIT

line_color(4) TYPE c ,

END OF it_so .

TYPES: BEGIN OF it_del ,

vbeln TYPE vbeln_vl , "SALES ORDER NO.

posnr TYPE posnr_vl , "SALES DOC. ITEM

matnr TYPE matnr , "MATERIAL NO

werks TYPE werks_d , "PLANT

lgort TYPE lgort_d , "STORAGE LOCATION

charg TYPE charg_d , "BATCH NO.

lfimg TYPE lfimg , "ACTUAL DELIVERY QTY.

vrkme TYPE vrkme , "SALES UNIT

END OF it_del .

TYPES: BEGIN OF type_vbfa ,

vbelv TYPE vbeln_von , "Preceding sales and distribution document

posnv TYPE posnr_von , "Preceding item of an SD document

vbeln TYPE vbeln_nach, "Subsequent sales and distribution document

posnn TYPE posnr_nach, "Document category of subsequent document

vbtyp_n TYPE vbtyp_n ,

END OF type_vbfa .

DATA: it_so1 TYPE STANDARD TABLE OF it_so ,

it_del1 TYPE STANDARD TABLE OF it_del ,

it_vbfa TYPE STANDARD TABLE OF type_vbfa,

it_del_ful TYPE STANDARD TABLE OF it_del.

DATA: wa_so TYPE it_so ,

wa_del TYPE it_del ,

wa_vbfa TYPE type_vbfa,

wa_it_del_ful TYPE it_del.

DATA: i_title_vbfa TYPE lvc_title VALUE 'SALES ORDER LIST DISPLAYED'.

DATA: i_title_vbpa TYPE lvc_title VALUE

'DELIVERY DETAILS DISPLAYED AGAINST GIVEN SALES ORDER'.

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

*SELECTION SCREEN *

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

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-004 .

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln ,

s_auart FOR v_auart ,

s_vkorg FOR v_vkorg ,

s_spart FOR v_spart ,

s_kunnr FOR v_kunnr ,

s_matnr FOR v_matnr .

SELECTION-SCREEN END OF BLOCK blk1 .

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

*AT SELECTION SCREEN *

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

AT SELECTION-SCREEN.

SELECT SINGLE vbeln

FROM vbak INTO vbak-vbeln

WHERE vbeln IN s_vbeln.

IF sy-subrc <> 0.

MESSAGE e202.

ENDIF.

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

*START OF SELECTION *

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

START-OF-SELECTION .

PERFORM data_select.

PERFORM t_sort USING i_sort .

PERFORM event_cat USING i_event .

PERFORM fld_cat USING i_fldcat[] .

PERFORM t_layout USING i_layout .

PERFORM fld_cat2 USING i_fldcat2[] .

PERFORM call_alv.

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

  • DATA SELECT *

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

&----


*& Form DATA_SELECT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM data_select .

REFRESH: it_vbfa, it_so1, it_del_ful ,it_del1 .

  • BREAK-POINT.

SELECT

a~vbeln

a~auart

a~vkorg

a~spart

a~kunnr

b~posnr

b~matnr

c~maktx

b~kwmeng

b~vrkme

INTO TABLE it_so1 FROM vbak AS a

JOIN vbap AS b ON bvbeln = avbeln

JOIN makt AS c ON cmatnr = bmatnr

AND c~spras = sy-langu

WHERE a~vbeln IN s_vbeln .

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

  • COLURING DISPLAY *

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

DATA: ld_color(1) TYPE c .

LOOP AT it_so1 INTO wa_so.

  • Populate color variable with colour 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_so-line_color.

  • wa_ekko-line_color = 'C410'.

MODIFY it_so1 FROM wa_so.

ENDLOOP .

IF sy-subrc = 0.

SELECT vbelv

posnv

vbeln

posnn

vbtyp_n

INTO TABLE it_vbfa

FROM vbfa

FOR ALL ENTRIES IN it_so1

WHERE vbelv = it_so1-vbeln

AND posnn = it_so1-posnr

AND vbtyp_n ='J' .

IF sy-subrc = 0.

SELECT vbeln

posnr

matnr

werks

lgort

charg

lfimg

vrkme

FROM lips INTO TABLE it_del_ful

FOR ALL ENTRIES IN it_vbfa

WHERE vbeln = it_vbfa-vbeln

AND posnr = it_vbfa-posnn.

ENDIF.

ENDIF.

ENDFORM. " DATA_SELECT

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

                                • EVENT CATALOG ****************************************

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

&----


*& Form EVENT_CAT

&----


  • text

----


  • -->P_I_EVENT text

----


FORM event_cat USING p_i_event TYPE slis_t_event .

REFRESH p_i_event .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

IMPORTING

et_events = p_i_event

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

READ TABLE p_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.

IF sy-subrc = 0.

MOVE 'TOP_OF_PAGE' TO t_event-form.

MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.

ENDIF.

CLEAR t_event .

ENDFORM. " EVENT_CAT

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

*********FORM FOR EVENT TOP_OF_PAGE*********************************

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

FORM top_of_page .

REFRESH i_listheader.

DATA: t_header TYPE slis_listheader.

DATA: v_text(50).

WRITE sy-datum TO v_text.

CLEAR t_header.

t_header-typ = 'S'.

t_header-key = 'Date'.

t_header-info = v_text.

APPEND t_header TO i_listheader.

CLEAR t_header.

CLEAR v_text.

  • WRITE: 'SALES ORDER REPORT ' TO v_text .

  • t_header-typ = 'S'.

  • t_header-key = 'TITLE'.

  • t_header-info = v_text.

  • APPEND t_header TO i_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_listheader

I_LOGO = 'ENJOYSAP_LOGO' .

  • I_END_OF_LIST_GRID =

ENDFORM. "TOP_OF_PAGE

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

                • FIRST ALV GRID DISPLAY ***************************************

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

&----


*& Form CALL_ALV

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM call_alv .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

  • I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND1'

i_callback_top_of_page = 'TOP_OF_PAGE'

  • I_BACKGROUND_ID = 'ALV_BACKGROUND'

i_grid_title = i_title_vbfa

is_layout = i_layout

it_fieldcat = i_fldcat[]

it_sort = i_sort

it_events = i_event

TABLES

t_outtab = it_so1

.

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

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

                            • FIRST FIELDCATALOG *************************************

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

&----


*& Form FLD_CAT

&----


  • text

----


  • -->P_I_FLDCAT[] text

----


FORM fld_cat USING p_i_fldcat TYPE slis_t_fieldcat_alv.

CLEAR i_fldcat.

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

i_fldcat-tabname = 'IT_SO1'."TABLE NAME

i_fldcat-seltext_m = 'SALES ORDER NO.'.

i_fldcat-col_pos = 1. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'."TABLE NAME

i_fldcat-seltext_m = 'SALES DOC. TYPE'.

i_fldcat-col_pos = 2. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SALES ORG.'.

i_fldcat-col_pos = 3. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 12. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'DIVISION'.

i_fldcat-col_pos = 4. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SOLD TO PARTY'.

i_fldcat-col_pos = 5. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

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

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SALES DOC. ITEM'.

i_fldcat-col_pos = 6. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 17. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'MATERIAL NO.'.

i_fldcat-col_pos = 7. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'DESCRIPTION'.

i_fldcat-col_pos = 8. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'QUANTITY'.

i_fldcat-col_pos = 9. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-do_sum = 'X'. " For doing "SUM"

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SALES UNIT'.

i_fldcat-col_pos = 10. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

ENDFORM. " FLD_CAT

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

                                    • ALV SORTING ***************************************

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

&----


*& Form SORT

&----


  • text

----


  • -->P_I_SORT text

----


FORM t_sort USING p_i_sort TYPE slis_t_sortinfo_alv .

DATA: i_sort TYPE slis_sortinfo_alv .

REFRESH p_i_sort .

CLEAR i_sort.

i_sort-spos = 1.

i_sort-tabname = 'IT_SO1'.

i_sort-fieldname = 'VBELN'.

i_sort-up = 'X'.

i_sort-subtot = 'X'.

i_sort-group = '*'.

APPEND i_sort TO p_i_sort.

ENDFORM. " SORT

*FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.

  • SET PF-STATUS 'ZSTANDARD'.

*ENDFORM. "Set_pf_status

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

**********FORM FOR EVENT USER_COMMAND1*******************************

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

FORM user_command1 USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

*CASE R_UCOMM .

  • WHEN '&IC1' .

*

  • IF rs_selfield-FIELDNAME = 'VBELN' .

*

  • ENDIF .

*

  • WHEN OTHERS .

*

  • ENDCASE .

CLEAR wa_so.

REFRESH: it_del1 .

IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND

rs_selfield-value IS NOT INITIAL.

READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.

IF sy-subrc = 0.

LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = wa_so-vbeln

AND posnv = wa_so-posnr.

READ TABLE it_del_ful INTO wa_it_del_ful

WITH KEY vbeln = wa_vbfa-vbelv

posnr = wa_vbfa-posnn.

IF sy-subrc = 0.

CLEAR wa_del.

MOVE wa_it_del_ful TO wa_del.

APPEND wa_del TO it_del1.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

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

                  • SECOND ALV GRID DISPLAY ***********************************

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

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

  • I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND2'

i_callback_top_of_page = 'TOP_OF_PAGE'

  • I_BACKGROUND_ID = 'ALV_BACKGROUND'

i_grid_title = i_title_vbpa

it_fieldcat = i_fldcat2[]

it_sort = i_sort

TABLES

t_outtab = it_del_ful

.

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

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

                    • FORM FOR EVENT USER_COMMAND 2 ******************************

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

FORM user_command2 USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CLEAR wa_so.

REFRESH: it_del1 .

IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND

rs_selfield-value IS NOT INITIAL.

READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.

  • IF SY-SUBRC = 0.

*

  • LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = WA_SO-vbeln

  • AND posnv = WA_SO-posnr.

READ TABLE it_del_ful INTO wa_it_del_ful

WITH KEY vbeln = rs_selfield-value

posnr = wa_vbfa-posnn.

IF rs_selfield-fieldname = 'VBELN'.

SET PARAMETER ID 'VL' FIELD wa_vbfa-vbeln .

CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.

ENDIF .

  • ENDLOOP.

  • ENDIF.

ENDIF.

ENDFORM . "USER_COMMAND2

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

                  • SECOND FIELDCATALOG ******************************************

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

&----


*& Form FLD_CAT2

&----


  • text

----


  • -->P_I_FLDCAT2[] text

----


FORM fld_cat2 USING p_i_fldcat2 TYPE slis_t_fieldcat_alv .

CLEAR i_fldcat2.

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

i_fldcat2-tabname = 'IT_DEL_FUL'."TABLE NAME

i_fldcat2-seltext_m = 'DELIVERY NO.'.

i_fldcat2-col_pos = 1. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-hotspot = 'X'.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

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

i_fldcat2-seltext_m = 'DELIVERY ITEM'.

i_fldcat2-col_pos = 2. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'MATERIAL NO.'.

i_fldcat2-col_pos = 3. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'PLANT.'.

i_fldcat2-col_pos = 4. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'ST. LOCATION'.

i_fldcat2-col_pos = 5. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'BATCH NO.'.

i_fldcat2-col_pos = 6. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'ACT. DEL. QTY.'.

i_fldcat2-col_pos = 7. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'SALES UNIT.'.

i_fldcat2-col_pos = 8. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

ENDFORM. " FLD_CAT2

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

                                  • ALV LAYOUT *******************************************

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

&----


*& Form LAYOUT

&----


  • text

----


  • -->P_I_LAYOUT text

----


FORM t_layout USING p_i_layout TYPE slis_layout_alv .

p_i_layout-zebra = 'X'.

p_i_layout-totals_text = 'GRAND TOTAL ='.

  • p_i_layout-CONFIRMATION_PROMPT = 'X'.

  • p_i_layout-DEF_STATUS = ' '.

p_i_layout-info_fieldname = 'LINE_COLOR'.

ENDFORM. " LAYOUT

Hope this resolves your query.

Reward all the helpful answers.

Regards

Read only

amit_khare
Active Contributor
0 Likes
625

This can be done using event as told and as an alternative you can use this property of layout if it is using SLIS type pool for simply displaying the field.

<b>detail_popup(1) type c, " show detail in popup</b>.

Regards,

Amit

Reward all helpful replies.

Read only

Former Member
0 Likes
625

Hi,

When you handle this logic in your subroutine User_command, before displaying another list, you have to refresh the current list and then you have to build the internal tables for the other list to be displayed.

for example if you need the code you can refer the program ROIU_ALV_LIST_EXAMPLE how to write the code to handle this requirement.

thanks,

sksingh

Read only

Former Member
0 Likes
625

Hi,

look at this

let ITAB contains your first out

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' Or grid display

EXPORTING

I_CALLBACK_PROGRAM = GT_REPID

:

I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND' " FORM NAME

:

:

IT_FIELDCAT = GT_FIELDCAT

.....................................

TABLES

T_OUTTAB = ITAB

...........................

FORM F_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

When '&IC1'.

if rs_selfield-fieldname = '<your field name>'

:

Write your code here..

Here you can again write your select queries, define tables, variable and again use

REUSE_ALV_GRID and populate data.

collect all the data into ITAB2 and pass to ALV_GRID table parameter..

:

endif.

endcase.

ENDFORM.

Hope this helps you. Reward if useful,

regards

nazeer