‎2006 Dec 21 7:07 AM
Hi,
In alv report ouput i want the page buttons to be enabled ,also i want the possibility to save the layout .i have not used pf status .
Can anybody help me out in this.
‎2006 Dec 21 7:10 AM
Hi,
For saving layout..
In the parameter I_SAVE pass 'A' or 'X'..Check the FM documentation for details.
Thanks,
Naren
‎2006 Dec 21 7:11 AM
HI,
IN the REUSE_ALV_LIST_DISPLAY FM u have a parameter I_SAVE this will help u in saving the layout value....
where '
X' = standard save ,
'U' = only user-specific saving
'A' = standard and user-specific saving
For page button If u are use the standard Pf-Status 'STANDARD' here the page button is there and automatically handeld u need not have to write code for that.
Regards,
Vaibhav B Gawali.
‎2006 Dec 21 7:12 AM
Hi,
For Variant use this FM -
<b> call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
exporting
i_save = 'A' " 'A' , 'X', 'U', ' '
changing
cs_variant = i_variant
exceptions
wrong_input = 1
not_found = 2
program_error = 3
others = 4
.
if sy-subrc = 0.
p_var = i_variant-variant.
else.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
</b>
For Complete usage in ALV's check this example -
report z5ak_alv message-id z5ak.
THIS DEFINES GLOBAL TYPES FOR ALV.
type-pools: slis.
tables: ekko.
THIS IS THE INTERNAL TABLE FOR DISPLAYING THE BASIC ALV LIST
data: begin of i_ekko occurs 0,
v_symb(4) type c,
v_icon(4) type c,
v_box(1) type c,
v_lights(2) type c,
ebeln like ekko-ebeln, " PURCHASE DOCUMENT NUMBER.
bsart like ekko-bsart, " PURCHASING DOCUMENT TYPE.
bedat like ekko-bedat, " PURCHASING DOCUMENT DATE.
ekorg like ekko-ekorg, " PURCHASING ORGANISATION.
ekgrp like ekko-ekgrp, " PURCHASING GROUP.
ebelp like ekpo-ebelp, " ITEM NUMBER OF PURCHASING DOCUMENT.
matnr like ekpo-matnr, " MATERIAL NUMBER.
menge like ekpo-menge, " PURCHASE ORDER QUANTITY.
meins like ekpo-meins, " ORDER UNIT.
netpr like ekpo-netpr, " NET PRICE IN PURCHASING DOCUMENT.
netwr like ekpo-netwr, " NET ORDER VALUE IN PO CURRENCY.
end of i_ekko.
select-options: s_ebeln for ekko-ebeln.
data: v_progname like sy-repid.
data: v_gridtitle type lvc_title.
FOR USER-DEFINED AND GENERAL LIST VARIANTS.
data: i_variant like disvariant.
parameters: p_var like disvariant-variant.
DATA DECLARATION FOR THE CATALOGS
data: i_fieldcat type slis_t_fieldcat_alv.
FOR LAYOUT
data: i_layout type slis_layout_alv.
FOR THE SORTING SEQUENCE.
data: i_sortinfo type slis_t_sortinfo_alv.
FOR THE EVENT CATALOG.
data: i_eventcat type slis_t_event.
FOR THE TOP OF PAGE EVENT
data: i_listheader type slis_t_listheader.
************************************************************************
INITIALIZATION EVENT *
************************************************************************
initialization.
v_progname = sy-repid.
DISPLAY DEFAULT VARIANT
PERFORM ZF_DEFAULT_VARIANT.
*
************************************************************************
AT SELECTION-SCREEN EVENT *
************************************************************************
*AT SELECTION-SCREEN ON P_VAR.
CHECK FOR THE EXISTENCE OF THE VARIANT SELECTED
PERFORM ZF_CHECK_VAR_EXIST.
*
*
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VAR.
PROVIDE THE F4-HELP.
PERFORM ZF_VARIANT_F4.
************************************************************************
START OF SELECTION EVENT *
************************************************************************
start-of-selection.
PREPARE FIELDCATALOG FOR THE MAIN (BASIC LIST) REPORT.
perform zf_build_fieldcat using i_fieldcat.
FETCH RECORDS FROM THE DATABASE INTO THE INTERNAL TABLE.
perform zf_select_ekko.
MODIFY THE RECORDS IN THE INTERNAL TABLE FOR THE ICONS, SYMBOLS AND TRAFFIC LIGHTS.
perform zf_modify_ekko.
DETERMINE THE LAYOUT OF THE ALV DISPLAY.
perform zf_build_layout.
DETERMINE THE SORTING SEQUENCE.
perform zf_build_sort using i_sortinfo.
DEFINE THE EVENT TABLE.
perform zf_build_eventcat using i_eventcat.
BUILD THE LISTHEADER FOR THE TOP OF PAGE EVENT.
perform zf_build_listheader using i_listheader.
INITIALIZE THE GRID TITLE.
perform zf_build_grid_title.
DISPLAY ALV GRID.
perform zf_display_alv_grid.
&----
*& FORM ZF_DEFAULT_VARIANT
&----
form zf_default_variant.
i_variant-report = v_progname.
PROVIDES THE DEFAULT VARIANT FOR THE LIST SPECIFIED IN THE STRUCTURE CS_VARIANT
call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
exporting
i_save = 'A' " 'A' , 'X', 'U', ' '
changing
cs_variant = i_variant
exceptions
wrong_input = 1
not_found = 2
program_error = 3
others = 4
.
if sy-subrc = 0.
p_var = i_variant-variant.
else.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " ZF_DEFAULT_VARIANT
&----
*& FORM ZF_CHECK_VAR_EXIST
&----
form zf_check_var_exist.
data: l_variant like disvariant.
if not p_var is initial.
clear l_variant.
l_variant-report = v_progname.
l_variant-variant = p_var.
call function 'REUSE_ALV_VARIANT_EXISTENCE'
exporting
i_save = 'A'
changing
cs_variant = l_variant
exceptions
wrong_input = 1
not_found = 2
program_error = 3
others = 4
.
if sy-subrc = 0.
clear i_variant.
move l_variant-variant to i_variant-variant.
move l_variant-report to i_variant-report.
else.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endif.
endform. " ZF_CHECK_VAR_EXIST
&----
*& FORM ZF_VARIANT_F4
&----
form zf_variant_f4.
data: l_variant like disvariant.
DISPLAY VARIANT SELECTION DIALOG BOX
call function 'REUSE_ALV_VARIANT_F4'
exporting
is_variant = i_variant
I_TABNAME_HEADER =
I_TABNAME_ITEM =
IT_DEFAULT_FIELDCAT =
i_save = 'A'
i_display_via_grid = 'X'
importing
E_EXIT =
es_variant = l_variant
exceptions
not_found = 1
program_error = 2
others = 3
.
if sy-subrc = 0.
p_var = l_variant-variant.
clear i_variant.
move p_var to i_variant-variant.
move v_progname to i_variant-report.
else.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " ZF_VARIANT_F4
&----
*& FORM ZF_BUILD_FIELDCAT
&----
form zf_build_fieldcat using p_i_fieldcat type slis_t_fieldcat_alv.
data: l_fieldcat type slis_fieldcat_alv.
V_LIGHTS(1) TYPE C, " FOR TRAFFIC LIGHTS.
clear l_fieldcat.
l_fieldcat-col_pos = '1'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'V_LIGHTS'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-seltext_l = 'Category'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Category'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'Category'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 7. " TO DEFINE OUTPUT LENGTH OF THE COLUMN.
append l_fieldcat to p_i_fieldcat.
I_EKKO-EBELN. PURCHASE DOCUMENT NUMBER
clear l_fieldcat.
l_fieldcat-col_pos = '2'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'EBELN'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-key = 'X'. " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
l_fieldcat-hotspot = 'X'. " MARK THIS FIELD AS HOTSOPT TO CAUSE THE F2 EVENTS TO TRIGGER.
l_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
l_fieldcat-seltext_l = 'Purchase Order Number'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Purchase Order No.'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'PO No.'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
l_fieldcat-ref_tabname = 'EKKO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
I_EKKO-V_ICON.
clear l_fieldcat.
l_fieldcat-col_pos = '3'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'V_ICON'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-seltext_m = 'Icon'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-icon = 'X'. " AS ICON.
append l_fieldcat to p_i_fieldcat.
EKKO-EKORG, " PURCHASING ORGANISATION.
clear l_fieldcat.
l_fieldcat-col_pos = '4'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'EKORG'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Purchasing Organisation'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Purchasing Org'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'Pur Org'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
l_fieldcat-ref_tabname = 'EKKO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
I_EKKO-V_SYMB.
clear l_fieldcat.
l_fieldcat-col_pos = '5'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'V_SYMB'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-seltext_m = 'Status'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-symbol = 'X'. " AS SYMBOL.
append l_fieldcat to p_i_fieldcat.
EKKO-EKGRP, " PURCHASING GROUP.
clear l_fieldcat.
l_fieldcat-col_pos = '6'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'EKGRP'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Purchasing Group'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Purchasing Grp'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'Pur Grp'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
l_fieldcat-ref_tabname = 'EKKO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
EKKO-BSART, " PURCHASING DOCUMENT TYPE.
clear l_fieldcat.
l_fieldcat-col_pos = '7'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'BSART'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Purchase Document Type'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Pur Doc Type'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'PO Type'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 12. " SET THE OUTPUT LENGTH.
l_fieldcat-ref_tabname = 'EKKO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
EKKO-BEDAT, " PURCHASING DOCUMENT DATE.
clear l_fieldcat.
l_fieldcat-col_pos = '8'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'BEDAT'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Purchase Document Date'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Purchase Doc Date'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'PO Date'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
l_fieldcat-ref_tabname = 'EKKO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
EKKO-EBELP, " ITEM NO OF THE PURCHASING DOC.
clear l_fieldcat.
l_fieldcat-col_pos = '9'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'EBELP'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Item Number'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Item No.'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'Item No.'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 10. " SET THE OUTPUT LENGTH.
l_fieldcat-ref_tabname = 'EKPO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
EKKO-MATNR, " MATERIAL NUMBER.
clear l_fieldcat.
l_fieldcat-col_pos = '10'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'MATNR'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Material Number'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Material No.'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'Material No.'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
l_fieldcat-ref_tabname = 'EKPO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
EKKO-MENGE, " PURCHASE ORDER QUANTITY
clear l_fieldcat.
l_fieldcat-col_pos = '11'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'MENGE'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'R'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Ordered Quantity'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Ordered Qty'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'Ordered Qty'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
l_fieldcat-ref_tabname = 'EKPO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
EKKO-MEINS, " ORDERED UNIT
clear l_fieldcat.
l_fieldcat-col_pos = '12'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'MEINS'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'C'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Ordered Unit'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Ordered Unit'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'Ordered Unit'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 12. " SET THE OUTPUT LENGTH.
l_fieldcat-ref_tabname = 'EKPO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
EKKO-NETPR, " NET PRICE
clear l_fieldcat.
l_fieldcat-col_pos = '13'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'NETPR'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'R'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Net Price'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Net Price'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'Net Price'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 10. " SET THE OUTPUT LENGTH.
l_fieldcat-do_sum = 'X'. " FOR SUMMING UP
l_fieldcat-ref_tabname = 'EKPO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
EKKO-NETWR, " NET ORDER VALUE
clear l_fieldcat.
l_fieldcat-col_pos = '14'. " POSITION OF THE COLUMN.
l_fieldcat-fieldname = 'NETWR'. " FIELD FOR WHICH CATALOG ID FILLED.
l_fieldcat-tabname = 'I_EKKO'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
l_fieldcat-emphasize = 'C410'. " COLOR OF THIS COLUMN.
l_fieldcat-just = 'R'. " FOR JUSTIFICATION.
l_fieldcat-seltext_l = 'Net Order Value'. " LONG TEXT FOR HEADER.
l_fieldcat-seltext_m = 'Net Order Value'. " MEDIUM TEXT FOR HEADER.
l_fieldcat-seltext_s = 'Net Order Value'. " SHORT TEXT FOR HEADER.
l_fieldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
l_fieldcat-do_sum = 'X'. " FOR SUMMING UP
l_fieldcat-ref_tabname = 'EKPO'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append l_fieldcat to p_i_fieldcat.
endform. " ZF_BUILD_FIELDCAT
&----
*& FORM ZF_SELECT_EKKO
&----
form zf_select_ekko.
refresh i_ekko.
select ekkoebeln ekkobsart ekko~bedat
ekkoekorg ekkoekgrp ekko~waers
ekpoebelp ekpomatnr ekpo~menge
ekpomeins ekponetpr ekpo~netwr
into corresponding fields of table i_ekko
from ekko inner join ekpo on ekkoebeln = ekpoebeln
where ekko~ebeln in s_ebeln and
ekko~waers = 'USD'.
if sy-subrc <> 0.
message e003.
endif.
endform. " ZF_SELECT_EKKO
&----
*& FORM ZF_MODIFY_EKKO
&----
form zf_modify_ekko.
loop at i_ekko.
if i_ekko-ekorg = 'RAPI'.
i_ekko-v_icon = '@1V@'.
modify i_ekko transporting v_icon.
endif.
if i_ekko-ekgrp = '002'.
i_ekko-v_symb = 'N'.
modify i_ekko transporting v_symb.
endif.
if i_ekko-menge < 10.
i_ekko-v_lights = '3'.
modify i_ekko transporting v_lights.
elseif i_ekko-menge < 50.
i_ekko-v_lights = '2'.
modify i_ekko transporting v_lights.
else.
i_ekko-v_lights = '1'.
modify i_ekko transporting v_lights.
endif.
endloop.
endform. " ZF_MODIFY_EKKO
&----
*& FORM ZF_BUILD_LAYOUT
&----
form zf_build_layout .
i_layout-zebra = 'X'.
i_layout-totals_text = 'Total'.
i_layout-subtotals_text = 'SubTotal'.
i_layout-lights_fieldname = 'V_LIGHTS'.
i_layout-lights_tabname = 'I_EKKO'.
i_layout-box_fieldname = 'V_BOX'.
i_layout-box_tabname = 'I_EKKO'.
endform. " ZF_BUILD_LAYOUT
&----
*& FORM ZF_BUILD_SORT
&----
form zf_build_sort using p_i_sortinfo type slis_t_sortinfo_alv.
data: l_sortinfo type slis_sortinfo_alv.
clear l_sortinfo.
l_sortinfo-spos = '1'.
l_sortinfo-fieldname = 'EBELN'.
l_sortinfo-tabname = 'I_EKKO'.
l_sortinfo-up = 'X'.
l_sortinfo-group = 'UL'. " I.E UNDERLINE AFTER EVERY GROUP
l_sortinfo-subtot = 'X'.
append l_sortinfo to p_i_sortinfo.
endform. " ZF_BUILD_SORT
&----
*& FORM ZF_BUILD_EVENTCAT
&----
form zf_build_eventcat using p_i_eventcat type slis_t_event.
data: l_event type slis_alv_event.
GET ALL THE EVENTS.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = p_i_eventcat
exceptions
list_type_wrong = 1
others = 2
.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
clear l_event.
read table p_i_eventcat with key name = slis_ev_top_of_page into l_eveNT.
if sy-subrc = 0.
move 'ZF_TOP_OF_PAGE' to l_event-form.
append l_event to p_i_eventcat.
endif.
clear l_event.
read table p_i_eventcat with key name = slis_ev_user_command into l_evENT.
if sy-subrc = 0.
move 'ZF_USER_COMMAND' to l_event-form.
append l_event to p_i_eventcat.
endif.
clear l_event.
read table p_i_eventcat with key name = slis_ev_pf_status_set into l_eVENT.
if sy-subrc = 0.
move 'ZF_PF_STATUS' to l_event-form.
append l_event to p_i_eventcat.
endif.
endform. " ZF_BUILD_EVENTCAT
&----
*& FORM ZF_BUILD_LISTHEADER
&----
form zf_build_listheader using p_i_listheader type slis_t_listheader.
data: l_listheader type slis_listheader.
refresh p_i_listheader.
clear l_listheader.
l_listheader-typ = 'H'.
l_listheader-info = text-001.
append l_listheader to p_i_listheader.
clear l_listheader.
l_listheader-typ = 'H'.
l_listheader-info = text-002.
append l_listheader to p_i_listheader.
endform. " ZF_BUILD_LISTHEADER
&----
*& FORM ZF_BUILD_GRID_TITLE
&----
form zf_build_grid_title.
v_gridtitle = 'List of Purchase Orders.'.
endform. " ZF_BUILD_GRID_TITLE
&----
*& FORM ZF_TOP_OF_PAGE
&----
form zf_top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_listheader
i_logo = 'ENJOYSAP_LOGO'
.
endform. " ZF_TOP_OF_PAGE
&----
*& FORM ZF_USER_COMMAND
&----
form zf_user_command using p_ucomm type sy-ucomm
p_selfield type slis_selfield.
case p_ucomm.
when others.
if p_selfield-fieldname = 'EBELN' and p_selfield-tabname = 'I_EKKO'.
message i034 with p_selfield-value.
endif.
endcase.
endform. " ZF_USER_COMMAND
&----
*& FORM ZF_PF_STATUS
&----
form zf_pf_status using p_extab type slis_t_extab.
set pf-status 'ALV_MENU'.
endform. " ZF_PF_STATUS
&----
*& FORM ZF_DISPLAY_ALV_GRID
&----
form zf_display_alv_grid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = v_progname
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
i_structure_name = 'I_EKKO'
I_BACKGROUND_ID = ' '
i_grid_title = v_gridtitle
I_GRID_SETTINGS =
is_layout = i_layout
it_fieldcat = i_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
it_sort = i_sortinfo
IT_FILTER =
IS_SEL_HIDE =
i_default = 'X'
i_save = 'A'
is_variant = i_variant
it_events = i_eventcat
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = i_ekko
exceptions
program_error = 1
others = 2
.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " ZF_DISPLAY_ALV_GRID
Regards,
Amit
‎2006 Dec 21 7:13 AM
Hi,
For enabling page buttons you need to use the pf-status.
Just check in your ALV output. Go to System->status->in that get standard status of the display.As that is the standard one you cant change it.Just copy and rename it.Open the new status you created in se41 and make changes you need.
You can keep page buttons in that. When it is clicked capture the event in
sy-ucomm. Use this to display your new page. Include the usercommand and pfstatus in the FM reuse_alv_grid_display.
This way you can create page buttons and enable them.
Hope this helps.
Regards,
-Priyanka.