Application Development 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: 

ALV Checkbox

Former Member
0 Kudos

I need to add a checkbox to my ALV report. I am using REUSE_ALV

I need to set the outputlen to 3 but the len is defaulted to 7 and does not change. Also I need to ungray the checkbox. I tried hotspot, but that brings the hand symbol out which I dont need. Any ideas

     wa_fieldcatalog-checkbox = 'X'.
        wa_fieldcatalog-outputlen = '3'.
*        wa_fieldcatalog-hotspot = 'X'.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

check this program

REPORT ZTESTPRG .

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

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

chkbox(1) type c,

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

fieldlayout-box_fieldname = 'CHKBOX'.

fieldlayout-edit_mode = '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

3 REPLIES 3

Former Member
0 Kudos

check this program

REPORT ZTESTPRG .

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

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

chkbox(1) type c,

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

fieldlayout-box_fieldname = 'CHKBOX'.

fieldlayout-edit_mode = '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

Former Member
0 Kudos

hi,

pass this parameters to the FM u hav used

declare a variable in the final output table declaration

i.e. begin of ty_fintab,

sel(1),

.

.

end of ty_fintab.

before calling the FM

set this

g_layout-colwidth_optimize = 'X'.

and no need to try with hot spot comment that stmt

Reward if helpful.

Former Member
0 Kudos

Check the below link :

http://www.alvrobot.com.ar/images/ExampleSourceCode.txt

Source code :

======================================================================

  • This report was initially created by ALVRobot.com.ar

  • Please, read terms and conditions on the site.

======================================================================

  • Author: Gabriel Jenik

  • 19.02.07 - Reporte Prueba

  • Este es un reporte de prueba.

======================================================================

REPORT ZGJTEST.

========================== Global definitions =======================

**

  • Data Types

**

TYPE-pools: slis.

TYPES: BEGIN OF tp_data,

ebeln LIKE ekko-ebeln,

aedat LIKE ekko-aedat,

lifnr LIKE ekko-lifnr,

ebelp LIKE ekpo-ebelp,

txz01 LIKE ekpo-txz01,

menge LIKE ekpo-menge,

netpr LIKE ekpo-netpr,

peinh LIKE ekpo-peinh,

__mark,

END OF tp_data,

tp_tbl_data TYPE STANDARD TABLE OF tp_data.

**

  • Constants

**

**

  • Data objects (variable declarations and definitions)

**

  • Report data to be shown.

DATA: it_data TYPE STANDARD TABLE OF tp_data.

  • Heading of the report.

DATA: t_heading TYPE slis_t_listheader.

========================== Selection Screen ==========================

selection-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-t01.

DATA: w_aux_ebeln LIKE ekko-ebeln.

SELECT-OPTIONS s_ebeln FOR w_aux_ebeln .

DATA: w_aux_aedat LIKE ekko-aedat.

SELECT-OPTIONS s_aedat FOR w_aux_aedat .

DATA: w_aux_name1 LIKE lfa1-name1.

SELECT-OPTIONS s_name1 FOR w_aux_name1 .

selection-SCREEN: END OF BLOCK b1.

=========================== Event Blocks =============================

AT selection-SCREEN.

start-OF-selection.

PERFORM get_data USING it_data.

END-OF-selection.

PERFORM build_alv USING it_data t_heading.

=========================== Subroutines ==============================

&----


*& Form get_data

&----


  • Gets the information to be shown in the report.

----


FORM get_data USING t_data TYPE tp_tbl_data.

SELECT e~lifnr

e~ebeln

e~aedat

p~ebelp

p~txz01

p~menge

p~netpr

p~peinh

INTO CORRESPONDING FIELDS OF TABLE t_data

FROM ekko AS e

inner JOIN lfa1 AS l ON elifnr = llifnr

inner JOIN ekpo AS p ON pebeln = eebeln

WHERE e~ebeln IN s_ebeln

AND e~aedat IN s_aedat

AND l~name1 IN s_name1

.

ENDFORM. " get_data

&----


*& Form build_alv

&----


  • Builds and display the ALV Grid.

----


FORM build_alv USING t_data TYPE tp_tbl_data

t_heading TYPE slis_t_listheader.

  • ALV required data objects.

DATA: w_title TYPE lvc_title,

w_comm TYPE slis_formname,

w_status TYPE slis_formname,

x_layout TYPE slis_layout_alv,

t_event TYPE slis_t_event,

t_fieldcat TYPE slis_t_fieldcat_alv,

t_sort TYPE slis_t_sortinfo_alv.

REFRESH t_fieldcat.

REFRESH t_event.

REFRESH t_sort.

CLEAR x_layout.

CLEAR w_title.

  • Field Catalog

PERFORM set_fieldcat2 USING:

1 '__MARK' 'XFELD' space space space 'Select' 'Select this row'

'Sel' 'Select this row' space space space 'X' 'X' space t_fieldcat,

2 'LIFNR' 'LIFNR' 'EKKO' space space space space space space

space space space space space space t_fieldcat ,

3 'EBELN' 'EBELN' 'EKKO' space space space space space space

space 'X' space space space space t_fieldcat ,

4 'AEDAT' 'AEDAT' 'EKKO' space space space space space space

space space space space space space t_fieldcat ,

5 'EBELP' 'EBELP' 'EKPO' space space space space space space

space space space space space space t_fieldcat ,

6 'TXZ01' 'TXZ01' 'EKPO' space space space space space space

space space space space space space t_fieldcat ,

7 'MENGE' 'MENGE' 'EKPO' space space space space space space

space space space space space 'X' t_fieldcat ,

8 'NETPR' 'NETPR' 'EKPO' space space space space space space

space space space space space space t_fieldcat ,

9 'PEINH' 'PEINH' 'EKPO' space space space space space space

space space space space space space t_fieldcat .

  • Layout

x_layout-zebra = 'X'.

  • Top of page heading

PERFORM set_top_page_heading USING t_heading t_event.

  • Events

PERFORM set_events USING t_event.

  • GUI Status

w_status = ''.

  • User commands

w_comm = 'USER_COMMAND'.

  • Order

  • Example

  • PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.

PERFORM set_order USING 'LIFNR' 'IT_DATA' 'X' space 'X' t_sort.

PERFORM set_order USING 'EBELN' 'IT_DATA' 'X' space 'X' t_sort.

PERFORM set_order USING 'EBELP' 'IT_DATA' 'X' space space t_sort.

  • Displays the ALV grid

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

it_fieldcat = t_fieldcat

is_layout = x_layout

it_sort = t_sort

i_callback_pf_status_set = w_status

i_callback_user_command = w_comm

i_save = 'X'

it_events = t_event

i_grid_title = w_title

TABLES

t_outtab = t_data

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. " build_alv.

&----


*& Form set_top_page_heading

&----


  • Creates the report headings.

----


FORM set_top_page_heading USING t_heading TYPE slis_t_listheader

t_events TYPE slis_t_event.

DATA: x_heading TYPE slis_listheader,

x_event TYPE LINE OF slis_t_event.

  • Report title

CLEAR t_heading[].

CLEAR x_heading.

x_heading-typ = 'H'.

x_heading-info = 'Reporte Prueba'(001).

APPEND x_heading TO t_heading.

  • Program name

CLEAR x_heading.

x_heading-typ = 'S'.

x_heading-KEY = 'Program: '.

x_heading-info = sy-repid.

APPEND x_heading TO t_heading.

  • User who is running the report

CLEAR x_heading.

x_heading-typ = 'S'.

x_heading-KEY = 'User: '.

x_heading-info = sy-uname.

APPEND x_heading TO t_heading.

  • Date of execution

CLEAR x_heading.

x_heading-typ = 'S'.

x_heading-KEY = 'Date: '.

WRITE sy-datum TO x_heading-info.

APPEND x_heading TO t_heading.

  • Time of execution

CLEAR x_heading.

x_heading-typ = 'S'.

x_heading-KEY = 'Time: '.

WRITE sy-uzeit TO x_heading-info.

APPEND x_heading TO t_heading.

  • Top of page event

x_event-name = slis_ev_top_of_page.

x_event-FORM = 'TOP_OF_PAGE'.

APPEND x_event TO t_events.

ENDFORM.

&----


*& Form set_events

&----


  • Sets the events for ALV.

  • The TOP_OF_PAGE event is alredy being registered in

  • the set_top_page_heading subroutine.

----


FORM set_events USING t_events TYPE slis_t_event.

DATA: x_event TYPE LINE OF slis_t_event.

**

  • Example

  • -------

  • clear x_event.

  • x_event-name = .

  • x_event-form = .

  • append x_event to t_event.

**

ENDFORM.

&----


*& Form set_order

&----


  • Adds an entry to the order table.

----


FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot

t_sort TYPE slis_t_sortinfo_alv.

DATA: x_sort TYPE slis_sortinfo_alv.

CLEAR x_sort.

x_sort-fieldname = p_fieldname.

x_sort-tabname = p_tabname.

x_sort-UP = p_up.

x_sort-down = p_down.

x_sort-subtot = p_subtot.

APPEND x_sort TO t_sort.

ENDFORM. "set_order

&----


*& Form set_fieldcat2

&----


  • Adds an entry to the field catalog.

----


FORM set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname

p_ref_tabname

p_outputlen p_noout

p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt

p_hotspot p_showasicon p_checkbox p_edit

p_dosum

t_fieldcat TYPE slis_t_fieldcat_alv.

DATA: wa_fieldcat TYPE slis_fieldcat_alv.

CLEAR wa_fieldcat.

  • General settings

wa_fieldcat-fieldname = p_fieldname.

wa_fieldcat-col_pos = p_colpos.

wa_fieldcat-no_out = p_noout.

wa_fieldcat-HOTSPOT = p_hotspot.

wa_fieldcat-CHECKBOX = p_checkbox.

wa_fieldcat-ICON = p_showasicon.

wa_fieldcat-do_sum = p_dosum.

  • Set reference fieldname, tablenam and rollname.

  • If p_ref_tabname is not given, the ref_fieldname given is a data

*element.

  • If p_ref_tabname is given, the ref_fieldname given is a field of a

*table. In case ref_fieldname is not given, it is copied from the

*fieldname.

IF p_ref_tabname IS INITIAL.

wa_fieldcat-rollname = p_ref_fieldname.

ELSE.

wa_fieldcat-ref_tabname = p_ref_tabname.

IF p_ref_fieldname EQ space.

wa_fieldcat-ref_fieldname = wa_fieldcat-fieldname.

ELSE.

wa_fieldcat-ref_fieldname = p_ref_fieldname.

ENDIF.

ENDIF.

  • Set output length.

IF NOT p_outputlen IS INITIAL.

wa_fieldcat-outputlen = p_outputlen.

ENDIF.

  • Set text headers.

IF NOT p_seltext_m IS INITIAL.

wa_fieldcat-seltext_m = p_seltext_m.

ENDIF.

IF NOT p_seltext_l IS INITIAL.

wa_fieldcat-seltext_l = p_seltext_l.

ENDIF.

IF NOT p_seltext_s IS INITIAL.

wa_fieldcat-seltext_s = p_seltext_s.

ENDIF.

IF NOT p_reptext_ddic IS INITIAL.

wa_fieldcat-reptext_ddic = p_reptext_ddic.

ENDIF.

IF NOT p_ddictxt IS INITIAL.

wa_fieldcat-ddictxt = p_ddictxt.

ENDIF.

  • Set as editable or not.

IF NOT p_edit IS INITIAL.

wa_fieldcat-INPUT = 'X'.

wa_fieldcat-EDIT = 'X'.

ENDIF.

APPEND wa_fieldcat TO t_fieldcat.

ENDFORM. "set_fieldcat2

=========================== Subroutines called by ALV ================

&----


*& Form top_of_page

&----


  • Called on top_of_page ALV event.

  • Prints the heading.

----


FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

  • i_logo = 'XXXXX'

it_list_commentary = t_heading.

ENDFORM. " alv_top_of_page

&----


*& Form user_command

&----


  • Called on user_command ALV event.

  • Executes custom commands.

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

**

  • Example Code

*

  • Executes a command considering the sy-ucomm.

  • CASE r_ucomm.

  • WHEN '&IC1'.

*

  • Set your "double click action" response here.

*

  • Example code: Create and display a status message.

  • DATA: w_msg TYPE string,

  • w_row(4) TYPE n.

  • w_row = rs_selfield-tabindex.

  • CONCATENATE 'You have clicked row' w_row

  • 'field' rs_selfield-fieldname

  • 'with value' rs_selfield-value

  • INTO w_msg SEPARATED BY space.

  • MESSAGE w_msg TYPE 'S'.

*

  • ENDCASE.

*

  • End of example code.

**

ENDFORM. "user_command

Thanks

Seshu