END OF PAGE IN BLOCK ALV : PLZ HELP
Hi experts.
I have a requirement to display top-of-page end-of-page end-of-list in block alv but the problem is that end-of-page is not getting triggered instead top-of-page is getting triggered twice.
Below is the code for your reference :
REPORT zbhr_workers_comp_report
LINE-COUNT 60(4)
LINE-SIZE 999
NO STANDARD PAGE HEADING
MESSAGE-ID zmhr.
*//// This is how event table is getting populated:*
FORM events_get1 CHANGING t1_events TYPE slis_t_event.
DATA:ls1_events TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
et_events = t1_events.
READ TABLE t1_events INTO ls1_events WITH KEY name = slis_ev_top_of_page.
IF sy-subrc = 0.
MOVE c_form_top_of_page TO ls1_events-form.
APPEND ls1_events TO t1_events.
modify t1_events FROM ls1_events INDEX sy-tabix TRANSPORTING form.
CLEAR ls1_events.
ENDIF.
READ TABLE t1_events INTO ls1_events WITH KEY name = slis_ev_end_of_page.
IF sy-subrc = 0.
MOVE c_form_end_of_page TO ls1_events-form.
APPEND ls1_events TO t1_events.
modify t1_events FROM ls1_events INDEX sy-tabix TRANSPORTING form.
CLEAR ls1_events.
ENDIF.
READ TABLE t1_events INTO ls1_events WITH KEY name = slis_ev_end_of_list.
IF sy-subrc = 0.
MOVE c_form_end_of_list TO ls1_events-form.
APPEND ls1_events TO t1_events.
modify t1_events FROM ls1_events INDEX sy-tabix TRANSPORTING form.
CLEAR ls1_events.
ENDIF.
ENDFORM. " EVENTS_GET1
FORM : TOP_OF_PAGE
FORM top_of_page.
WRITE : /45 text-020, 65(5) text-021 , 71(11) v_begda, 84(3) text-022 , 89(11) v_endda.
ENDFORM. "TOP_OF_PAGE
FORM : end_of_page
FORM end_of_page.
DATA: lv_process TYPE i.
CLEAR: lv_process.
LOOP AT t_final_temp INTO w_final_temp where customer = t_final-customer.
lv_process = lv_process + 1.
ENDLOOP.
*RESERVE 3 LINES.
WRITE: /4 'Number of read Record : '(023), v_total_read.
WRITE: /4 'Number of processed Record : '(024), lv_process.
ENDFORM. "end_of_page
FORM : end_of_list
FORM end_of_list .
v_total_process = LINES( t_final[] ).
WRITE: /4 'Total sum of all processed data: '(029), v_total_process.
ENDFORM. "end_of_list
*****Displaying the block alv.
FORM display_output .
To restrict the display of sel info and list info.
st_print-no_print_selinfos = 'X'.
st_print-no_print_listinfos = 'X'.
st_print-reserve_lines = 2. " Lines reserved for end of page
Initialize ALV Block List
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid.
Append the ALV Block list with table t_final.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = w1_layout
it_fieldcat = t1_fieldcat
i_tabname = 'T_FINAL'
it_events = t1_events
it_sort = t_sort
TABLES
t_outtab = t_final
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Append the ALV Block list with table t_msg_display.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = w2_layout
it_fieldcat = t2_fieldcat
i_tabname = 'T_MSG_DISPLAY'
it_events = t2_events
TABLES
t_outtab = t_msg_display
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
i_interface_check = ' '
is_print = st_print
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. " DISPLAY_OUTPUT
Above is the core logic which I have used for displaying top-of-page end-of-page and end-of-list in block alv.
Please Help
Regards
Arvind.
Hi
MOVE 'TOP_OF_PAGE' TO ls1_events-form.
what is thie c_form_top_of_page instead write as above ,i hope it will work
Regards
Pavan
Similar Messages
-
End-of-page event in alv report
Hi all,
I want to create end-of-page in alv report i have used event also
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' * "
EXPORTING *
i_callback_program = sy-repid * "
i_callback_user_command = 'USER_COMMAND' * "
i_callback_top_of_page = 'TOP_OF_PAGE' * "
I_STRUCTURE_NAME = * "
it_fieldcat = fcat[] * "
it_events = it_event[] * "
TABLES
t_outtab = gtbl_pohead * "
EXCEPTIONS
program_error = 1 * "
OTHERS = 2 "
FORM end_of_page. *
DATA: listwidth TYPE i, *
ld_pagepos(10) TYPE c, *
ld_page(10) TYPE c. *
WRITE: sy-uline(50). "
SKIP 3.
WRITE:/40 'Page No',sy-pagno. "
ENDFORM. "END_OF_PAGE "hi
Search in SDN.You can find the solution for this.Before posting please search in SDN.
You have to use this FM 'REUSE_ALV_EVENTS_GET'
[End-Of-Page|http://www.sapdev.co.uk/reporting/alv/alvgrid_events.htm]
[Endo Of Page|http://www.sdn.sap.com/irj/scn/advancedsearch?query=alvend-of-pageevent+] -
Hi ,
have been working on a ALV report using the class SALV cl_salv_hierseq_table
I am facing few issues pertaining to two things:
1. Displaying some subtotal text along with the subtotals.
Example refer the standard demo example: SALV_DEMO_HIERSEQ_FORM_EVENTS
Now instead of A 17 and A26 I would like to show text like Subtotal for the Carrid.for subtotals and grand totals
Like Subtotal for A 17 is : XXXXXXX
GrandTotal is : YYYYYY
2. We have a page break and a new page for every purchasing group as in the standard example SALV_DEMO_HIERSEQ_FORM_EVENTS for CARRID.
I need to display some variable values as number of documents ,total number of records etc at the end of each CARRID group before a new page starts for the next CARRID.Please note i do not want it on every page.it should only be diaplyed at the end of page whose next page would be for next CARRID.[basically at end of every carrid]Example:after displaying all details for AA need to display the number of records for that carrid at the end of the page[as page break is based on CARRID]/
Thanks
Jyotsnaat end of page event, for CL_SALV_EVENTS_HIERSEQ, has some useful parameters allowing to know where you are at the time of event
parameter VALUE is of type CL_SALV_FORM which contains public attribute IF_SALV_FORM~ACCDESCRIPTION; you can slo get contents of it
about text of total/subtotal, this is normally set in the layout -
End of page in Grid alv.
Hello Everyone,
I populate event table in grid alv display.But End_of_page Event is not working.Can anyone tell me why End_of_Page is not working.Hi,
Have a look on the following code.This displays even end-of-page also.
TABLES VBAK.
TYPE-POOLS SLIS.
Data Declaration
TYPES: BEGIN OF T_VBAK,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
ERNAM TYPE VBAK-ERNAM,
AUDAT TYPE VBAK-AUDAT,
VBTYP TYPE VBAK-VBTYP,
NETWR TYPE VBAK-NETWR,
VKORG TYPE VBAK-VKORG,
VKGRP TYPE VBAK-VKGRP,
LINE_COLOR(4) TYPE C,
END OF T_VBAK.
DATA: IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0,
WA_VBAK TYPE T_VBAK.
ALV Data Declaration
DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID TYPE SY-REPID,
I_EVENTS TYPE SLIS_T_EVENT,
W_EVENTS LIKE LINE OF I_EVENTS.
DATA: I_COMMENT TYPE SLIS_T_LISTHEADER,
WA_COMMENT TYPE SLIS_LISTHEADER.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BLD_FLDCAT.
PERFORM BLD_LAYOUT.
PERFORM CALL_EVENTS.
PERFORM DISPLAY_ALV_REPORT.
Build Field Catalog for ALV Report
FORM BLD_FLDCAT.
FLDCAT-FIELDNAME = 'VBELN'.
FLDCAT-SELTEXT_M = 'Sales Document'.
FLDCAT-COL_POS = 0.
*FLDCAT-EMPHASIZE = 'C411'.
FLDCAT-OUTPUTLEN = 20.
FLDCAT-KEY = 'X'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'ERDAT'.
FLDCAT-SELTEXT_L = 'Record Date created'.
FLDCAT-COL_POS = 1.
FLDCAT-KEY = 'X'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'ERNAM'.
FLDCAT-SELTEXT_L = 'Cteated Object Person Name'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'AUDAT'.
FLDCAT-SELTEXT_M = 'Document Date'.
FLDCAT-COL_POS = 3.
FLDCAT-EMPHASIZE = 'C110'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'VBTYP'.
FLDCAT-SELTEXT_L = 'SD Document category'.
FLDCAT-COL_POS = 4.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'NETWR'.
FLDCAT-SELTEXT_L = 'Net Value of the SO in Document Currency'.
FLDCAT-COL_POS = 5.
FLDCAT-OUTPUTLEN = 60.
FLDCAT-DO_SUM = 'X'.
FLDCAT-DATATYPE = 'CURR'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'VKORG'.
FLDCAT-SELTEXT_L = 'Sales Organization'.
FLDCAT-COL_POS = 6.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'VKGRP'.
FLDCAT-SELTEXT_M = 'Sales Group'.
FLDCAT-COL_POS = 7.
FLDCAT-EMPHASIZE = 'C801'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
ENDFORM.
Build Layout for ALV Grid Report
FORM BLD_LAYOUT.
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
ENDFORM.
Display report using ALV grid
FORM DISPLAY_ALV_REPORT.
DATA T_EVENT TYPE SLIS_T_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = T_EVENT.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
IS_LAYOUT = GD_LAYOUT
I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_END_OF_LIST = 'END_OF_LIST_HTML'
IT_EVENTS = I_EVENTS
IT_FIELDCAT = FLDCAT[]
I_SAVE = 'X'
TABLES
T_OUTTAB = IT_VBAK
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.
Retrieve data from VBAK table and populate itab IT_VBAK
FORM DATA_RETRIEVAL.
DATA LD_COLOR(1) TYPE C.
SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG
UP TO 100 ROWS
FROM VBAK
INTO TABLE IT_VBAK.
LOOP AT IT_VBAK INTO WA_VBAK.
LD_COLOR = LD_COLOR + 1.
IF LD_COLOR = 8.
LD_COLOR = 1.
ENDIF.
CONCATENATE 'C' LD_COLOR '10' INTO WA_VBAK-LINE_COLOR.
MODIFY IT_VBAK FROM WA_VBAK.
ENDLOOP.
ENDFORM.
FORM CALL_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = I_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 NOT I_EVENTS[] IS INITIAL.
READ TABLE I_EVENTS INTO W_EVENTS WITH KEY NAME = 'END_OF_LIST'.
W_EVENTS-FORM = 'GENERATE_USERCOMMAND_FOOTER'.
MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
ENDIF.
ENDFORM.
FORM TOP_OF_PAGE.
CLEAR I_COMMENT[].
Form TOP-OF-PAGE *
ALV Report Header *
*Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c,
pagno(3).
Title
wa_header-typ = 'H'.
wa_header-info = 'EKKO Table Report'.
append wa_header to t_header.
clear wa_header.
Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
Total No. of Records Selected
describe table it_vbak lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
pagno = sy-pagno.
wa_header-typ = 'A'.
concatenate 'no. of pages:' pagno into wa_header-info separated by space.
append wa_header to t_header.
clear: wa_header.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
i_logo = 'Z_LOGO'.
*endform.
ENDFORM.
FORM GENERATE_USERCOMMAND_FOOTER.
CLEAR I_COMMENT[].
WA_COMMENT-TYP = 'S'.
WA_COMMENT-INFO = 'End of Page' . "SY-PAGNO.
APPEND WA_COMMENT TO I_COMMENT.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_COMMENT
I_LOGO = ''
I_END_OF_LIST_GRID = 'X'.
ENDFORM.
Thanks,
chandu. -
Hello ,
Can anyone let me know how to trigger the END-of-page event in ALV using OOPs.
Thanks in advance.
Regards
JaiHello Pratuysh,
Thanks for the answer
I know that report,but that doesn't help me.
Any other way
Thanks
Jai -
how to use End-Of-Page event in ALV's ?
This is example for ALV report which has End of Page.....
REPORT ZALV1.
******************TABLE DECLARATION***********************************
TABLES : VBAP. " tables declaration
*****************TYPE POOLS*******************************************
TYPE-POOLS : SLIS. " slis type pool
*****************INTERNAL TABLE DECLARATION***************************
DATA : BEGIN OF IT_VBAP OCCURS 0,
" internal table for sales document item
VBELN LIKE VBAP-VBELN, " sales document
POSNR LIKE VBAP-POSNR, " document item
ERNAM LIKE VBAP-ERNAM,
" name of the person who created the object
ERDAT LIKE VBAP-ERDAT, " date on which the record was created
MATNR LIKE VBAP-MATNR. " material number
DATA : END OF IT_VBAP.
DATA : BEGIN OF IT_MARA OCCURS 0, " general material data
MATNR LIKE MARA-MATNR, " material number
ERNAM LIKE MARA-ERNAM,
" name of the person who created the object
MATKL LIKE MARA-MATKL, " material group
MEINS LIKE MARA-MEINS, " base unit of measure
PSTAT LIKE MARA-PSTAT. " maintainence status
DATA : END OF IT_MARA.
******************VARIABLE
DECLARATION**********************************
DATA : REPID LIKE SY-REPID. " program name
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
" field catalog table for vbap
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
" field catalog table for mara
WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: GT_XEVENTS TYPE SLIS_T_EVENT.
DATA: GT_YEVENTS TYPE SLIS_T_EVENT. " events table
DATA : XS_EVENT TYPE SLIS_ALV_EVENT. " events type
DATA : GT_PRINT TYPE SLIS_PRINT_ALV. " print table
*******************MULTIPLE SELECT INPUT
PARAMETERS**********************
SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.
" multiple selection for sales document
******************INITIALIZATION**************************************
INITIALIZATION.
REPID = SY-REPID.
*******************START OF
SELECTION************************************
START-OF-SELECTION.
PERFORM POP_VBAP.
" populating the table with document item data
PERFORM POP_MARA.
" populating the table with general material data
PERFORM FIELD_CAT.
" mapping the fields for the field catalog
PERFORM EVENTS. " using the events
PERFORM BLOCK_LIST.
" displaying the data in blocked list
*& Form field_cat
text
--> p1 text
<-- p2 text
FORM FIELD_CAT .
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'POSNR'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'DOC ITEM'.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-OUTPUTLEN = 6.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ERNAM'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'NAME'.
WA_FIELDCAT-COL_POS = 3.
WA_FIELDCAT-OUTPUTLEN = 12.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ERDAT'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'DATE'.
WA_FIELDCAT-COL_POS = 4.
WA_FIELDCAT-OUTPUTLEN = 8.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'MAT NO'.
WA_FIELDCAT-COL_POS = 5.
WA_FIELDCAT-OUTPUTLEN = 18.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT1-FIELDNAME = 'MATNR'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'MAT NO'.
WA_FIELDCAT1-COL_POS = 1.
WA_FIELDCAT1-OUTPUTLEN = 18.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'ERNAM'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'NAME'.
WA_FIELDCAT1-COL_POS = 2.
WA_FIELDCAT1-OUTPUTLEN = 12.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'MATKL'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'MAT DESC'.
WA_FIELDCAT1-COL_POS = 3.
WA_FIELDCAT1-OUTPUTLEN = 9.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'MEINS'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'UNITS'.
WA_FIELDCAT1-COL_POS = 4.
WA_FIELDCAT1-OUTPUTLEN = 3.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'PSTAT'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'STATUS'.
WA_FIELDCAT1-COL_POS = 5.
WA_FIELDCAT1-OUTPUTLEN = 15.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
ENDFORM. " field_cat
*& Form events
text
--> p1 text
<-- p2 text
FORM EVENTS .
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'XEND_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'XTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'XTOP_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'XEND_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'YEND_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'YTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'YTOP_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'YEND_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
ENDFORM. " events
*& Form XTOP_OF_PAGE
text
FORM XTOP_OF_PAGE.
BREAK-POINT.
WRITE: / 'X_TOP_OF_PAGE'.
ENDFORM. "XTOP_OF_PAGE
FORM XTOP_OF_LIST *
FORM XTOP_OF_LIST.
BREAK-POINT.
WRITE: / 'X_TOP_OF_LIST'.
ENDFORM. "XTOP_OF_LIST
FORM XEND_OF_PAGE *
FORM XEND_OF_PAGE.
BREAK-POINT.
WRITE: / 'X_END_OF_PAGE'.
ENDFORM. "XEND_OF_PAGE
FORM XEND_OF_LIST *
FORM XEND_OF_LIST.
BREAK-POINT.
WRITE: / 'X_END_OF_LIST'.
ENDFORM. "XEND_OF_LIST
FORM YTOP_OF_PAGE.
BREAK-POINT.
WRITE: / 'Y_TOP_OF_PAGE'.
ENDFORM. "YTOP_OF_PAGE
FORM YTOP_OF_LIST *
FORM YTOP_OF_LIST.
BREAK-POINT.
WRITE: / 'Y_TOP_OF_LIST'.
ENDFORM. "YTOP_OF_LIST
FORM YEND_OF_PAGE *
FORM YEND_OF_PAGE.
BREAK-POINT.
WRITE: / 'Y_END_OF_PAGE'.
ENDFORM. "YEND_OF_PAGE
FORM YEND_OF_LIST *
FORM YEND_OF_LIST.
BREAK-POINT.
WRITE: / 'Y_END_OF_LIST'.
ENDFORM. "YEND_OF_LIST
*& Form POP_VBAP
text
--> p1 text
<-- p2 text
FORM POP_VBAP .
SELECT VBELN
POSNR
ERNAM
ERDAT
MATNR
FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
WHERE VBELN IN S_VBELN.
ENDFORM. " POP_VBAP
*& Form POP_MARA
text
--> p1 text
<-- p2 text
FORM POP_MARA .
LOOP AT IT_VBAP.
SELECT SINGLE MATNR
ERNAM
MATKL
MEINS
PSTAT
FROM MARA
INTO CORRESPONDING FIELDS OF IT_MARA
WHERE MATNR = IT_VBAP-MATNR.
APPEND IT_MARA.
ENDLOOP.
ENDFORM. " POP_MARA
*& Form BLOCK_LIST
text
--> p1 text
<-- p2 text
FORM BLOCK_LIST .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'user_command'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
I_TABNAME = 'IT_VBAP'
IT_EVENTS = GT_XEVENTS
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IT_VBAP
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 2
OTHERS = 3
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT1
I_TABNAME = 'IT_MARA'
IT_EVENTS = GT_YEVENTS
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IT_MARA
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 2
OTHERS = 3
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
IS_PRINT = GT_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 =
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. " BLOCK_LIST
Reward if useful. -
hi friends,
Is end-of-page possible in ALV reports,If how it is? what's that parameter
Thanks & Regards
RKhi
you have an event END_OF_PAGE.
pass this event along with the form name into the parameter IT_EVENTS.
and use your WRITE statement in the subroutine you specify for that event.
WA_EVENTS-FORM = 'END_PAGE'.
WA_EVENTS-NAME = 'END_OF_PAGE'.
APPEND WA_EVENTS TO IT_EVENTS.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
IT_FIELDCAT = it_fieldcat
IT_EVENTS = it_events
TABLES
t_outtab = it_final
form end_page.
write:/ 'No. of records processed:', l_tabix.
endform.
heck this link.It can help you.
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_events.htm
Kindly reward points by clicking the star on the left of reply,if you find it as useful.
Vasanth -
hi..
i want to put end-of-page in my alv report.
how can i do it??This is example for ALV report which has End of Page.....
REPORT ZALV1.
******************TABLE DECLARATION***********************************
TABLES : VBAP. " tables declaration
*****************TYPE POOLS*******************************************
TYPE-POOLS : SLIS. " slis type pool
*****************INTERNAL TABLE DECLARATION***************************
DATA : BEGIN OF IT_VBAP OCCURS 0,
" internal table for sales document item
VBELN LIKE VBAP-VBELN, " sales document
POSNR LIKE VBAP-POSNR, " document item
ERNAM LIKE VBAP-ERNAM,
" name of the person who created the object
ERDAT LIKE VBAP-ERDAT, " date on which the record was created
MATNR LIKE VBAP-MATNR. " material number
DATA : END OF IT_VBAP.
DATA : BEGIN OF IT_MARA OCCURS 0, " general material data
MATNR LIKE MARA-MATNR, " material number
ERNAM LIKE MARA-ERNAM,
" name of the person who created the object
MATKL LIKE MARA-MATKL, " material group
MEINS LIKE MARA-MEINS, " base unit of measure
PSTAT LIKE MARA-PSTAT. " maintainence status
DATA : END OF IT_MARA.
******************VARIABLE
DECLARATION**********************************
DATA : REPID LIKE SY-REPID. " program name
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
" field catalog table for vbap
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
" field catalog table for mara
WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: GT_XEVENTS TYPE SLIS_T_EVENT.
DATA: GT_YEVENTS TYPE SLIS_T_EVENT. " events table
DATA : XS_EVENT TYPE SLIS_ALV_EVENT. " events type
DATA : GT_PRINT TYPE SLIS_PRINT_ALV. " print table
*******************MULTIPLE SELECT INPUT
PARAMETERS**********************
SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.
" multiple selection for sales document
******************INITIALIZATION**************************************
INITIALIZATION.
REPID = SY-REPID.
*******************START OF
SELECTION************************************
START-OF-SELECTION.
PERFORM POP_VBAP.
" populating the table with document item data
PERFORM POP_MARA.
" populating the table with general material data
PERFORM FIELD_CAT.
" mapping the fields for the field catalog
PERFORM EVENTS. " using the events
PERFORM BLOCK_LIST.
" displaying the data in blocked list
*& Form field_cat
text
--> p1 text
<-- p2 text
FORM FIELD_CAT .
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'POSNR'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'DOC ITEM'.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-OUTPUTLEN = 6.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ERNAM'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'NAME'.
WA_FIELDCAT-COL_POS = 3.
WA_FIELDCAT-OUTPUTLEN = 12.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ERDAT'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'DATE'.
WA_FIELDCAT-COL_POS = 4.
WA_FIELDCAT-OUTPUTLEN = 8.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-SELTEXT_L = 'MAT NO'.
WA_FIELDCAT-COL_POS = 5.
WA_FIELDCAT-OUTPUTLEN = 18.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT1-FIELDNAME = 'MATNR'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'MAT NO'.
WA_FIELDCAT1-COL_POS = 1.
WA_FIELDCAT1-OUTPUTLEN = 18.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'ERNAM'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'NAME'.
WA_FIELDCAT1-COL_POS = 2.
WA_FIELDCAT1-OUTPUTLEN = 12.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'MATKL'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'MAT DESC'.
WA_FIELDCAT1-COL_POS = 3.
WA_FIELDCAT1-OUTPUTLEN = 9.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'MEINS'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'UNITS'.
WA_FIELDCAT1-COL_POS = 4.
WA_FIELDCAT1-OUTPUTLEN = 3.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-FIELDNAME = 'PSTAT'.
WA_FIELDCAT1-TABNAME = 'IT_MARA'.
WA_FIELDCAT1-SELTEXT_L = 'STATUS'.
WA_FIELDCAT1-COL_POS = 5.
WA_FIELDCAT1-OUTPUTLEN = 15.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
ENDFORM. " field_cat
*& Form events
text
--> p1 text
<-- p2 text
FORM EVENTS .
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'XEND_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'XTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'XTOP_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'XEND_OF_LIST'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
XS_EVENT-FORM = 'YEND_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'YTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
XS_EVENT-FORM = 'YTOP_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
XS_EVENT-FORM = 'YEND_OF_LIST'.
APPEND XS_EVENT TO GT_YEVENTS.
ENDFORM. " events
*& Form XTOP_OF_PAGE
text
FORM XTOP_OF_PAGE.
BREAK-POINT.
WRITE: / 'X_TOP_OF_PAGE'.
ENDFORM. "XTOP_OF_PAGE
FORM XTOP_OF_LIST *
FORM XTOP_OF_LIST.
BREAK-POINT.
WRITE: / 'X_TOP_OF_LIST'.
ENDFORM. "XTOP_OF_LIST
FORM XEND_OF_PAGE *
FORM XEND_OF_PAGE.
BREAK-POINT.
WRITE: / 'X_END_OF_PAGE'.
ENDFORM. "XEND_OF_PAGE
FORM XEND_OF_LIST *
FORM XEND_OF_LIST.
BREAK-POINT.
WRITE: / 'X_END_OF_LIST'.
ENDFORM. "XEND_OF_LIST
FORM YTOP_OF_PAGE.
BREAK-POINT.
WRITE: / 'Y_TOP_OF_PAGE'.
ENDFORM. "YTOP_OF_PAGE
FORM YTOP_OF_LIST *
FORM YTOP_OF_LIST.
BREAK-POINT.
WRITE: / 'Y_TOP_OF_LIST'.
ENDFORM. "YTOP_OF_LIST
FORM YEND_OF_PAGE *
FORM YEND_OF_PAGE.
BREAK-POINT.
WRITE: / 'Y_END_OF_PAGE'.
ENDFORM. "YEND_OF_PAGE
FORM YEND_OF_LIST *
FORM YEND_OF_LIST.
BREAK-POINT.
WRITE: / 'Y_END_OF_LIST'.
ENDFORM. "YEND_OF_LIST
*& Form POP_VBAP
text
--> p1 text
<-- p2 text
FORM POP_VBAP .
SELECT VBELN
POSNR
ERNAM
ERDAT
MATNR
FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
WHERE VBELN IN S_VBELN.
ENDFORM. " POP_VBAP
*& Form POP_MARA
text
--> p1 text
<-- p2 text
FORM POP_MARA .
LOOP AT IT_VBAP.
SELECT SINGLE MATNR
ERNAM
MATKL
MEINS
PSTAT
FROM MARA
INTO CORRESPONDING FIELDS OF IT_MARA
WHERE MATNR = IT_VBAP-MATNR.
APPEND IT_MARA.
ENDLOOP.
ENDFORM. " POP_MARA
*& Form BLOCK_LIST
text
--> p1 text
<-- p2 text
FORM BLOCK_LIST .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'user_command'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
I_TABNAME = 'IT_VBAP'
IT_EVENTS = GT_XEVENTS
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IT_VBAP
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT1
I_TABNAME = 'IT_MARA'
IT_EVENTS = GT_YEVENTS
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IT_MARA
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
IS_PRINT = GT_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 =
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. " BLOCK_LIST
Regards
vasu -
Migration to an asm instance. plz help me urgent
RMAN> BACKUP AS COPY DATABASE FORMAT '+DGROUP1';
Starting backup at 20-AUG-07
Starting implicit crosscheck backup at 20-AUG-07
using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=328 devtype=DISK
ORA-19501: read error on file "+DGROUP1/sravan/backupset/2007_08_03/nnsnf0_ora_asm_migration_0.260.1", blockno 1 (blocksize=512)
ORA-17507: I/O request size is not a multiple of logical block size
Crosschecked 7 objects
Finished implicit crosscheck backup at 20-AUG-07
Starting implicit crosscheck copy at 20-AUG-07
using channel ORA_DISK_1
ORA-19587: error occurred reading 8192 bytes at block number 1
ORA-17507: I/O request size 8192 is not a multiple of logical block size
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 08/20/2007 16:53:21
ORA-19587: error occurred reading 8192 bytes at block number 1
ORA-17507: I/O request size 8192 is not a multiple of logical block size> plz help me urgent
Adjective
* S: (adj) pressing, urgent (compelling immediate action) "too pressing to permit of longer delay";So you are saying that your problem is a lot more important than any other person's problem on this forum?
And you're demanding a quick response from professionals that give you and others assistance here in their free time without getting a single cent compensation?
Don't you think that this "it is urgent!" statement severely lacks manners? -
End of page in ALV Grid Report
Dear ABAPres,
I have developed ALV report using the Function module 'REUSE_ALV_GRID_DISPLAY'.
I want to display the End of Page.How can i achiev this.Please help me in this.
Thanks & Regards,
ashok.Hi ,
See below code....
REPORT zcssd_sales_hours_pend2.
TYPE-POOLS : slis.
*****Tables Used in the Report************************
TABLES : vbak,
tvak,
tvlk,
likp,
vbep,
t001w,
kna1.
*****Global Data Declarations*************************
DATA: i_fieldcat TYPE slis_t_fieldcat_alv ,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA: tbl_fieldcat1 TYPE slis_t_fieldcat_alv ,
st_fieldcat1 TYPE slis_fieldcat_alv.
DATA: w_layout TYPE slis_layout_alv.
DATA: st_layout1 TYPE slis_layout_alv,
v_header TYPE slis_t_listheader,
v_header1 TYPE slis_t_listheader,
v_header2 TYPE slis_t_listheader,
v_events TYPE slis_t_event.
DATA: gt_sort TYPE slis_t_sortinfo_alv.
DATA: i_events TYPE slis_t_event,
i_event_exit TYPE slis_t_event_exit.
DATA: w_events LIKE LINE OF i_events,
w_event_exit LIKE LINE OF i_event_exit.
DATA: i_list_comments TYPE slis_t_listheader.
DATA: w_list_comments LIKE LINE OF i_list_comments.
DATA: w_print TYPE slis_print_alv.
DATA: gs_sort TYPE slis_sortinfo_alv.
*DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
*****Declaration of Internal Tables****************
TYPES : BEGIN OF ty_vbap_vbak,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
matkl TYPE vbap-matkl,
zmeng TYPE vbap-zmeng,
meins TYPE vbap-meins,
spart TYPE vbap-spart,
netwr TYPE vbap-netwr,
kwmeng TYPE vbap-kwmeng,
werks TYPE vbap-werks,
route TYPE vbap-route,
netpr TYPE vbap-netpr,
kpein TYPE vbap-kpein,
kmein TYPE vbap-kmein,
auart TYPE vbak-auart,
lifsk TYPE vbak-lifsk,
netwr1 TYPE vbak-netwr,
vkorg TYPE vbak-vkorg,
vtweg TYPE vbak-vtweg,
spart1 TYPE vbak-spart,
vdatu TYPE vbak-vdatu,
kunnr TYPE vbak-kunnr,
END OF ty_vbap_vbak.
DATA : i_vbap_vbak1 TYPE STANDARD TABLE OF ty_vbap_vbak.
DATA : w_vbap_vbak1 LIKE LINE OF i_vbap_vbak1.
DATA : i_vbap_vbak2 TYPE STANDARD TABLE OF ty_vbap_vbak.
DATA : w_vbap_vbak2 LIKE LINE OF i_vbap_vbak2.
TYPES : BEGIN OF ty_knvv,
kunnr TYPE knvv-kunnr,
vkorg TYPE knvv-vkorg,
vtweg TYPE knvv-vtweg,
spart TYPE knvv-spart,
bzirk TYPE knvv-bzirk,
name1 TYPE kna1-name1,
END OF ty_knvv.
DATA : i_knvv1 TYPE STANDARD TABLE OF ty_knvv.
DATA : w_knvv1 LIKE LINE OF i_knvv1.
DATA : i_knvv2 TYPE STANDARD TABLE OF ty_knvv.
DATA : w_knvv2 LIKE LINE OF i_knvv2.
TYPES : BEGIN OF ty_likp,
vbeln TYPE likp-vbeln,
lfart TYPE likp-lfart,
lddat TYPE likp-lddat,
vbtyp TYPE likp-vbtyp,
kunnr TYPE likp-kunnr,
anzpk TYPE likp-anzpk,
netwr TYPE likp-netwr,
werks TYPE likp-werks.
TYPES : END OF ty_likp.
DATA : i_likp TYPE STANDARD TABLE OF ty_likp.
DATA : w_likp LIKE LINE OF i_likp.
DATA : i_t171t TYPE STANDARD TABLE OF t171t.
DATA : w_t171t LIKE LINE OF i_t171t.
TYPES : BEGIN OF ty_lips,
vbeln TYPE lips-vbeln,
posnr TYPE lips-posnr,
matnr TYPE lips-matnr,
matkl TYPE lips-matkl,
werks TYPE lips-werks,
lfimg TYPE lips-lfimg,
netwr TYPE lips-netwr.
TYPES : END OF ty_lips.
DATA : i_lips TYPE STANDARD TABLE OF ty_lips.
DATA : w_lips LIKE LINE OF i_lips.
TYPES : BEGIN OF ty_likp_lips,
vbeln TYPE likp-vbeln,
vkorg TYPE likp-vkorg,
lfart TYPE likp-lfart,
lddat TYPE likp-lddat,
vbtyp TYPE likp-vbtyp,
kunnr TYPE likp-kunnr,
anzpk TYPE likp-anzpk,
netwr TYPE likp-netwr,
werks TYPE likp-werks,
posnr TYPE lips-posnr,
matnr TYPE lips-matnr,
matkl TYPE lips-matkl,
lipswerks TYPE lips-werks,
lfimg TYPE lips-lfimg,
vrkme TYPE lips-vrkme,
vgbel TYPE lips-vgbel,
vtweg TYPE lips-vtweg,
spart TYPE lips-spart,
lipsnetwr TYPE lips-netwr.
TYPES : END OF ty_likp_lips.
DATA : i_likp_lips TYPE STANDARD TABLE OF ty_likp_lips.
DATA : w_likp_lips LIKE LINE OF i_likp_lips.
DATA : i_likp_lips1 TYPE STANDARD TABLE OF ty_likp_lips.
DATA : w_likp_lips1 LIKE LINE OF i_likp_lips1.
TYPES : BEGIN OF ty_vbup,
vbeln TYPE vbup-vbeln,
posnr TYPE vbup-posnr,
lfsta TYPE vbup-lfsta,
wbsta TYPE vbup-wbsta,
END OF ty_vbup.
TYPES : BEGIN OF ty_vbup1,
vbeln TYPE vbup-vbeln,
posnr TYPE vbup-posnr,
lfgsa TYPE vbup-lfgsa,
wbsta TYPE vbup-wbsta,
END OF ty_vbup1.
DATA : i_vbup TYPE STANDARD TABLE OF ty_vbup.
DATA : w_vbup LIKE LINE OF i_vbup.
DATA : i_vbup1 TYPE STANDARD TABLE OF ty_vbup1.
DATA : w_vbup1 LIKE LINE OF i_vbup1.
TYPES : BEGIN OF ty_output,
vbeln TYPE likp-vbeln,
vkorg TYPE likp-vkorg,
lfart TYPE likp-lfart,
lddat TYPE likp-lddat,
vbtyp TYPE likp-vbtyp,
kunnr TYPE likp-kunnr,
anzpk TYPE likp-anzpk,
netwr TYPE likp-netwr,
werks TYPE likp-werks,
posnr TYPE lips-posnr,
matnr TYPE lips-matnr,
matkl TYPE lips-matkl,
lipswerks TYPE lips-werks,
lfimg TYPE lips-lfimg,
vrkme TYPE lips-vrkme,
vgbel TYPE lips-vgbel,
vtweg TYPE lips-vtweg,
spart TYPE lips-spart,
lipsnetwr TYPE lips-netwr,
lfsta TYPE vbup-lfsta,
wbsta TYPE vbup-wbsta,
END OF ty_output.
DATA : i_output TYPE STANDARD TABLE OF ty_output.
DATA : w_output LIKE LINE OF i_output.
DATA : i_output1 TYPE STANDARD TABLE OF ty_output.
DATA : w_output1 LIKE LINE OF i_output1.
TYPES : BEGIN OF ty_vbfa,
vbelv TYPE vbfa-vbelv,
posnv TYPE vbfa-posnv,
vbeln TYPE vbfa-vbeln,
posnn TYPE vbfa-posnn,
vbtyp_n TYPE vbfa-vbtyp_n,
rfmng TYPE vbfa-rfmng,
RFWRT TYPE VBFA-RFWRT,
vbtyp_v TYPE vbfa-vbtyp_v,
END OF ty_vbfa.
DATA : i_vbfa TYPE STANDARD TABLE OF ty_vbfa.
DATA : w_vbfa LIKE LINE OF i_vbfa.
TYPES : BEGIN OF ty_vbfa1,
vbelv TYPE vbfa-vbelv,
posnv TYPE vbfa-posnv,
vbeln TYPE vbfa-vbeln,
posnn TYPE vbfa-posnn,
rfmng TYPE vbfa-rfmng,
rfwrt TYPE vbfa-rfwrt,
END OF ty_vbfa1.
DATA : i_vbfa1 TYPE STANDARD TABLE OF ty_vbfa1.
DATA : w_vbfa1 LIKE LINE OF i_vbfa1.
TYPES: BEGIN OF ty_vbrk_vbrp,
vbeln TYPE vbrk-vbeln,
fkart TYPE vbrk-fkart,
fktyp TYPE vbrk-fktyp,
vbtyp TYPE vbrk-vbtyp,
waerk TYPE vbrk-waerk,
netwr TYPE vbrk-netwr,
posnr TYPE vbrp-posnr,
fkimg TYPE vbrp-fkimg,
vrkme TYPE vbrp-vrkme,
umvkz TYPE vbrp-umvkz,
umvkn TYPE vbrp-umvkn,
netwr1 TYPE vbrp-netwr,
END OF ty_vbrk_vbrp.
DATA : i_vbrk_vbrp TYPE STANDARD TABLE OF ty_vbrk_vbrp.
DATA : w_vbrk_vbrp LIKE LINE OF i_vbrk_vbrp.
TYPES : BEGIN OF ty_vbep,
vbeln TYPE vbep-vbeln,
posnr TYPE vbep-posnr,
wmeng TYPE vbep-wmeng,
lddat TYPE vbep-lddat,
END OF ty_vbep.
DATA : i_vbep TYPE STANDARD TABLE OF ty_vbep.
DATA : w_vbep LIKE LINE OF i_vbep.
TYPES : BEGIN OF ty_vbep_vbup,
vbeln TYPE vbep-vbeln,
posnr TYPE vbep-posnr,
wmeng TYPE vbep-wmeng,
lddat TYPE vbep-lddat,
lfgsa TYPE vbup-lfgsa,
wbsta TYPE vbup-wbsta,
END OF ty_vbep_vbup.
DATA : i_vbep_vbup TYPE STANDARD TABLE OF ty_vbep_vbup.
DATA : w_vbep_vbup LIKE LINE OF i_vbep_vbup.
TYPES : BEGIN OF ty_makt,
matnr TYPE mara-matnr,
maktx TYPE makt-maktx,
END OF ty_makt.
DATA : i_makt TYPE STANDARD TABLE OF ty_makt.
DATA : w_makt LIKE LINE OF i_makt.
TYPES : BEGIN OF ty_final,
lddat TYPE likp-lddat,
werks TYPE vbap-werks,
bzirk TYPE knvv-bzirk,
bztxt TYPE t171t-bztxt,
kunnr TYPE vbak-kunnr,
name1 TYPE kna1-name1,
vbeln TYPE likp-vbeln,
wbsta TYPE vbup-wbsta,
text(25) TYPE c,
lfgsa TYPE vbup-lfgsa,
kwmeng TYPE vbap-kwmeng,
netwr TYPE likp-netwr,
order TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE mara-matnr,
netwr1 TYPE vbak-netwr,
kwmeng1 TYPE vbap-kwmeng,
kwmeng2 TYPE vbap-kwmeng,
route TYPE vbap-route,
lifsk TYPE vbak-lifsk,
vdatu TYPE vbak-vdatu,
END OF ty_final.
DATA : i_final TYPE STANDARD TABLE OF ty_final.
DATA : w_final LIKE LINE OF i_final.
DATA : i_final1 TYPE STANDARD TABLE OF ty_final.
DATA : w_final1 LIKE LINE OF i_final1.
TYPES : BEGIN OF ty_final2,
lddat TYPE likp-lddat,
werks TYPE vbap-werks,
bzirk TYPE knvv-bzirk,
bztxt TYPE t171t-bztxt,
kunnr TYPE vbak-kunnr,
name1 TYPE kna1-name1,
vbeln TYPE likp-vbeln,
wbsta TYPE vbup-wbsta,
text(25) TYPE c,
lfgsa TYPE vbup-lfgsa,
kwmeng TYPE vbap-kwmeng,
netwr TYPE likp-netwr,
order TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE mara-matnr,
netwr1 TYPE vbak-netwr,
kwmeng1 TYPE vbap-kwmeng,
kwmeng2 TYPE vbap-kwmeng,
vdatu TYPE vbak-vdatu,
maktx TYPE makt-maktx,
END OF ty_final2.
DATA : i_final2 TYPE STANDARD TABLE OF ty_final2.
DATA : w_final2 LIKE LINE OF i_final2.
DATA : i_conwa TYPE STANDARD TABLE OF vbco6 WITH HEADER LINE.
DATA : i_vbfa_tab TYPE STANDARD TABLE OF vbfa WITH HEADER LINE.
DATA : opt TYPE ctu_params.
DATA : v_vbeln TYPE vbak-vbeln.
DATA : w_vbeln TYPE vbak-vbeln.
DATA : v_repid TYPE sy-repid.
DATA : v_netwr TYPE vbak-netwr.
DATA : v_kwmeng TYPE vbap-kwmeng.
DATA : v_netwr1 TYPE vbak-netwr.
DATA : v_kwmeng1 TYPE vbap-kwmeng.
DATA : v_time(60) TYPE c.
DATA : v_plant(60) TYPE c.
DATA : v_date(60) TYPE c.
DATA : v_lfart(60) TYPE c.
DATA : v_auart(60) TYPE c.
DATA : v_mod(2) TYPE c.
DATA : name(10).
DATA : v_indexes TYPE sy-index.
DATA : v_text(40) TYPE c.
DATA : v_total TYPE p DECIMALS 2.
DATA : v_total1(60) TYPE c.
DATA : v_totqt TYPE p DECIMALS 2.
****Constants Declaration********************************
CONSTANTS : c_wbstaa TYPE vbup-wbsta VALUE 'A',
c_wbstab TYPE vbup-wbsta VALUE 'B',
c_wbstac TYPE vbup-wbsta VALUE 'C',
c_lfartlf TYPE likp-lfart VALUE 'LF',
c_lfartlr TYPE likp-lfart VALUE 'LR',
c_lfartlo TYPE likp-lfart VALUE 'LO',
c_lfartzlo TYPE likp-lfart VALUE 'ZLO',
c_lfgsaa TYPE vbup-lfgsa VALUE 'A',
c_lfgsab TYPE vbup-lfgsa VALUE 'B',
c_vbtyp_nj TYPE vbfa-vbtyp_n VALUE 'J',
c_vbtyp_nt TYPE vbfa-vbtyp_n VALUE 'T',
c_vbtyp_nm TYPE vbfa-vbtyp_n VALUE 'M',
c_vbtyp_vh TYPE vbfa-vbtyp_v VALUE 'H',
c_1100 TYPE t001w-werks VALUE '1100',
c_1101 TYPE t001w-werks VALUE '1101'.
****Selection Screen Declaration*************************
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE title.
SELECT-OPTIONS : s_werks FOR t001w-werks OBLIGATORY.
SELECT-OPTIONS : s_lddat FOR likp-lddat.
SELECT-OPTIONS : s_auat FOR vbak-auart DEFAULT 'OR'.
SELECT-OPTIONS : s_lfat FOR likp-lfart DEFAULT 'LF'.
SELECT-OPTIONS : s_vbeln FOR vbep-vbeln NO-DISPLAY.
SELECT-OPTIONS : s_posnr FOR vbep-posnr NO-DISPLAY.
SELECTION-SCREEN : END OF BLOCK b1.
****Initialization***************************************
INITIALIZATION.
v_repid = sy-repid.
title = 'Selection Screen Options'.
s_werks-sign = 'I'.
s_werks-option = 'EQ'.
s_werks-low = c_1100.
s_werks-high = c_1101.
APPEND s_werks.
CALL FUNCTION 'OIUREP_MONTH_FIRST_LAST'
EXPORTING
i_date = sy-datum
IMPORTING
e_first_day = s_lddat-low
e_last_day = s_lddat-high.
s_lddat-sign = 'I'.
s_lddat-option = 'EQ'.
APPEND s_lddat TO s_lddat.
****At selection screen on field*************************
AT SELECTION-SCREEN ON s_werks.
SELECT SINGLE * FROM t001w WHERE werks IN s_werks.
IF sy-subrc <> 0.
MESSAGE 'Please enter correct Plant' TYPE 'E'.
ENDIF.
AT SELECTION-SCREEN ON s_lddat.
AT SELECTION-SCREEN ON s_auat.
SELECT SINGLE * FROM tvak WHERE auart IN s_auat.
IF sy-subrc <> 0.
MESSAGE 'Please enter correct Sales Doc Type' TYPE 'E'.
ENDIF.
AT SELECTION-SCREEN ON s_lfat.
SELECT SINGLE * FROM tvlk WHERE lfart IN s_lfat.
IF sy-subrc <> 0.
MESSAGE 'Please enter correct Delv Doc Type' TYPE 'E'.
ENDIF.
****Start selection of data from tables based on cond****
PERFORM SALESORDER_HEADER_ITEM.
PERFORM CUSTOMER_SALESDATA.
START-OF-SELECTION.
PERFORM delivery_header_item.
PERFORM salesdocument_itemstatus.
PERFORM salesdocument_schedulelinedata.
PERFORM salesdocument_itemstatus_lfgsa.
PERFORM sales_district.
PERFORM delivery_salesdocument_wbsta.
PERFORM salesdocumentflow.
PERFORM billingdoc_header_item.
PERFORM salesorder_header_item2.
PERFORM customer_salesdata1.
PERFORM delivery_output.
PERFORM salesdoc_shdlnitem_itemstatus.
PERFORM salesorder_header_item1.
PERFORM customer_salesdata2.
PERFORM salesorder_output.
PERFORM material_descriptions.
PERFORM final_output.
END-OF-SELECTION.
****Fieldcatalog Routine for ALVGRID******************
PERFORM fieldcatalog.
****Event Routine for ALVGRID*************************
PERFORM build_header CHANGING v_header v_header1.
PERFORM build_events CHANGING v_events.
PERFORM print_build.
****Layout Routine for ALVGRID************************
PERFORM layout_build.
****Grid_display Routine for ALVGRID******************
PERFORM grid_display.
*& Form fieldcatalog
text
--> p1 text
<-- p2 text
FORM fieldcatalog .
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'LDDAT'.
wa_fieldcat-seltext_m = 'Loading Dt'.
wa_fieldcat-key = ' '. "SUBTOTAL KEY
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_m = 'Plant'.
wa_fieldcat-key = ' '. "SUBTOTAL KEY
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'BZIRK'.
wa_fieldcat-seltext_m = 'Sales Dist'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'BZTXT'.
wa_fieldcat-seltext_m = 'Name of Dist'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-seltext_m = 'Customer No.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_m = 'Customer Name'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-seltext_m = 'Delivery No.'.
wa_fieldcat-key = ' '. "SUBTOTAL KEY
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'WBSTA'.
wa_fieldcat-seltext_m = 'Delv Status'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'TEXT'.
wa_fieldcat-seltext_m = 'Status Desc'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'KWMENG'.
wa_fieldcat-seltext_m = 'Delivery Qty'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'NETWR'.
wa_fieldcat-seltext_m = 'Delv Net Value'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'ORDER'.
wa_fieldcat-seltext_m = 'Sales Order'.
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'KWMENG1'.
wa_fieldcat-seltext_m = 'Order Qty'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'NETWR1'.
wa_fieldcat-seltext_m = 'Sales Net Value'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'LIFSK'.
wa_fieldcat-seltext_m = 'Delv Block'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'ROUTE'.
wa_fieldcat-seltext_m = 'Route'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_FINAL1'.
wa_fieldcat-fieldname = 'VDATU'.
wa_fieldcat-seltext_m = 'Req Delivery Dt'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
CLEAR gs_sort.
gs_sort-fieldname = 'LDDAT'.
gs_sort-spos = 1.
gs_sort-up = 'X'.
gs_sort-subtot = 'X'.
APPEND gs_sort TO gt_sort.
ENDFORM. " fieldcatalog
*& Form print_build
text
--> p1 text
<-- p2 text
FORM print_build .
w_print-no_print_listinfos = 'X'.
ENDFORM. " print_build
*& Form layout_build
text
--> p1 text
<-- p2 text
FORM layout_build .
w_layout-zebra = 'X'.
w_layout-no_vline = ''.
w_layout-colwidth_optimize = 'X'.
w_layout-detail_popup = 'X'.
w_layout-detail_initial_lines = 'X'.
w_layout-detail_titlebar = 'Detail Title Bar'.
ENDFORM. " layout_build
*& Form GRID_DISPLAY
text
FORM grid_display.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
i_callback_user_command = 'PROCESS_USER_COMMANDS'
is_layout = w_layout
it_fieldcat = i_fieldcat[]
it_sort = gt_sort[]
i_default = 'X'
i_save = 'A'
it_events = v_events
is_print = w_print
TABLES
t_outtab = i_final1
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "GRID_DISPLAY
*& Form END_OF_LIST
FORM top_of_list.
ENDFORM. "TOP_OF_LIST
*& Form PROCESS_USER_COMMANDS
text
-->SYST-UCOMM text
-->SELFIELD text
FORM process_user_commands USING syst-ucomm LIKE syst-ucomm
selfield TYPE slis_selfield.
CASE syst-ucomm.
WHEN '&IC1'.
IF selfield-sel_tab_field = 'I_FINAL1-VBELN'.
w_vbeln = selfield-value.
SET PARAMETER ID: 'VL' FIELD w_vbeln.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
ELSEIF selfield-sel_tab_field = 'I_FINAL1-ORDER'.
v_vbeln = selfield-value.
SET PARAMETER ID: 'AUN' FIELD v_vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ELSE.
READ TABLE i_final1 INTO w_final1 INDEX selfield-tabindex.
IF w_final1-vbeln <> ' '.
LOOP AT i_final INTO w_final WHERE vbeln = w_final1-vbeln.
READ TABLE i_makt INTO w_makt WITH KEY matnr = w_final-matnr .
IF sy-subrc = 0.
MOVE : w_final TO w_final2.
MOVE : w_makt-maktx TO w_final2-maktx.
APPEND w_final2 TO i_final2.
ELSE.
MOVE : w_final TO w_final2.
MOVE : ' ' TO w_final2-maktx.
APPEND w_final2 TO i_final2.
ENDIF.
ENDLOOP.
CLEAR w_makt.
ELSE.
LOOP AT i_final INTO w_final WHERE order = w_final1-order.
READ TABLE i_makt INTO w_makt WITH KEY matnr = w_final-matnr .
IF sy-subrc = 0.
MOVE : w_final TO w_final2.
MOVE : w_makt-maktx TO w_final2-maktx.
APPEND w_final2 TO i_final2.
ELSE.
MOVE : w_final TO w_final2.
MOVE : ' ' TO w_final2-maktx.
APPEND w_final2 TO i_final2.
ENDIF.
ENDLOOP.
CLEAR w_makt.
ENDIF.
PERFORM fieldcatalog1 USING selfield .
PERFORM event_build.
PERFORM layout_build1.
PERFORM grid_display1.
ENDIF.
ENDCASE.
ENDFORM. " PROCESS_USER_COMMANDS
*& Form fieldcatalog1
text
--> p1 text
<-- p2 text
FORM fieldcatalog1 USING r_selfield TYPE slis_selfield.
REFRESH tbl_fieldcat1.
READ TABLE i_final1 INTO w_final1 INDEX r_selfield-tabindex.
IF w_final1-vbeln <> ' '.
PERFORM write_fieldcat1 USING 'POSNR' 'I_FINAL2' 'Item Number' ' ' 2 ' ' ' '
PERFORM write_fieldcat1 USING 'MATNR' 'I_FINAL2' 'Material Number' ' ' 3 ' ' ' '
PERFORM write_fieldcat1 USING 'MAKTX' 'I_FINAL2' 'Material Description' ' ' 4 ' ' ' '
PERFORM write_fieldcat1 USING 'KWMENG' 'I_FINAL2' 'Delivery Qty' ' ' 7 ' ' ' '
PERFORM write_fieldcat1 USING 'NETWR' 'I_FINAL2' 'Delv Net Value' ' ' 8 ' ' ' '
ELSE.
PERFORM write_fieldcat1 USING 'POSNR' 'I_FINAL2' 'Item Number' ' ' 2 ' ' ' '
PERFORM write_fieldcat1 USING 'MATNR' 'I_FINAL2' 'Material Number' ' ' 3 ' ' ' '
PERFORM write_fieldcat1 USING 'MAKTX' 'I_FINAL2' 'Material Description' ' ' 4 ' ' ' '
PERFORM write_fieldcat1 USING 'KWMENG2' 'I_FINAL2' 'Sales Order Qty' ' ' 9 ' ' ' '
PERFORM write_fieldcat1 USING 'NETWR1' 'I_FINAL2' 'Net Value' ' ' 10 ' ' ' '
ENDIF.
ENDFORM. " fieldcatalog1
*& Form write_fieldcat1
text
-->NAME text
-->TAB text
-->ST text
-->KEY text
-->POS text
-->LENGTH text
-->ICON text
-->HOT text
FORM write_fieldcat1 USING name tab st key pos length icon hot.
st_fieldcat1-fieldname = name.
st_fieldcat1-tabname = tab.
st_fieldcat1-seltext_m = st.
st_fieldcat1-key = key.
st_fieldcat1-col_pos = pos.
st_fieldcat1-outputlen = length.
st_fieldcat1-icon = icon.
st_fieldcat1-do_sum = hot.
APPEND st_fieldcat1 TO tbl_fieldcat1.
CLEAR st_fieldcat1.
ENDFORM. " WRITE_FIELDCAT
*& Form GRID_DISPLAY1
text
--> p1 text
<-- p2 text
FORM grid_display1 .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = tbl_fieldcat1
is_layout = st_layout1
it_events = i_events[]
TABLES
t_outtab = i_final2
EXCEPTIONS
program_error = 1
OTHERS = 2.
REFRESH i_final2.
ENDFORM. " GRID_DISPLAY1
*& Form LAYOUT_BUILD1
text
FORM layout_build1 .
st_layout1-zebra = 'X'.
st_layout1-no_vline = ''.
st_layout1-colwidth_optimize = 'X'.
st_layout1-detail_popup = 'X'.
st_layout1-detail_initial_lines = 'X'.
st_layout1-detail_titlebar = 'Detail Title Bar'.
ENDFORM. " layout_build
*& Form salesdocument_itemstatus
text
--> p1 text
<-- p2 text
FORM salesdocument_itemstatus .
CLEAR i_vbup.
REFRESH i_vbup.
v_indexes = 10.
v_text = 'Processing... Sales Doc Item'.
PERFORM progress_ind.
IF NOT i_likp_lips[] IS INITIAL.
SELECT vbeln
posnr
lfsta
wbsta
FROM vbup INTO TABLE i_vbup
FOR ALL ENTRIES IN i_likp_lips
WHERE vbeln = i_likp_lips-vbeln
AND posnr = i_likp_lips-posnr
AND wbsta IN (c_wbstaa, c_wbstab, c_wbstac).
ENDIF.
SORT i_vbup BY vbeln posnr.
ENDFORM. " salesdocument_itemstatus
*& Form delivery_header_item
text
--> p1 text
<-- p2 text
FORM delivery_header_item .
CLEAR i_likp_lips.
REFRESH i_likp_lips.
v_indexes = 1.
v_text = 'Processing.. Delivery'.
PERFORM progress_ind.
selected data from delivery header and delivery iten based on loading date and plant
based on document types LF LR LO ZLO.
SELECT a~vbeln
a~vkorg
a~lfart
a~lddat
a~vbtyp
a~kunnr
a~anzpk
a~netwr
a~werks
b~posnr
b~matnr
b~matkl
b~werks
b~lfimg
b~vrkme
b~vgbel
b~vtweg
b~spart
b~netwr
INTO TABLE i_likp_lips
FROM likp AS a INNER JOIN lips AS b
ON avbeln = bvbeln
WHERE a~lfart IN s_lfat
AND a~lddat IN s_lddat
AND b~werks IN s_werks.
%_HINTS ORACLE 'index("Z05" "Z05LFART" "Z05LDDAT")'.
DELETE i_likp_lips WHERE lfart NOT IN s_lfat
OR lddat NOT IN s_lddat
OR lipswerks NOT IN s_werks.
SORT i_likp_lips BY vbeln posnr.
ENDFORM. " delivery_header_item
*& Form SalesDocument_ScheduleLineData
text
--> p1 text
<-- p2 text
FORM salesdocument_schedulelinedata .
CLEAR i_vbep.
REFRESH i_vbep.
v_indexes = 15.
v_text = 'Processing.. Sales Doc Sch Line Data'.
PERFORM progress_ind.
*SELECTED from table vbep based on loading date, this selection will fetch all
*the open sales orders.
SELECT vbeln
posnr
wmeng
lddat
FROM vbep
INTO TABLE i_vbep
WHERE vbeln in s_vbeln
and posnr in s_posnr
and lddat IN s_lddat.
DELETE I_VBEP WHERE LDDAT NOT IN S_LDDAT.
SORT i_vbep BY vbeln posnr.
ENDFORM. " SalesDocument_ScheduleLineData
*& Form salesdocument_itemstatus_lfgsa
text
--> p1 text
<-- p2 text
FORM salesdocument_itemstatus_lfgsa .
CLEAR i_vbup1.
REFRESH i_vbup1.
v_indexes = 20.
v_text = 'Processing... Sales Doc Item'.
PERFORM progress_ind.
selected from vbup for all entries of vbep based on respective salesorder and item number
and lfgsa status equals to A AND B.
IF NOT i_vbep[] IS INITIAL.
SELECT vbeln posnr lfgsa wbsta FROM vbup INTO TABLE i_vbup1 FOR ALL ENTRIES IN i_vbep
WHERE vbeln = i_vbep-vbeln
AND posnr = i_vbep-posnr
AND LFGSA IN (C_LFGSAA, C_LFGSAB).
%_HINTS ORACLE 'index("ZS1" "ZS1~LFGSA")'.
ENDIF.
DELETE i_vbup1 WHERE lfgsa <> c_lfgsaa AND lfgsa <> c_lfgsab.
SORT i_vbup1 BY vbeln posnr.
ENDFORM. " salesdocument_itemstatus_lfgsa
*& Form billingdoc_header_item
text
--> p1 text
<-- p2 text
FORM billingdoc_header_item .
CLEAR i_vbrk_vbrp.
REFRESH i_vbrk_vbrp.
v_indexes = 40.
v_text = 'Processing... Billing'.
PERFORM progress_ind.
*SELECTED INVOICE DETAILS FROM VBRK AND VBRP .
IF NOT I_VBFA1[] IS INITIAL.
SELECT AVBELN AFKART AFKTYP AVBTYP AWAERK ANETWR
BPOSNR BFKIMG BVRKME BUMVKZ BUMVKN BNETWR
INTO TABLE I_VBRK_VBRP FROM VBRK AS A INNER
JOIN VBRP AS B ON AVBELN = BVBELN FOR ALL ENTRIES IN I_VBFA1
WHERE A~VBELN = I_VBFA1-VBELN AND
B~POSNR = I_VBFA1-POSNN.
ENDIF.
SORT I_VBRK_VBRP BY VBELN POSNR VRKME.
ENDFORM. " billingdoc_header_item
*& Form sales_district
text
--> p1 text
<-- p2 text
FORM sales_district .
CLEAR i_t171t.
REFRESH i_t171t.
v_indexes = 22.
v_text = 'Processing... Sales District'.
PERFORM progress_ind.
*TO SELECT THE SALES DISTRICT FROM I171T.
SELECT * FROM t171t INTO TABLE i_t171t WHERE spras = 'EN'.
ENDFORM. " sales_district
*& Form Material_Descriptions
text
--> p1 text
<-- p2 text
FORM material_descriptions .
DATA : i_fin TYPE STANDARD TABLE OF ty_final WITH HEADER LINE.
CLEAR i_makt.
REFRESH i_makt.
PERFORM progress_ind.
i_fin[] = i_final[].
SORT i_fin BY matnr.
DELETE ADJACENT DUPLICATES FROM i_fin COMPARING matnr.
THIS STATEMENT IS USED TO SELECT MATERIAL DESCRIPTIONS BASED ON THE MATERIAL NUMBERS
PRESENT IN THE FINAL INTERNAL TABLE.
IF NOT i_fin[] IS INITIAL.
SELECT matnr maktx FROM makt INTO TABLE i_makt FOR ALL ENTRIES IN i_fin WHERE spras = 'EN'
AND matnr = i_fin-matnr.
ENDIF.
SORT i_makt BY matnr.
ENDFORM. " Material_Descriptions
*& Form delivery_salesdocument_wbsta
text
--> p1 text
<-- p2 text
This routine will helps us to combine delivery data and sales document item status
FORM delivery_salesdocument_wbsta .
CLEAR i_output.
REFRESH i_output.
v_indexes = 30.
v_text = 'Processing... Open Delivery'.
PERFORM progress_ind.
LOOP AT i_likp_lips INTO w_likp_lips.
READ TABLE i_vbup INTO w_vbup WITH KEY vbeln = w_likp_lips-vbeln
posnr = w_likp_lips-posnr BINARY SEARCH.
IF sy-subrc = 0.
MOVE-CORRESPONDING w_likp_lips TO w_output.
MOVE : w_vbup-lfsta TO w_output-lfsta.
MOVE : w_vbup-wbsta TO w_output-wbsta.
APPEND w_output TO i_output.
ENDIF.
ENDLOOP.
SORT i_output BY vbeln posnr.
ENDFORM. " delivery_salesdocument_wbsta
*& Form salesdocumentflow
text
--> p1 text
<-- p2 text
FORM salesdocumentflow .
CLEAR i_vbfa.
REFRESH i_vbfa.
CLEAR i_vbfa1.
REFRESH i_vbfa1.
v_indexes = 35.
v_text = 'Processing... Sales Doc Flow'.
PERFORM progress_ind.
THIS STATEMENT IS USED TO SELECT THE ORDER NUMBERS BASED ON DELIVERY NUMBERS
FROM SALES DOCUMENT FLOW TABLE.
IF NOT I_OUTPUT[] IS INITIAL.
SELECT VBELV POSNV VBELN POSNN VBTYP_N RFMNG VBTYP_V INTO TABLE I_VBFA FROM VBFA
FOR ALL ENTRIES IN I_OUTPUT WHERE VBELN = I_OUTPUT-VBELN
AND POSNN = I_OUTPUT-POSNR
AND VBTYP_N IN (C_VBTYP_NJ, C_VBTYP_NT).
SELECT VBELV POSNV VBELN POSNN RFMNG RFWRT FROM VBFA INTO TABLE I_VBFA1 FOR ALL ENTRIES IN
I_OUTPUT WHERE VBELV = I_OUTPUT-VBELN
AND POSNV = I_OUTPUT-POSNR
AND VBTYP_N = C_VBTYP_NM.
ENDIF.
SORT I_VBFA BY VBELN POSNN.
SORT I_VBFA1 BY VBELN POSNN.
ENDFORM. " salesdocumentflow
*& Form salesdoc_shdlnitem_itemstatus
text
--> p1 text
<-- p2 text
FORM salesdoc_shdlnitem_itemstatus .
CLEAR i_vbep_vbup.
REFRESH i_vbep_vbup.
v_indexes = 70.
v_text = 'Processing... Order'.
PERFORM progress_ind.
*TO COMBINE THE VBUP DATA WITH STATUS OF LFGSA EQ TO A AND B WITH
*DATA OF VBEP , WHERE WE GET DATA OF VBEP BASED ON LOADING DATE
IF NOT i_vbup1 IS INITIAL.
LOOP AT i_vbup1 INTO w_vbup1.
READ TABLE i_vbep INTO w_vbep WITH KEY vbeln = w_vbup1-vbeln
posnr = w_vbup1-posnr BINARY SEARCH.
IF sy-subrc = 0.
MOVE : w_vbep-vbeln TO w_vbep_vbup-vbeln,
w_vbep-posnr TO w_vbep_vbup-posnr,
w_vbep-wmeng TO w_vbep_vbup-wmeng,
w_vbep-lddat TO w_vbep_vbup-lddat,
w_vbup1-lfgsa TO w_vbep_vbup-lfgsa,
w_vbup1-wbsta TO w_vbep_vbup-wbsta.
APPEND w_vbep_vbup TO i_vbep_vbup.
ENDIF.
ENDLOOP.
ENDIF.
SORT i_vbep_vbup BY vbeln posnr.
DELETE ADJACENT DUPLICATES FROM i_vbep_vbup COMPARING vbeln posnr.
ENDFORM. " salesdoc_shdlnitem_itemstatus
*& Form delivery_output
text
--> p1 text
<-- p2 text
*This routine will give us all the deliveries which are open or closed with
*there respective delivered quantity and amount etc.
FORM delivery_output .
CLEAR i_final.
REFRESH i_final.
v_indexes = 65.
v_text = 'Processing... Deliver'.
PERFORM progress_ind.
IF NOT i_output[] IS INITIAL.
LOOP AT i_output INTO w_output.
REFRESH i_vbfa_tab.
IF W_OUTPUT-LFART = C_LFARTLF OR W_OUTPUT-LFART = C_LFARTLO OR W_OUTPUT-LFART = C_LFARTZLO.
READ TABLE I_VBFA INTO W_VBFA WITH KEY VBELN = W_OUTPUT-VBELN
POSNN = W_OUTPUT-POSNR BINARY SEARCH .
ELSEIF W_OUTPUT-LFART = C_LFARTLR.
IF W_OUTPUT-VBTYP = 'J'.
READ TABLE I_VBFA INTO W_VBFA WITH KEY VBELN = W_OUTPUT-VBELN
POSNN = W_OUTPUT-POSNR BINARY SEARCH.
ELSE.
READ TABLE I_VBFA INTO W_VBFA WITH KEY VBELN = W_OUTPUT-VBELN
POSNN = W_OUTPUT-POSNR
-
Regarding top of page, end of page in alv's
hi
how can i get the data in page wise in alv's?
like in normal reporting we use events like top of page and end of page...
but how in alv's
byecheck this one
*& Report ZALV_FIELD_GRID1
REPORT ZALV_FIELD_GRID1
NO STANDARD PAGE HEADING.
TABLES MARA.
type-pools :slis.
TYPES : BEGIN OF TMARA ,
MATNR LIKE MARA-MATNR,
MEINS LIKE MARA-MEINS,
ERSDA LIKE MARA-ERSDA,
color(4) type c,
SEL type c,
LIGHT TYPE C,
END OF TMARA.
TYPES: BEGIN OF TMAKT,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
MAKTG LIKE MAKT-MAKTG,
SEL TYPE C,
COLOR(4),
END OF TMAKT.
DATA: ITAB TYPE TMARA OCCURS 0 WITH HEADER LINE,
ITAB1 TYPE TMAKT OCCURS 0 WITH HEADER LINE,
wa_fieldcat type slis_fieldcat_alv,
fieldcat type slis_fieldcat_alv occurs 0,
i_layout type slis_layout_alv,
WA_LISTHEADER TYPE SLIS_LISTHEADER,
i_LISTHEADER TYPE SLIS_LISTHEADER OCCURS 0,
V_EVENTS TYPE SLIS_T_EVENT ,
WA_EVENT TYPE SLIS_ALV_EVENT,
I_TITLE_MARA TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED',
I_TITLE_MAKT TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED',
SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE,
PRINT_CONT type slis_print_alv.
SELECTION SCREE
selection-screen begin of block screen1 with frame title TEXT-001.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN COMMENT /32(35) COMM1.
SELECTION-SCREEN ULINE /27(35).
SELECTION-SCREEN SKIP.
SELECT-OPTIONS MATNR FOR MARA-MATNR.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN COMMENT /30(50) COMM2.
SELECTION-SCREEN ULINE /27(40).
SELECTION-SCREEN SKIP.
SELECT-OPTIONS ERSDA FOR MARA-ERSDA.
SELECTION-SCREEN SKIP.
selection-screen end of block screen1.
INITIALIZATION
INITIALIZATION.
MATNR-low = '23'.
MATNR-high = '1000'.
MATNR-option = 'BT'.
MATNR-sign = 'I'.
APPEND MATNR.
ERSDA-low = '20030124'.
ERSDA-high = '20050302' .
APPEND ERSDA.
PERFORM FILLFIELD.
PERFORM FILLLAYOUT.
PERFORM build_print_params.
PERFORM FILL_SORT.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
SELECTION-SCREEN OUTPUT
AT SELECTION-SCREEN OUTPUT.
comm1 ='SELECT MATERIAL NUMBER RANGE'.
comm2 ='SELECT MATERIAL CREATION DATE'.
START-OF-SELECTION
START-OF-SELECTION.
PERFORM READDATA.
PERFORM POPDATA.
*& Form READDATA
text
FORM READDATA .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR-LOW
IMPORTING
OUTPUT = MATNR-LOW.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR-HIGH
IMPORTING
OUTPUT = MATNR-HIGH.
SELECT MATNR
ERSDA
MEINS
FROM MARA
INTO CORRESPONDING FIELDS OF
TABLE ITAB
WHERE MATNR IN MATNR AND ERSDA IN ERSDA.
LOOP AT ITAB.
data id_color type i VALUE 1.
data id_colors(2) type c.
IF ITAB-MATNR < '000000000000000100'.
ITAB-LIGHT = '1'.
ELSEIF ITAB-MATNR < '000000000000000150' AND ITAB-MATNR >
'000000000000000100' .
ITAB-LIGHT = '2'.
ELSE.
ITAB-LIGHT = '3'.
ENDIF.
id_color = id_color + 1.
if id_color > 7.
id_color = 1.
endif.
id_colors = id_color.
concatenate 'C' id_colors '10' into itab-color.
modify itab.
CLEAR ITAB.
endloop.
ENDFORM. " READDATA
Form FILLFIELD
FORM FILLFIELD .
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-KEY = 'X'.
WA_FIELDCAT-COL_POS = '1'.
WA_FIELDCAT-outputlen = 20.
WA_FIELDCAT-HOTSPOT = 'X'.
wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.
*WA_FIELDCAT-EMPHASIZE = 'C210'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-COL_POS = '2'.
*WA_FIELDCAT-EMPHASIZE = 'C510'.
WA_FIELDCAT-outputlen = 10.
wa_fieldcat-seltext_m = 'UNIT'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
WA_FIELDCAT-FIELDNAME = 'ERSDA'.
WA_FIELDCAT-COL_POS = '3'.
WA_FIELDCAT-outputlen = 15.
*WA_FIELDCAT-EDIT_MASK = 'DD.MM.YYYY'.
*WA_FIELDCAT-EMPHASIZE = 'C710'.
wa_fieldcat-seltext_m = 'CREAT DATE'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
ENDFORM. "FILLFIELD
Setup print parameters
form build_print_params.
PRINT_CONT-reserve_lines = '3'. "Lines reserved for footer
PRINT_CONT-no_coverpage = 'X'.
endform. " BUILD_PRINT_PARAMS
Form POPDATA
FORM POPDATA .
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-COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOPPAGE' -
>use this one
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_MARA
I_GRID_SETTINGS =
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = SORT[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = V_EVENTS -
> pass u r events here end of page
IT_EVENT_EXIT =
IS_PRINT = PRINT_CONT
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM. " POPDATA
Form TOPPAGE
FORM TOPPAGE.
REFRESH I_LISTHEADER.
DATA: ld_lines type i,
ld_linesc(10) type c,
I_DATE(10) TYPE C,
I_INFO LIKE WA_LISTHEADER-INFO.
WA_LISTHEADER-TYP = 'H'.
WA_LISTHEADER-INFO = 'MATERIAL DETAIL'.
APPEND WA_LISTHEADER TO I_LISTHEADER.
CLEAR WA_LISTHEADER.
WA_LISTHEADER-TYP = 'S'.
WA_LISTHEADER-KEY = 'DATE :'.
CONCATENATE SY-DATUM+6(2) '.'
SY-DATUM+4(2) '.'
SY-DATUM(4) INTO I_DATE.
WA_LISTHEADER-INFO = I_datE.
APPEND WA_LISTHEADER TO I_LISTHEADER.
CLEAR WA_LISTHEADER.
describe table ITAB lines ld_lines.
ld_linesc = ld_lines.
concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc
into I_INFO separated by space.
WA_LISTHEADER-TYP = 'A'.
WA_LISTHEADER-INFO = I_INFO.
append WA_LISTHEADER to I_LISTHEADER.
clear: WA_LISTHEADER , I_INFO.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_LISTHEADER
I_LOGO = 'ENJOYSAP_LOGO'.
ENDFORM. "TOPPAGE
Form FILLLAYOUT
FORM FILLLAYOUT .
i_layout-zebra = 'X'.
i_layout-info_fieldname = 'COLOR'.
i_layout-box_fieldname = 'SEL'.
I_LAYOUT-lights_fieldname = 'LIGHT'.
I_LAYOUT-EDIT ='X'.
I_LAYOUT-colwidth_optimize = 'X'.
I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.
I_LAYOUT-no_totalline = 'X'.
ENDFORM. "FILLLAYOUT
Form FILL_SORT
FORM FILL_SORT .
SORT-DOWN = 'X'.
SORT-SPOS = 1.
SORT-FIELDNAME = 'MATNR'.
SORT-tabname = 'MARA'.
APPEND SORT.
ENDFORM. " FILL_SORT
Form EVENT_CALL
FORM EVENT_CALL .
DATA: I_EVENT LIKE V_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS.
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. " EVENT_CALL
Form POPULATE_EVENT
FORM POPULATE_EVENT .----
> use events ........
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
READ TABLE V_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
INTO WA_EVENT.
IF SY-SUBRC = 0.
move 'END_OF_PAGE' to WA_EVENT-FORM.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
endif.
ENDIF.
ENDFORM. "POPULATE_EVENT
FORM END_OF_PAGE. -
> end of page
write: sy-uline(50).
skip.
write:/40 'Page:', sy-pagno .
ENDFORM.
*& Form USER_COMMAND
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
CASE RS_SELFIELD-FIELDNAME.
when 'MATNR'.
read table itab with key matnr = RS_SELFIELD-VALUE.
if sy-subrc = 0.
PERFORM DATA_RETRIEVAL_MAKT USING RS_SELFIELD-VALUE.
PERFORM BUILD_FIELDCATLOG_MAKT.
PERFORM FILLLAYOUT_MAKT.
PERFORM DISPLAY_ALV_MAKT.
CLEAR RS_SELFIELD.
ENDIF.
ENDCASE.
ENDCASE.
ENDFORM. "user_command
Form DATA_RETRIEVAL_MAKT
FORM DATA_RETRIEVAL_MAKT USING TMATNR .
SELECT MATNR
MAKTX
MAKTG
UP TO 100 ROWS
FROM MAKT
INTO TABLE ITAB1
WHERE SPRAS = 'EN' AND MATNR = TMATNR.
LOOP AT ITAB1.
data id_color type i VALUE 1.
data id_colors(2) type c.
id_color = id_color + 1.
if id_color > 7.
id_color = 1.
endif.
id_colors = id_color.
concatenate 'C' id_colors '10' into itab1-color.
modify itab1.
CLEAR ITAB1.
ENDLOOP.
ENDFORM. "DATA_RETRIEVAL_MAKT
Form FILLLAYOUT_MAKT
FORM FILLLAYOUT_MAKT .
CLEAR I_LAYOUT.
i_layout-zebra = 'X'.
i_layout-info_fieldname = 'COLOR'.
i_layout-box_fieldname = 'SEL'.
I_LAYOUT-EDIT ='X'.
I_LAYOUT-colwidth_optimize = 'X'.
I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.
ENDFORM. " LAYOUT_MAKT
Form BUILD_FIELDCATLOG_MAKT
FORM BUILD_FIELDCATLOG_MAKT .
REFRESH FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-KEY = 'X'.
WA_FIELDCAT-COL_POS = '1'.
*WA_FIELDCAT-EDIT_MASK = 'DD.MM.YYYY'.
WA_FIELDCAT-EMPHASIZE = 'C510'.
wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
WA_FIELDCAT-FIELDNAME = 'MAKTX'.
WA_FIELDCAT-COL_POS = '2'.
WA_FIELDCAT-EMPHASIZE = 'C710'.
wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
WA_FIELDCAT-FIELDNAME = 'MAKTG'.
WA_FIELDCAT-COL_POS = '3'.
WA_FIELDCAT-EMPHASIZE = 'C210'.
wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
APPEND WA_FIELDCAT TO FIELDCAT.
clear wa_fieldcat.
ENDFORM. " BUILD_FIELDCATLOG_MAKT
Form DISPLAY_ALV_MAKT
FORM TOP-OF-PAGE.
REFRESH I_LISTHEADER.
DATA: ld_lines type i,
ld_linesc(10) type c,
I_DATE(10) TYPE C,
I_INFO LIKE WA_LISTHEADER-INFO.
WA_LISTHEADER-TYP = 'H'.
WA_LISTHEADER-INFO = 'MATERIAL DESCRIPTION FOR SELECTED NUMBER'.
APPEND WA_LISTHEADER TO I_LISTHEADER.
CLEAR WA_LISTHEADER.
WA_LISTHEADER-TYP = 'S'.
WA_LISTHEADER-KEY = 'DATE :'.
CONCATENATE SY-DATUM+6(2) '.'
SY-DATUM+4(2) '.'
SY-DATUM(4) INTO I_DATE.
WA_LISTHEADER-INFO = I_datE.
APPEND WA_LISTHEADER TO I_LISTHEADER.
CLEAR WA_LISTHEADER.
describe table ITAB1 lines ld_lines.
ld_linesc = ld_lines.
concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc
into I_INFO separated by space.
WA_LISTHEADER-TYP = 'A'.
WA_LISTHEADER-INFO = I_INFO.
append WA_LISTHEADER to I_LISTHEADER.
clear: WA_LISTHEADER , I_INFO.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_LISTHEADER
I_LOGO = 'ENJOYSAP_LOGO'.
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM. "TOP-OF-PAGE
*& Form DISPLAY_ALV_MAKT
text
FORM DISPLAY_ALV_MAKT .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
I_GRID_TITLE = I_TITLE_MAKT
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = fieldcat
TABLES
T_OUTTAB = ITAB1
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. " DISPLAY_ALV_MAKT
reward points to all helpful answers
kiran.M -
Hi experts
plz help
i have createed an alv using slis method
in the output there must come a header
in this header i ill have to show som details
like on the left side of the header i want to show the details of the user and on the right side i want to show he data of vendor .
i am able to get the data in the left side but i am not able to show the data of vendor on the right side
the data of vendor is by default coming on left side only just below the details of user but i want to show those details on the right side of the header .
plz tell me how to do it .
thanx in advance.Hi Anit,
I am attaching here the whole Code. It is somewhat big code so go through it thoroughly.If you still face problem reply this thread otherwise <b>REWARD POINT</b>.
REPORT test
MESSAGE-ID zzrefn01
NO STANDARD PAGE HEADING
*** Portrait: 93x80
LINE-SIZE 150
LINE-COUNT 80.
*** Landscape: 132x65
LINE-SIZE 132
LINE-COUNT 65.
INCLUDES **
INCLUDE zbc_i00. "Customer Standard Include
INCLUDE <icon>. "For Button on the ALV Tool Bar
INCLUDE yyef_check_isp_top.
INCLUDE yyef_check_isp_f01.
INCLUDE yyef_check_isp_o01.
INCLUDE yyef_check_isp_i01.
CLASS zcl_event_handler IMPLEMENTATION
CLASS zcl_event_handler IMPLEMENTATION.
Top-of-page event
METHOD top_of_page.
PERFORM event_top_of_page
USING z_dyndoc_id.
ENDMETHOD. "METHOD top_of_page
Change Status Button
METHOD handle_toolbar.
IF NOT pa_prodr IS INITIAL.
DATA: lz_toolbar TYPE stb_button.
CLEAR lz_toolbar.
MOVE 'CHANGE_STATUS' TO lz_toolbar-function.
MOVE text-001 TO lz_toolbar-text.
APPEND lz_toolbar TO e_object->mt_toolbar.
ENDIF. "IF NOT pa_prodr IS INITIAL
ENDMETHOD. "METHOD handle_toolbar
Handle User Command
METHOD handle_user_command.
CASE e_ucomm.
WHEN 'CHANGE_STATUS'.
LOOP AT it_output
INTO wa_output.
IF wa_output-chk_box EQ kc_x.
z_flag = 1.
EXIT.
ENDIF. "IF wa_output-chk_box EQ kc_x
ENDLOOP. "LOOP AT it_output INTO wa_output
IF z_flag EQ 1.
PERFORM display_selected_data.
ELSE.
MESSAGE i001(zzrefn01)
WITH text-023.
ENDIF. "IF z_flag EQ 1
ENDCASE. "CASE e_ucomm
ENDMETHOD. "METHOD handle_user_command
ENDCLASS. "zcl_event_handler IMPLEMENTATION
Processing of selection screen **
First time initialization *
Get Default variant *
INITIALIZATION.
z_repid = sy-repid.
PERFORM variant_init.
zx_variant = z_variant.
CALL FUNCTION 'LVC_VARIANT_DEFAULT_GET'
EXPORTING
i_save = kc_u
CHANGING
cs_variant = zx_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc EQ 0.
pa_vari = zx_variant-variant.
ELSE.
MESSAGE i001(zzrefn01)
WITH text-021.
ENDIF. "IF sy-subrc EQ 0
*** First time initialization in online mode except calls with variant
*** (is not processed on return from prog to selection screen)
pa_xyz = ....
so_xyz.....
SET PF-STATUS 'STAT1000'.
*** An example for select options restrictions is available
*** in TT1/YYKA_EXPORT_START_HOST (remove comment)
Selection screen PBO *
Comment........ *
AT SELECTION-SCREEN OUTPUT.
*** Init selection screen, also on variants
*** (only for online reports)
IF NOT zn_init_seldynp IS INITIAL
AND sy-batch IS INITIAL "Not on batch calls (e.g. AutoSys)
AND sy-slset IS INITIAL. "Not on calls with variant
IF NOT pa_prodr IS INITIAL.
CLEAR: pa_prodr.
MESSAGE w999(zbcc). "Flag prod.run reseted
ENDIF.
CLEAR: pa_start.
ENDIF.
CLEAR: zn_init_seldynp.
*** Process dynpro fields
LOOP AT SCREEN.
*** --> Read-Only fields
IF screen-group1 EQ 'RDO'
AND screen-input NE '0'
AND screen-group3 NE 'VPU'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Selection screen PAI *
Comment........ *
*AT SELECTION-SCREEN ON so_xyz.
AT SELECTION-SCREEN.
PERFORM pai_of_selection_screen.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_vari.
PERFORM f4_for_variant.
PERFORM btci_at_sel_screen. "Call BTCI checks (optional)
Program **
Main routine *
START-OF-SELECTION.
PERFORM fetch_data.
PERFORM build_data.
PERFORM prepare_field_catalog
CHANGING it_fieldcat.
CALL SCREEN 100.
End routine *
END-OF-SELECTION.
Interactive Reporting **
Comment........ *
AT LINE-SELECTION.
*** Good example in TT1/YIIHART (remove comment)
Comment........ *
AT USER-COMMAND.
PERFORM handle_user_command.
Comment........ *
AT PFN.
iNCLUDE YYEF_CHECK_ISP_F01
*& Include YYEF_CHECK_ISP_F01 *
*& Form pai_of_selection_screen
Check Variant Exist or not
FORM pai_of_selection_screen .
IF NOT pa_vari IS INITIAL.
MOVE z_variant TO zx_variant.
MOVE pa_vari TO zx_variant-variant.
CALL FUNCTION 'LVC_VARIANT_EXISTENCE_CHECK'
EXPORTING
i_save = kc_u
CHANGING
cs_variant = zx_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc EQ 2.
MESSAGE i001(zzrefn01)
WITH text-024.
ENDIF. "IF sy-subrc EQ 2
z_variant = zx_variant.
ELSE.
PERFORM variant_init.
ENDIF. "IF NOT pa_vari IS INITIAL
ENDFORM. "pai_of_selection_screen
*& Form variant_init
Initialization of Variant
FORM variant_init .
CLEAR z_variant.
z_variant-report = z_repid.
ENDFORM. " variant_init
*& Form f4_for_variant
F4 Help for Layout
FORM f4_for_variant .
CALL FUNCTION 'LVC_VARIANT_F4'
EXPORTING
is_variant = z_variant
i_save = kc_u
IMPORTING
e_exit = z_exit
es_variant = zx_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc EQ 1.
MESSAGE i001(zzrefn01)
WITH text-022.
ELSE.
IF z_exit = space.
pa_vari = zx_variant-variant.
ENDIF. "IF z_exit = space
ENDIF. "IF sy-subrc EQ 1
ENDFORM. "f4_for_variant
*& Form fetch_data
Fetch data from DB tables.
FORM fetch_data .
SELECT *
FROM yyeft1200
INTO TABLE it_yyeft1200
WHERE id_rech IN so_idrec
AND fnumkred IN so_fnumk
AND status IN so_stat
AND erdat IN so_erdat
ORDER BY PRIMARY KEY.
IF sy-subrc EQ 0.
SELECT *
FROM yyeft1201
INTO TABLE it_yyeft1201
FOR ALL ENTRIES IN it_yyeft1200
WHERE id_rech EQ it_yyeft1200-id_rech
AND artnr_bp IN so_artnr
ORDER BY PRIMARY KEY.
IF sy-subrc EQ 0.
SELECT *
FROM yyeft1008
INTO TABLE it_yyeft1008
FOR ALL ENTRIES IN it_yyeft1201
WHERE bp_refnr EQ it_yyeft1201-bprefnr.
IF sy-subrc EQ 0.
SORT it_yyeft1008[] BY bp_refnr.
ENDIF. "IF sy-subrc EQ 0.
ENDIF. "IF sy-subrc EQ 0.
ELSE.
zn_cancel = kc_x.
ENDIF. "IF sy-subrc EQ 0.
ENDFORM. " fetch_data
*& Form build_data
Gather the data from all the internal tables into one.
FORM build_data .
LOOP AT it_yyeft1200
INTO wa_yyeft1200.
CLEAR wa_output.
wa_output-id_rech = wa_yyeft1200-id_rech.
wa_output-fnumkred = wa_yyeft1200-fnumkred.
wa_output-status = wa_yyeft1200-status.
wa_output-erdat = wa_yyeft1200-erdat.
wa_output-bukrs = wa_yyeft1200-bukrs.
wa_output-belnr = wa_yyeft1200-belnr.
wa_output-gjahr = wa_yyeft1200-gjahr.
IF wa_yyeft1200-status GE kc_status10
AND wa_yyeft1200-belnr IS INITIAL.
wa_output-com_delfnd = 'FI Doc NOT found'(t03).
ENDIF.
IF wa_yyeft1200-status LT kc_status10
AND NOT wa_yyeft1200-belnr IS INITIAL
AND wa_output-com_delfnd IS INITIAL
AND NOT pa_det IS INITIAL.
wa_output-com_delfnd = 'FI Doc should be empty'(t01).
ENDIF.
LOOP AT it_yyeft1201
INTO wa_yyeft1201
WHERE id_rech EQ wa_yyeft1200-id_rech.
wa_output-bprefnr = wa_yyeft1201-bprefnr.
wa_output-lfdat = wa_yyeft1201-lfdat.
wa_output-artnr_bp = wa_yyeft1201-artnr_bp.
READ TABLE it_yyeft1008
WITH KEY bp_refnr = wa_yyeft1201-bprefnr
BINARY SEARCH
TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
LOOP AT it_yyeft1008
INTO wa_yyeft1008
FROM sy-tabix.
IF wa_yyeft1008-bp_refnr NE wa_yyeft1201-bprefnr.
EXIT.
ENDIF.
wa_output-id_anlief = wa_yyeft1008-id_anlief.
IF NOT pa_det IS INITIAL
OR NOT wa_output-com_delfnd IS INITIAL.
APPEND wa_output TO it_output.
ENDIF.
ENDLOOP. "LOOP AT it_yyeft1008
ELSE.
CLEAR wa_output-id_anlief.
wa_output-com_delfnd = 'Deliv. NOT found'(t06).
APPEND wa_output TO it_output.
ENDIF.
ENDLOOP. "LOOP AT it_yyeft1201
IF sy-subrc NE 0.
wa_output-com_delfnd = 'No Detail records in YYEFT1201'(e01).
APPEND wa_output TO it_output.
ENDIF. "IF sy-subrc NE 0.
ENDLOOP. "LOOP AT it_yyeft1200
Checkbox Editable for Production Run
IF pa_prodr IS INITIAL.
LOOP AT it_output
INTO wa_output.
zs_style-fieldname = 'CHK_BOX'.
zs_style-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT zs_style INTO TABLE wa_output-celltab.
MODIFY it_output FROM wa_output
TRANSPORTING celltab.
ENDLOOP. "LOOP AT it_output INTO wa_output.
ENDIF. "IF pa_prodr IS INITIAL
LOOP AT it_output
INTO wa_output.
IF wa_output-status GE kc_status10
AND wa_output-belnr IS INITIAL
AND NOT pa_prodr IS INITIAL.
zs_style-fieldname = 'CHK_BOX'.
zs_style-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT zs_style INTO TABLE wa_output-celltab.
MODIFY it_output FROM wa_output
TRANSPORTING celltab.
ENDIF. "IF wa_output-status GE kc_status10
ENDLOOP. "LOOP AT it_output INTO wa_output
ENDFORM. "build_data
*& Form prepare_field_catalog
Field Catalog Preparation
<--PIT_FIELDCAT Field catalog
FORM prepare_field_catalog
CHANGING pit_fieldcat TYPE lvc_t_fcat.
DATA: ls_fcat TYPE lvc_s_fcat.
IF it_output1 IS INITIAL.
Check Box
CLEAR ls_fcat.
ls_fcat-fieldname = 'CHK_BOX'.
ls_fcat-datatype = 'CHAR'.
ls_fcat-intlen = '1'.
ls_fcat-edit = kc_x.
ls_fcat-coltext = text-014.
ls_fcat-checkbox = kc_x.
ls_fcat-outputlen = '5'.
APPEND ls_fcat TO pit_fieldcat.
ENDIF. "IF it_output1 IS INITIAL
ID RECH
CLEAR ls_fcat.
ls_fcat-fieldname = 'ID_RECH'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-002.
APPEND ls_fcat TO pit_fieldcat.
BP Reference
CLEAR ls_fcat.
ls_fcat-fieldname = 'BPREFNR'.
ls_fcat-outputlen = '15'.
ls_fcat-coltext = text-003.
APPEND ls_fcat TO pit_fieldcat.
Delivery date
CLEAR ls_fcat.
ls_fcat-fieldname = 'LFDAT'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-004.
APPEND ls_fcat TO pit_fieldcat.
Article
CLEAR ls_fcat.
ls_fcat-fieldname = 'ARTNR_BP'.
ls_fcat-outputlen = '18'.
ls_fcat-coltext = text-005.
APPEND ls_fcat TO pit_fieldcat.
Account Payable invoice
CLEAR ls_fcat.
ls_fcat-fieldname = 'FNUMKRED'.
ls_fcat-outputlen = '16'.
ls_fcat-coltext = text-006.
APPEND ls_fcat TO pit_fieldcat.
Status
CLEAR ls_fcat.
ls_fcat-fieldname = 'STATUS'.
ls_fcat-outputlen = '2'.
ls_fcat-coltext = text-007.
APPEND ls_fcat TO pit_fieldcat.
Create date
CLEAR ls_fcat.
ls_fcat-fieldname = 'ERDAT'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-008.
APPEND ls_fcat TO pit_fieldcat.
Comment
CLEAR ls_fcat.
ls_fcat-fieldname = 'COM_DELFND'.
ls_fcat-outputlen = '25'.
ls_fcat-coltext = text-009.
APPEND ls_fcat TO pit_fieldcat.
Delivery ID
CLEAR ls_fcat.
ls_fcat-fieldname = 'ID_ANLIEF'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-010.
APPEND ls_fcat TO pit_fieldcat.
Company Code
CLEAR ls_fcat.
ls_fcat-fieldname = 'BUKRS'.
ls_fcat-outputlen = '4'.
ls_fcat-coltext = text-011.
APPEND ls_fcat TO pit_fieldcat.
Accounting Document Number
CLEAR ls_fcat.
ls_fcat-fieldname = 'BELNR'.
ls_fcat-outputlen = '10'.
ls_fcat-coltext = text-012.
APPEND ls_fcat TO pit_fieldcat.
Financial Year
CLEAR ls_fcat.
ls_fcat-fieldname = 'GJAHR'.
ls_fcat-outputlen = '4'.
ls_fcat-coltext = text-013.
APPEND ls_fcat TO pit_fieldcat.
ENDFORM. " prepare_field_catalog
*& Form EVENT_TOP_OF_PAGE
TOP-OF-PAGE Preparation
-->z_dyndoc_id Text of TOP-OF-PAGE
FORM event_top_of_page
USING z_dyndoc_id TYPE REF TO cl_dd_document.
DATA : lz_text(255) TYPE c.
System ID
CLEAR : lz_text.
CONCATENATE text-015
sy-sysid
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Title
CLEAR : lz_text.
CONCATENATE text-016
sy-title
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Date
CLEAR : lz_text.
WRITE sy-datum TO lz_text.
CONCATENATE text-017
lz_text
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
User ID
CLEAR : lz_text.
CONCATENATE text-018
sy-uname
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Time
CLEAR : lz_text.
WRITE sy-uzeit TO lz_text.
CONCATENATE text-019
lz_text
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Program Name
CLEAR : lz_text.
WRITE sy-repid TO lz_text.
CONCATENATE text-020
lz_text
INTO lz_text
SEPARATED BY space.
PERFORM add_text
USING lz_text.
CALL METHOD z_dyndoc_id->new_line.
Populating data to TOP-OF-PAGE
PERFORM top-of-page.
ENDFORM. " EVENT_TOP_OF_PAGE
*& Form ADD_TEXT
Add Text To TOP-OF-PAGE
FORM add_text
USING p_text TYPE sdydo_text_element.
CALL METHOD z_dyndoc_id->add_text
EXPORTING
text = p_text.
ENDFORM. " ADD_TEXT
*& Form TOP-OF-PAGE
TOP-OF-PAGE
FORM top-of-page.
CALL METHOD z_dyndoc_id->display_document
EXPORTING
reuse_control = kc_x
parent = z_parent_top
EXCEPTIONS
html_display_error = 1.
IF sy-subrc NE 0.
MESSAGE i001(zzrefn01)
WITH text-036 ' '.
ENDIF. "IF sy-subrc NE 0
ENDFORM. "TOP-OF-PAGE
*& Form handle_user_command
Handle the user command
FORM handle_user_command .
DATA lzi_lin TYPE i.
REFRESH ra_id_rech[].
CLEAR ra_id_rech.
ra_id_rech-sign = kc_include.
ra_id_rech-option = kc_equal.
CASE sy-ucomm.
WHEN kc_ucomm-upd.
DESCRIBE LIST NUMBER OF LINES lzi_lin.
DO lzi_lin TIMES.
CLEAR wa_output.
READ LINE sy-index
FIELD VALUE wa_output-chk_box
wa_output-id_rech.
IF sy-subrc NE 0.
EXIT.
ELSE.
IF wa_output-chk_box EQ kc_x.
ra_id_rech-low = wa_output-id_rech.
APPEND ra_id_rech.
ENDIF.
ENDIF.
ENDDO.
IF NOT ra_id_rech IS INITIAL.
SORT ra_id_rech BY low.
DELETE ADJACENT DUPLICATES FROM ra_id_rech
COMPARING low.
IF NOT pa_prodr IS INITIAL.
UPDATE yyeft1200
SET status = kc_status00
WHERE id_rech IN ra_id_rech.
IF sy-subrc EQ 0.
MESSAGE s900(zbcc)
WITH 'Status change successful'(m08)
space
space
space.
ELSE.
MESSAGE i900(zbcc)
WITH 'Status change failed'(m09)
space
space
space.
ENDIF. "IF sy-subrc EQ 0.
ELSE.
MESSAGE i900(zbcc)
WITH 'TEST RUN: NO databases will be changed'(m03)
space
space
space.
ENDIF. "IF NOT pa_prodr IS INITIAL.
ELSE.
MESSAGE i900(zbcc)
WITH 'Atleast one line should be selected'(m01)
'in order to update.'(m02)
space
space.
ENDIF. "IF NOT ra_id_rech IS INITIAL
WHEN kc_ucomm-back
OR kc_ucomm-exit
OR kc_ucomm-cancel.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ENDCASE. "CASE sy-ucomm
ENDFORM. " handle_user_command
*& Form display_selected_data
Display Selected Data
FORM display_selected_data.
LOOP AT it_output
INTO wa_output
WHERE chk_box EQ kc_x.
MOVE-CORRESPONDING wa_output TO wa_output1.
APPEND wa_output1 TO it_output1.
ENDLOOP. "LOOP AT it_output
call dialog screen and display new alv control
IF NOT it_output1[] IS INITIAL.
CALL SCREEN 101 STARTING AT 10 5.
ENDIF. "IF NOT it_output1[] IS INITIAL
ENDFORM. " change_status
iNCLUDE YYEF_CHECK_ISP_I01
*& Include YYEF_CHECK_ISP_I01 *
*& Module USER_COMMAND_0100 INPUT
Handle user command for screen 0100
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN kc_ucomm-back.
LEAVE TO SCREEN 0.
WHEN kc_ucomm-exit.
LEAVE TO SCREEN 0.
ENDCASE. "CASE sy-ucomm.
ENDMODULE. "USER_COMMAND_0100 INPUT
*& Module USER_COMMAND_0101 INPUT
Handle User Command for screen 0101
MODULE user_command_0101 INPUT.
CASE sy-ucomm.
WHEN kc_ucomm-back.
LEAVE TO SCREEN 0.
ENDCASE. "CASE sy-ucomm
ENDMODULE. " USER_COMMAND_0101 INPUT
Include YYEF_CHECK_ISP_O01
*& Include YYEF_CHECK_ISP_O01 *
*& Module PBO OUTPUT
OO ALV Display
MODULE pbo OUTPUT.
CREATE OBJECT z_container
EXPORTING container_name = kc_container.
Create TOP-Document
CREATE OBJECT z_dyndoc_id
EXPORTING style = kc_alv.
Create Splitter for custom_container
CREATE OBJECT z_splitter
EXPORTING parent = z_container
rows = 2
columns = 1.
For TOP-OF-PAGE
CALL METHOD z_splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = z_parent_top.
For ALV Display
CALL METHOD z_splitter->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = z_parent_grid.
Set height for g_parent_html
CALL METHOD z_splitter->set_row_height
EXPORTING
id = 1
height = 20.
CREATE OBJECT z_grid
EXPORTING i_parent = z_parent_grid.
Set Handler for TOP-OF-PAGE
CREATE OBJECT z_handler.
SET HANDLER z_handler->top_of_page FOR z_grid.
z_repid = sy-repid.
z_variant-report = z_repid.
Display ALV
zs_layout-stylefname = kc_style.
CALL METHOD z_grid->set_table_for_first_display
EXPORTING
is_layout = zs_layout
i_save = kc_u
is_variant = z_variant
CHANGING
it_outtab = it_output[]
it_fieldcatalog = it_fieldcat.
Processing TOP-OF-PAGE Event
CALL METHOD z_grid->list_processing_events
EXPORTING
i_event_name = kc_top
i_dyndoc_id = z_dyndoc_id.
Set handler for ALV Tool Bar
SET HANDLER z_handler->handle_toolbar FOR z_grid.
SET HANDLER z_handler->handle_user_command FOR z_grid.
CALL METHOD z_grid->set_toolbar_interactive.
ENDMODULE. " PBO OUTPUT
*& Module STATUS_0100 OUTPUT
Set the GUI status
MODULE status_0100 OUTPUT.
SET PF-STATUS kc_status.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module STATUS_0101 OUTPUT
Display selected records on screen 0101
MODULE status_0101 OUTPUT.
SET TITLEBAR kc_title.
CREATE OBJECT z_container1
EXPORTING container_name = kc_container1.
CREATE OBJECT z_grid1
EXPORTING i_parent = z_container1.
PERFORM prepare_field_catalog
CHANGING it_fieldcat1.
Display ALV
CALL METHOD z_grid1->set_table_for_first_display
EXPORTING
is_layout = zs_layout
CHANGING
it_outtab = it_output1[]
it_fieldcatalog = it_fieldcat1.
ENDMODULE. " STATUS_0101 OUTPUT
INCLUDE YYEF_CHECK_ISP_TOP
*& Include YYEF_CHECK_ISP_TOP *
DATA DEFINITIONS **
Class declarations *
*class zcl_xyz definition deferred.
CLASS :cl_gui_alv_grid DEFINITION LOAD,
cl_gui_custom_container DEFINITION LOAD.
Tables (old SAP style, please avoid and use workareas instead) *
TABLES: yyeft1200,
yyeft1201.
*tables: xyz.
Controls *
*controls: ctrl_xyz.
Types *
TYPES: BEGIN OF ty_output,
chk_box(1) TYPE c,
celltab TYPE lvc_t_styl,
id_rech TYPE yyeft1200-id_rech,
bprefnr TYPE yyeft1201-bprefnr,
lfdat TYPE yyeft1201-lfdat,
artnr_bp TYPE yyeft1201-artnr_bp,
fnumkred TYPE yyeft1200-fnumkred,
status TYPE yyeft1200-status,
erdat TYPE yyeft1200-erdat,
com_delfnd TYPE char25,
id_anlief TYPE yyeft1008-id_anlief,
bukrs TYPE yyeft1200-bukrs,
belnr TYPE yyeft1200-belnr,
gjahr TYPE yyeft1200-gjahr,
END OF ty_output.
TYPES: BEGIN OF ty_output1,
celltab TYPE lvc_t_styl,
id_rech TYPE yyeft1200-id_rech,
bprefnr TYPE yyeft1201-bprefnr,
lfdat TYPE yyeft1201-lfdat,
artnr_bp TYPE yyeft1201-artnr_bp,
fnumkred TYPE yyeft1200-fnumkred,
status TYPE yyeft1200-status,
erdat TYPE yyeft1200-erdat,
com_delfnd TYPE char25,
id_anlief TYPE yyeft1008-id_anlief,
bukrs TYPE yyeft1200-bukrs,
belnr TYPE yyeft1200-belnr,
gjahr TYPE yyeft1200-gjahr,
END OF ty_output1.
TYPES: BEGIN OF ty_status,
id_rech TYPE yyeft1200-id_rech,
END OF ty_status.
*TYPES-POOLS: xyz.
*TYPES: ty_xyz.
Internal tables *
*DATA: it_xyz.
DATA: it_yyeft1200 TYPE STANDARD TABLE OF yyeft1200,
it_yyeft1201 TYPE SORTED TABLE OF yyeft1201
WITH UNIQUE KEY id_rech posnr,
it_yyeft1008 TYPE STANDARD TABLE OF yyeft1008,
it_output TYPE STANDARD TABLE OF ty_output,
it_output1 TYPE STANDARD TABLE OF ty_output1,
it_fieldcat TYPE lvc_t_fcat,
it_fieldcat1 TYPE lvc_t_fcat.
Workareas *
*DATA: wa_xyz.
DATA: wa_yyeft1200 TYPE yyeft1200,
wa_yyeft1201 TYPE yyeft1201,
wa_yyeft1008 TYPE yyeft1008,
wa_output TYPE ty_output,
wa_output1 TYPE ty_output1.
*****OO ALV DATA DECLARATION
DATA: zs_style TYPE lvc_s_styl,
zs_layout TYPE lvc_s_layo,
z_container TYPE REF TO cl_gui_custom_container,
z_container1 TYPE REF TO cl_gui_custom_container,
z_grid TYPE REF TO cl_gui_alv_grid,
z_grid1 TYPE REF TO cl_gui_alv_grid,
z_dyndoc_id TYPE REF TO cl_dd_document,
z_splitter TYPE REF TO cl_gui_splitter_container,
z_parent_grid TYPE REF TO cl_gui_container,
z_parent_top TYPE REF TO cl_gui_container.
Constants *
*constants: kc_xyz value ... "character
*constants: kn_xyz value ... "numeric
*constants: ki_xyz value ... "integer
*constants: kp_xyz value ... "packed
*constants: kx_xyz value ... "hex
CONSTANTS: kc_status00 TYPE yyeft1200-status VALUE '00',
kc_status10 TYPE yyeft1200-status VALUE '10',
kc_x TYPE char01 VALUE 'X',
kc_include TYPE char01 VALUE 'I',
kc_equal(2) TYPE c VALUE 'EQ',
kc_status(11) TYPE c VALUE 'ZGUI_STATUS',
kc_container TYPE char10 VALUE 'ZCONTAINER',
kc_container1 TYPE char11 VALUE 'ZCONTAINER1',
kc_u TYPE char01 VALUE 'U',
kc_top TYPE char30 VALUE 'TOP_OF_PAGE',
kc_alv TYPE char50 VALUE 'ALV_GRID',
kc_style TYPE char07 VALUE 'CELLTAB',
kc_title TYPE char07 VALUE 'ZTITLE'.
CONSTANTS: BEGIN OF kc_ucomm,
upd TYPE sy-ucomm VALUE 'UPD',
back TYPE sy-ucomm VALUE 'BACK',
exit TYPE sy-ucomm VALUE 'EXIT',
cancel TYPE sy-ucomm VALUE 'CANCEL',
END OF kc_ucomm.
Sentence counters *
*data: cnt_xyz type i value 0.
Calculation variables (Rechenfelder) *
*data: r_xyz.
Switches *
*data: sw_xyz(1) type n value 0.
Misc variables *
*DATA: z_xyz.
*** Initialization of parameters at call of/return to
*** selection dynpro (for Online-only-reports)
DATA: zn_init_seldynp(1) TYPE n
VALUE 1. -
How doi print Any variable at the end of page in ALV report?
Hi,
Anyone can tell me that How do i print Any variable at the end of page in ALV report?
Exmale: at the ende of alv report i want to print total no of employee who has taken house loan or education loan.Hi,
Go through these links
Thread in sdn regarding FOOTER IN ALV
[ALV FOOTER;
Wiki in sdn regarding HEADER AND FOOTER IN ALV
[https://wiki.sdn.sap.com/wiki/display/Snippets/ABAP%20Objects%20-%20ALV%20Model%20-%20Using%20Header%20and%20Footer]
Header and Footer in ALV
[http://www.sap-img.com/abap/test-alv-display-with-header-footer.htm]
Hope this helps.
Thank you,
Pavan. -
Hi All,
I am generating the report output in ALV list and downloading in the PDF format. It is working fine.
But I am not able to print last line(AS SOME TEXT) on each page of the report. I think the output of report in ALV LIST does not show the END OF PAGE, But It should show once we take print out.
Please let me know.
Waiting for reply.
Thanks,
Rakesh SinghRakesh,
END OF PAGE can be found in ALV Printout, you can't see it in Display. So if you download as PDF without printing, it is normal not to display END-OF-PAGE.
You can print your report and you can see the END-OF-PAGE in spool and maybe you can convert this spool as PDF. Otherwise you won't use END-OF-PAGE.
Look at these links, same topic:
End of page in ALV reports
ALV - END_OF_PAGE event
http://help.sap.com/saphelp_webas630/helpdata/en/ee/c8e071d52611d2b468006094192fe3/content.htm
End of Page event not triggering in ALV report -
End of page in ALV display using OOPS
Hi all,
How can i display end of page or footer in ALV display using OOPS concept.
Thanks,
vinitHi ,
Try using this code.
First add a handler method in your handler class definition as:
e.g. METHOD handle__end_of_page
FOR EVENT print_end_of_page OF cl_gui_alv_grid .
Then implement the method in the implementation part of your local class.
e.g. METHOD handle_print_end_of_page .
WRITE:/ 'Flights Made on ', sy-datum .
ENDMETHOD .
And register this method as the handler.
SET HANDLER gr_event_handler->handle_print_end_of_page FOR gr_alvgrid .
Hope this helps.
Regards,
Janaki.
Maybe you are looking for
-
Help with writing a batch file
Hi : does anyone know anyplace online that I can get help in writing batch files?? I have never worked much with batch files before.... any help is greatly appreciated thnx
-
Hi everyone. This is my first post to the Aperture discussion and am currently using the trial now. I have a 250G OWC Neptune external hard drive I placed the Aperture Library in and all was working fine. I don't like to leave the ext. drive (or the
-
How to create Water fall chart
Hi, Can someone please let me know if a waterfall chart can be designed using BEx Analyzer/ WAD. Please provide the steps / any links available for it. Thanks.
-
No flashback versions query and flashback transaction query tools on EM?
No Flashback Versions Query and Flashback Transaction Query tools on EM Console? How to do Flashback Versions Query work and Flashback Transaction Query on EM Console?
-
I am having trouble installing new adobe flash player
It will not load to install