04-04-2013 1:23 PM
HI,
in the below code when i give I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE ' ,heading is coming in list.but,when i populate the it_events table and pass it to grid display,heading is not displaying in list.
below is the code ,where i commented the i_callback_top_of_page ,and passed the it_events.
REPORT ZPH_REP_ALV.
TYPE-POOLS: SLIS .
DATA : IT_EVENTS TYPE slis_t_event ,
WA_EVENTS TYPE slis_alv_event ,
IT_EKKO TYPE TABLE OF EKKO ,
WA_EKKO LIKE LINE OF IT_EKKO ,
IT_CSKS TYPE TABLE OF CSKS ,
WA_CSKS LIKE LINE OF IT_CSKS ,
IT_EKPO TYPE TABLE OF EKPO ,
WA_EKPO LIKE LINE OF IT_EKPO ,
IT_T001 TYPE STANDARD TABLE OF T001 ,
WA_T001 LIKE LINE OF IT_T001 ,
IT_FIELDCAT TYPE TABLE OF slis_t_fieldcat_alv ,
LIST_LAYOUT TYPE slis_layout_alv .
START-OF-SELECTION .
SELECT * FROM CSKS INTO TABLE IT_CSKS UP TO 30 ROWS .
PERFORM FILL_EVENT_TABLE .
END-OF-SELECTION .
PERFORM DISPLAY_DATA .
*PERFORM PREPARE_HEADER .
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'CSKS'
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
* IT_FIELDCAT =
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = IT_EVENTS
* 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
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = IT_CSKS
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
endform. " DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form FILL_EVENT_TABLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form FILL_EVENT_TABLE .
WA_EVENTS-NAME = 'TOP-OF-PAGE' .
WA_EVENTS-FORM = 'PREPARE_HEADER' .
APPEND WA_EVENTS TO IT_EVENTS .
endform. " FILL_EVENT_TABLE
FORM PREPARE_HEADER.
DATA : IT_HEADINGS TYPE slis_t_listheader ,
WA_HEADINGS TYPE slis_listheader .
CLEAR WA_HEADINGS.
WA_HEADINGS-TYP = 'H' .
WA_HEADINGS-INFO = 'DISPLAY OF COST CENTERS ' .
APPEND WA_HEADINGS TO IT_HEADINGS .
CLEAR WA_HEADINGS .
WA_HEADINGS-TYP = 'S' .
WA_HEADINGS-INFO = 'USING ALV' .
APPEND WA_HEADINGS TO IT_HEADINGS .
CLEAR WA_HEADINGS .
WA_HEADINGS-TYP = 'A' .
CONCATENATE SY-DATUM+6(2)'.'
SY-DATUM+4(2)'.'
SY-DATUM(4)
INTO WA_HEADINGS-INFO .
APPEND WA_HEADINGS TO IT_HEADINGS .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = IT_HEADINGS
I_LOGO = 'ZLOGO1'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM .
04-04-2013 2:20 PM
Hello Krishna,
Instead of sy-cprog, use SY-REPID and try.
Regards,
Sudhir Kothavale.
04-04-2013 2:28 PM
PASTE THIS CODE AND SEE THE OUTPUT,
I HAVE DONE THE CHANGES
*REPORT ZTEST NO STANDARD PAGE HEADING.
TYPE-POOLS: SLIS .
DATA : IT_EVENTS TYPE slis_t_event ,
WA_EVENTS TYPE slis_alv_event ,
IT_EKKO TYPE TABLE OF EKKO ,
WA_EKKO LIKE LINE OF IT_EKKO ,
IT_CSKS TYPE TABLE OF CSKS ,
WA_CSKS LIKE LINE OF IT_CSKS ,
IT_EKPO TYPE TABLE OF EKPO ,
WA_EKPO LIKE LINE OF IT_EKPO ,
IT_T001 TYPE STANDARD TABLE OF T001 ,
WA_T001 LIKE LINE OF IT_T001 ,
IT_FIELDCAT TYPE TABLE OF slis_t_fieldcat_alv ,
LIST_LAYOUT TYPE slis_layout_alv .
START-OF-SELECTION .
SELECT * FROM CSKS INTO TABLE IT_CSKS UP TO 10 ROWS .
PERFORM FILL_EVENT_TABLE .
END-OF-SELECTION .
PERFORM DISPLAY_DATA .
*PERFORM PREPARE_HEADER .
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DISPLAY_DATA .
data:LAYOUT TYPE SLIS_LAYOUT_ALv.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-repid
* I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COM '
I_CALLBACK_TOP_OF_PAGE = 'PREPARE_HEADER'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'CSKS'
* I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Bastin'
* I_GRID_SETTINGS =
IS_LAYOUT = LAYOUT
* IT_FIELDCAT =
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = IT_EVENTS
* 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
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = IT_CSKS
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
endform. " DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form FILL_EVENT_TABLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form FILL_EVENT_TABLE .
WA_EVENTS-NAME = 'TOP-OF-PAGE' .
WA_EVENTS-FORM = 'PREPARE_HEADER' .
APPEND WA_EVENTS TO IT_EVENTS .
endform. " FILL_EVENT_TABLE
FORM PREPARE_HEADER.
DATA : IT_HEADINGS TYPE slis_t_listheader ,
WA_HEADINGS TYPE slis_listheader .
CLEAR WA_HEADINGS.
WA_HEADINGS-TYP = 'H' .
WA_HEADINGS-INFO = 'DISPLAY OF COST CENTERS ' .
APPEND WA_HEADINGS TO IT_HEADINGS .
CLEAR WA_HEADINGS .
WA_HEADINGS-TYP = 'S' .
WA_HEADINGS-INFO = 'USING ALV' .
APPEND WA_HEADINGS TO IT_HEADINGS .
CLEAR WA_HEADINGS .
WA_HEADINGS-TYP = 'A' .
CONCATENATE SY-DATUM+6(2)'.'
SY-DATUM+4(2)'.'
SY-DATUM(4)
INTO WA_HEADINGS-INFO .
APPEND WA_HEADINGS TO IT_HEADINGS .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = IT_HEADINGS
I_LOGO = 'ZLOGO1'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM .
*
*
04-05-2013 7:03 AM
hi vinoth,
that's wat i did in the code first and the o/p is coming and i mentioned in the description(you gave prepare_header and renamed and gave top_of_page) its working fine. my doubt is when i comment the call_back parameter and passed the events table it_events ,then only the heading is not coming why. i saw this type of decelaration in a abap material and tried .
04-05-2013 9:49 AM
Top-of-page event is always processed in ALV Report and is only passed to the caller via the Callback parameter mechanism.In your case, top-of-page cannot be formatted by ALV Report analogously to the basic list, it must be handled completely by the caller. When you call the REUSE_ALV_GRID_DISPLAY you must inform parameter IT_EVENTS to register a callback subroutine for the TOP_OF_LIST event. like wise if you want to call header, u should use callback parameter.
Regards,
Bastin.G
04-04-2013 3:44 PM
Move SY-REPID to a global variable of the caller report (TOP include) and pass this variable to FM.
(If you use SY-REPID its value will be a report like SAPLSLVC_FULLSCREEN during execution of the FM, as it is written in the parameter documentation...)
Regards,
Raymond
04-05-2013 10:03 AM
Hi,
Please check this code,
REPORT ZPH_REP_ALV.
TYPE-POOLS: SLIS .
DATA : IT_EVENTS TYPE slis_t_event ,
* WA_EVENTS TYPE ,
IT_EKKO TYPE TABLE OF EKKO ,
WA_EKKO LIKE LINE OF IT_EKKO ,
IT_CSKS TYPE TABLE OF CSKS ,
WA_CSKS LIKE LINE OF IT_CSKS ,
IT_EKPO TYPE TABLE OF EKPO ,
WA_EKPO LIKE LINE OF IT_EKPO ,
IT_T001 TYPE STANDARD TABLE OF T001 ,
WA_T001 LIKE LINE OF IT_T001 ,
IT_FIELDCAT TYPE TABLE OF slis_t_fieldcat_alv ,
LIST_LAYOUT TYPE slis_layout_alv .
FIELD-SYMBOLS: <gfs_event> TYPE slis_alv_event.
START-OF-SELECTION .
SELECT * FROM CSKS INTO TABLE IT_CSKS UP TO 30 ROWS .
PERFORM FILL_EVENT_TABLE .
END-OF-SELECTION .
PERFORM DISPLAY_DATA .
*PERFORM PREPARE_HEADER .
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'CSKS'
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
* IT_FIELDCAT =
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = IT_EVENTS
* 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
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = IT_CSKS
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
endform. " DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form FILL_EVENT_TABLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form FILL_EVENT_TABLE .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
* EXPORTING
* I_LIST_TYPE =
IMPORTING
et_events = IT_EVENTS
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF sy-subrc = 0.
READ TABLE IT_EVENTS ASSIGNING <gfs_event> WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc = 0.
<gfs_event>-form = 'PREPARE_HEADER'.
ENDIF.
ENDIF.
*WA_EVENTS-NAME = 'TOP-OF-PAGE' .
*
*WA_EVENTS-FORM = '' .
*
*APPEND WA_EVENTS TO IT_EVENTS .
endform. " FILL_EVENT_TABLE
FORM PREPARE_HEADER.
DATA : IT_HEADINGS TYPE slis_t_listheader ,
WA_HEADINGS TYPE slis_listheader .
CLEAR WA_HEADINGS.
WA_HEADINGS-TYP = 'H' .
WA_HEADINGS-INFO = 'DISPLAY OF COST CENTERS ' .
APPEND WA_HEADINGS TO IT_HEADINGS .
CLEAR WA_HEADINGS .
WA_HEADINGS-TYP = 'S' .
WA_HEADINGS-INFO = 'USING ALV' .
APPEND WA_HEADINGS TO IT_HEADINGS .
CLEAR WA_HEADINGS .
WA_HEADINGS-TYP = 'A' .
CONCATENATE SY-DATUM+6(2)'.'
SY-DATUM+4(2)'.'
SY-DATUM(4)
INTO WA_HEADINGS-INFO .
APPEND WA_HEADINGS TO IT_HEADINGS .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = IT_HEADINGS
I_LOGO = 'ZLOGO1'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM .
Regards,
Suman
04-05-2013 11:41 AM
Hi Krishna,
Kindly replace 'TOP-OF-PAGE' by 'TOP_OF_PAGE' in the FORM fill_event_table . Report will display the header.
FORM fill_event_table .
wa_events-name = 'TOP_OF_PAGE' .
wa_events-form = 'PREPARE_HEADER' .
APPEND wa_events TO it_events .
ENDFORM. " FILL_EVENT_TABLE
Thanks & Regards,
Venugopal M N
04-05-2013 11:29 AM
04-05-2013 12:48 PM
Hi Krishna ,
The heading was not displaying because of wrong declaration of Event Name, So please use the below code in appending the Events instead of the code that you have written ,
form FILL_EVENT_TABLE .
WA_EVENTS-NAME = 'TOP_OF_PAGE' .
WA_EVENTS-FORM = 'PREPARE_HEADER' .
APPEND WA_EVENTS TO IT_EVENTS .
endform. " FILL_EVENT_TABLE
Thanks
Mallikarjun