End of page in alv list output.
Hi All,
Can any body help me out for how to show end of page in alv list output.
Thanks,
Rakesh Singh
Refer this link:
http://www.sap-img.com/abap/sample-programs-on-alv-grid.htm
Regards,
Ravi
Similar Messages
-
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 -
How to give colors to the top-of-page in ALV List Display
how to give colors to the top-of-page in ALV List Display....
Check this blog.........
It provides your required output...........
/people/vijaybabu.dudla/blog/2006/07/21/topofpage-in-alv-using-clguialvgrid
See the point 7 for complete code...
Regards,
Pavan -
Hi,
I want to display on TOP of PAGE : X page / Total page with ALV LIST.
here is my code :
FORM eventtab_build USING lt_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO lt_events.
ENDIF.
READ TABLE lt_events WITH KEY name = slis_ev_end_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END-OF-LIST' TO ls_event-form.
APPEND ls_event TO lt_events.
ENDIF.
ENDFORM. "eventtab_build
FORM top_of_page.
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
DATA : lv_desc(15) TYPE c,
lv_month(2) TYPE c,
lv_year(4) TYPE c.
DATA : pageno(2) TYPE c.
lv_month = sd_augdt-high+4(2).
lv_year = sd_augdt-high(4).
SELECT SINGLE ltx FROM t247 INTO lv_desc WHERE mnr = lv_month
AND spras = sy-langu.
WRITE : /1 sd_bukrs-low.
SKIP 1.
WRITE : 50 'RELEVE DES ACHATS LIVRAISONS FACONS'.
WRITE : /52 '& TRAVAUX EFFECTUES AU MAROC'.
WRITE : /54 'OUVRANT DROIT AU DEDUCTION'.
SKIP 1.
WRITE : /1 'IDENTIFIANT FISCAL :', '1234',135 'REGIME : ENCAISSEMENT'.
SKIP 1.
IF NOT dtab-mwskz IS INITIAL.
WRITE : /54 'Code TVA: ',dtab-mwskz.
ENDIF.
WRITE : 135 'Page No :', sy-pagno RIGHT-JUSTIFIED.
WRITE : /2 'MOIS :',lv_desc,20 lv_year.
SKIP 1.
pageno = sy-pagno.
wa_header-typ = 'H'.
CONCATENATE 'PAGE NO : ' pageno ' of ' '****' 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 = gt_list_top_of_page.
it_list_commentary = t_header.
ENDFORM. "top_of_page
please, give me a guidance.
Best regards.Hi Please refer this program. You have not written exact problems here. Anyways refer below code:-
REPORT ZRIL_ALVEVENTS .
TYPE-POOLS : SLIS.
DEFINITION OF DATA INTERNAL TABLE
DATA : IT_SFLIGHT TYPE STANDARD TABLE OF SFLIGHT.
DEFINITION OF FIELDCATALOG INTERNAL TABLE
DATA : WA_FCAT TYPE SLIS_FIELDCAT_ALV, "WORK AREA FOR FIELD CATALOG
IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DEFINITION FOR EVENT TABLE
DATA : IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS TYPE SLIS_ALV_EVENT. "WORK AREA FOR EVENT"
DEFINE THE NAME LIST HEADER
DATA : FORMNAME TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST'.
DEFINE THE TABLE FOR LIST OF ACTION ON EVENT SPECIFIED IN LIST HEADER
DATA : IT_ACTION TYPE SLIS_T_LISTHEADER,
WA_ACTION TYPE SLIS_LISTHEADER. " WORK AREA FOR LIST OF "
*POPULATE DATA FROM SFLIGHT TABLE
SELECT * FROM SFLIGHT INTO TABLE IT_SFLIGHT.
MAKE THE FIELDCATALOG TABLE FOR SFLIGHT
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME =
I_STRUCTURE_NAME = 'SFLIGHT'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 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.
GET THE LIST OF EVENTS IN EVENT INTERNAL TABLE
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
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.
GET THE NAME OF EVENT (TOP-OF-LIST) FROM LIST OF EVENTS IN EVENT TABLE
READ TABLE IT_EVENTS
WITH KEY NAME = SLIS_EV_TOP_OF_LIST
INTO WA_EVENTS.
IF READ OPERATION SUCCESSFUL
MOVE NAME OF LIST HEADER INTO WORK AREA OF EVENTS
AND APPEND THAT WORK AREA TO EVENTS TABLE THAT CONTAINS LIST OF
EVENTS
IF SY-SUBRC = 0.
MOVE FORMNAME TO WA_EVENTS-FORM.
APPEND WA_EVENTS TO IT_EVENTS.
ENDIF.
SPECIFY ONE ACTON ON EVENT IN WORK AREA AND APPEND THAT ACTION TO
TABLE OF ACTION
WA_ACTION-TYP = 'H'.
WA_ACTION-INFO = TEXT-001.
APPEND WA_ACTION TO IT_ACTION.
CLEAR WA_ACTION.
WA_ACTION-TYP = 'S'.
WA_ACTION-KEY = TEXT-002.
WA_ACTION-INFO = TEXT-003.
APPEND WA_ACTION TO IT_ACTION.
CALL THE SUBROUTINE TO DISPLAY THE LIST
CALL FUNCTION 'REUSE_ALV_LIST_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 = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
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
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_SFLIGHT
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.
FUNCTION MODULE THAT WILL BE CALLED AUTOMATICALLY WHEN THE
TOP-OF-LIST EVENT IS TRIGGERED.
FORM TOP_OF_LIST.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_ACTION
I_LOGO =
I_END_OF_LIST_GRID =
ENDFORM.
Regards
Abhii..
Edited by: Abhii on Nov 10, 2009 1:00 PM -
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. -
Runtime Error while Displaying End of Page in ALV
Hi,
This is the Code i have written.. The top of page is printing when i comment the end of page in the program (BOLD FORMAT)..But when Uncomment the End of page Code this is going to Short dump..and the Runtime Error is..
A PERFORM was used to call the routine "END_OF_LIST" of the program "ZPROGRAM
This routine contains exactly 0 formal parameters, but the current
call contains 1 actual parameters.
*& Form DISPLAY_ALV_VBAP
FORM DISPLAY_ALV_VBAP .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE1'
I_CALLBACK_HTML_END_OF_LIST = 'END_OF_LIST'
I_GRID_TITLE = 'THIS IS LAST'
IS_LAYOUT = WA_LAYO
IT_FIELDCAT = I_FIELDCAT
TABLES
T_OUTTAB = IT_VBAP
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_VBAP
*& Form top_of_page1
text
FORM TOP_OF_PAGE1.
DATA:IT_LISTHEAD2 TYPE SLIS_T_LISTHEADER.
DATA:WA_LISTHEAD2 TYPE SLIS_LISTHEADER.
WA_LISTHEAD2-TYP = 'H'.
WA_LISTHEAD2-INFO = 'THIS IS TOP OF PAGE FOR SECOND LIST'.
APPEND WA_LISTHEAD2 TO IT_LISTHEAD2.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEAD2
I_LOGO = 'ENJOYSAP_LOGO'.
ENDFORM. "top_of_page1
*& Form end_of_list
text
FORM END_OF_LIST.
DATA:IT_LISTHEAD1 TYPE SLIS_T_LISTHEADER.
DATA:WA_LISTHEAD1 TYPE SLIS_LISTHEADER.
WA_LISTHEAD1-TYP = 'H'.
WA_LISTHEAD1-INFO = 'THIS IS END OF PAGE FOR SECOND LIST'.
APPEND WA_LISTHEAD1 TO IT_LISTHEAD1.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEAD1
I_LOGO = 'ENJOYSAP_LOGO'
I_END_OF_LIST_GRID = 'X'
ENDFORM.Hi
The "END_OF_LIST" event is not called as you have called it.
First capture END_OF_LIST as an event in your events table.
Then use it.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE1'
I_CALLBACK_HTML_END_OF_LIST = 'END_OF_LIST' <----- Wrong
I_GRID_TITLE = 'THIS IS LAST'
IS_LAYOUT = WA_LAYO
IT_FIELDCAT = I_FIELDCAT
TABLES
T_OUTTAB = IT_VBAP
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_VBAP
Build an events table like this :
FORM build_events.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_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.
READ TABLE gt_events WITH KEY name = slis_ev_end_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_PAGE' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
READ TABLE gt_events WITH KEY name = slis_ev_end_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_LIST' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
ENDFORM.
And then use the END_OF_list form as you have defined.
Hope that helps.
Cheers
Ravish -
End of page in ALV using METHODS
Hi Folks,
I have to display End of Page in an list which is using
CALL METHOD grid1->set_table_for_first_display for display.Is there any method in the same way so that I can totals at the end of page in that list.
For you info I am not using any of the REUSE_ALV_...... function modules in the program.So kindly let me know how to get it using methods.
Thanks,
K.Kiran.Hello Pratuysh,
Thanks for the answer
I know that report,but that doesn't help me.
Any other way
Thanks
Jai -
Hide columns for ALV list output in SAP Query SQ01/SQ02
Hi All,
I have a requirement to hide the columns which are empty in sap query SQ01 alv list output.
Please let me know this functionality available in Query (SQ01) like normal reports
Regards,
VenkatHi,
We just can't make changes in this case as this are all system generated programs.
WE have to write our own reports to make things flexible to match our requirements.
Things you are asking is not possible.
Regards,
Suvendu -
Regarding END of PAGE in ALV's
hi guys,
Can you tell me which function module do i use to insert end of page in ALV's.
thanks
pavanHi Pavan,
check the format of End of page in this program.The page no will not be shown in the display,when you will take the printout you will see the content(pageno) that is written in the end of page event.
report ztest
TABLES: ekko.
type-pools: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid,
gt_events type slis_t_event,
gd_prntparams type slis_print_alv.
*Start-of-selection.
START-OF-SELECTION.
perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform build_events.
perform build_print_params.
perform display_alv_report.
*& Form BUILD_FIELDCATALOG
Build Fieldcatalog for ALV Report
form build_fieldcatalog.
There are a number of ways to create a fieldcat.
For the purpose of this example i will build the fieldcatalog manualy
by populating the internal table fields individually and then
appending the rows. This method can be the most time consuming but can
also allow you more control of the final product.
Beware though, you need to ensure that all fields required are
populated. When using some of functionality available via ALV, such as
total. You may need to provide more information than if you were
simply displaying the result
I.e. Field type may be required in-order for
the 'TOTAL' function to work.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
fieldcatalog-do_sum = 'X'.
fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-do_sum = 'X'.
fieldcatalog-datatype = 'CURR'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
Build layout for ALV grid report
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
endform. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
Display report using ALV grid
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = gd_tabgroup
it_events = gt_events
is_print = gd_prntparams
i_save = 'X'
is_variant = z_template
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. " DISPLAY_ALV_REPORT
*& Form DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
form data_retrieval.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
up to 10 rows
from ekpo
into table it_ekko.
endform. " DATA_RETRIEVAL
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.
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_ekko 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.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
i_logo = 'Z_LOGO'.
endform.
FORM USER_COMMAND *
--> R_UCOMM *
--> RS_SELFIELD *
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
Check function code
CASE r_ucomm.
WHEN '&IC1'.
Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'EBELN'.
Read data table, using index of row user clicked on
READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
Set parameter ID for transaction screen field
SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
Sxecute transaction ME23N, and skip initial data entry screen
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
*& Form BUILD_EVENTS
Build events table
form build_events.
data: ls_event type slis_alv_event.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = gt_events[].
read table gt_events with key name = slis_ev_end_of_page
into ls_event.
if sy-subrc = 0.
move 'END_OF_PAGE' to ls_event-form.
append ls_event to gt_events.
endif.
read table gt_events with key name = slis_ev_end_of_list
into ls_event.
if sy-subrc = 0.
move 'END_OF_LIST' to ls_event-form.
append ls_event to gt_events.
endif.
endform. " BUILD_EVENTS
*& Form BUILD_PRINT_PARAMS
Setup print parameters
form build_print_params.
gd_prntparams-reserve_lines = '3'. "Lines reserved for footer
gd_prntparams-no_coverpage = 'X'.
endform. " BUILD_PRINT_PARAMS
*& Form END_OF_PAGE
form END_OF_PAGE.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
write: sy-uline(50).
skip.
write:/40 'Page:', sy-pagno .
endform.
*& Form END_OF_LIST
form END_OF_LIST.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
skip.
write:/40 'Page:', sy-pagno .
endform. -
I wnat to add new fieldtext in the alv list output plz tell me
hi,
i whant add new fieldtext in the list output, plz tell me where can i modify it.
CORRECTIONS
DATE CORRECTION NOTE AUTHOR DESCRIPTION
09.03.2001 L9CK045451 0388404 XSC Wrong list output for multiple Os
05.06.2001 AL0K023393 0410219 Lud Wrong keydate for search with
Pchbegda and pchendda.
22.04.2004 S6BK024775 730486 PS Too many selection parameters in
header
19.06.2006 S6BK035494 956731 JF No sorting by qualification
REPORT RHPK_FIND_PERS_WITH_EXPIRED_QU MESSAGE-ID PQ.
DATA AUFRUF(8).
TABLES : OBJEC, GDSET.
DATA LIST.
DATA MARKFIELD(1) TYPE C.
ALV_POOL
TYPE-POOLS SLIS.
INCLUDES
INCLUDE .
INCLUDE RHPEINI0.
TABLES
DATA: orgeh_BUFFER like hrobject OCCURS 1 WITH HEADER LINE.
DATA: OBJECTS LIKE HRSOBID OCCURS 1 WITH HEADER LINE.
DATA: h_OBJEC LIKE objec OCCURS 0 WITH HEADER LINE.
DATA: pers_objects LIKE HRSOBID OCCURS 1 WITH HEADER LINE.
DATA: QUALI_TAB LIKE QUALI_PROF OCCURS 1 WITH HEADER LINE.
DATA: PERSONS LIKE PERSQ_PROF OCCURS 1 WITH HEADER LINE.
DATA: H_PERSONS LIKE HRPE_PROFL OCCURS 1 WITH HEADER LINE.
DATA: LIST_OUTPUT LIKE PERSQ_PROF OCCURS 1 WITH HEADER LINE.
DATA: BOOK_EVENT_TAB LIKE PERSQ_PROF OCCURS 1 WITH HEADER LINE.
DATA: PLAN_EVENT_TAB LIKE PERSQ_PROF OCCURS 1 WITH HEADER LINE.
DATA H_SUITED LIKE DYNP_PCRIT-SUITED.
DATA: O_COLOR LIKE STREEATTR-COLOR.
DATA: O_INTENSIV LIKE STREEATTR-INTENSIV.
DATA SHOW_KEY.
DATA EVENT.
DATA: HTEXT LIKE P1000-STEXT.
DATA: EVENT_TAB LIKE PERSQ_PROF OCCURS 1 WITH HEADER LINE.
DATA: COLLECTED_EVENTS LIKE PERSQ_PROF OCCURS 1 WITH HEADER LINE.
DATA: SUBTY_TAB LIKE HRPE_OTYPE_SUBTY OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF HIDE_STRU,
PERSTYPE LIKE HROTYPE-OTYPE,
PERSOBID LIKE HRSOBID-SOBID,
PERSTXT LIKE PERSQ_PROF-STEXT,
SCALE_ID LIKE HRPE_PROFQ-SCALE_ID,
TRAININGTYPE LIKE HRP1000-OTYPE,
TRAININGID LIKE HRP1000-OBJID,
TRAININGSTXT LIKE HRP1000-STEXT,
QUALID LIKE QUALI_PROF-QUALID,
QUALTEXT LIKE QUALI_PROF-QUALSTXT,
END OF HIDE_STRU.
DATA: BEGIN OF EXTAB OCCURS 10,
FCODE LIKE RSMPE-FUNC,
END OF EXTAB.
DATA: CURRENT_QUALID LIKE QUALI_PROF-QUALID.
DATA: CURRENT_TRAININGSID LIKE HRP1000-OBJID.
DATA: CURRENT_TRAININGTYPE LIKE HRP1000-OTYPE.
DATA: SUBRC LIKE SY-SUBRC.
VARIABLES
DATA: OBJID LIKE P1000-OBJID.
DATA: H_LINE_COUNT TYPE I.
DATA: H_TABIX1 LIKE SY-TABIX.
ALV-Variables
DATA: alv_events_line TYPE slis_alv_event. "header line
DATA ALV_EVENTS TYPE SLIS_T_EVENT.
DATA GT_ALV_LIST_TOP_OF_LIST TYPE SLIS_T_LISTHEADER.
DATA: gt_events TYPE SLIS_T_EVENT.
DATA G_REPID LIKE SY-REPID.
DATA G_VARIANT LIKE DISVARIANT.
DATA ALV_USERCOMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
DATA G_USERCOMMAND_FOR_RANKINGLIST TYPE SLIS_FORMNAME VALUE
'USER_COMMAND_FOR_RANKINGLIST'.
DATA ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: ALV_OUTPUT LIKE HRPDV_EXPIRED_Q OCCURS 0 WITH HEADER LINE.
DATA: Help_OUTPUT LIKE HRPDV_EXPIRED_Q OCCURS 0 WITH HEADER LINE.
begin of Dynpro 5020 - POPUP: WEITER
DATA: OK_CODE_5020 LIKE SY-UCOMM.
DATA: NO_ORG. "if no org selected
DATA: H_TABIX LIKE SY-TABIX.
begin of Dynpro 20nn - Header
TABLES: DYNP_RHPP.
SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-005.
PARAMETERS:
H_EVENTS LIKE DYNP_RHPP-GEN_TRAIN, "with training sugg
H_QUAL LIKE DYNP_RHPP-EXPIRED_QUAL. "with Qual
SELECTION-SCREEN END OF BLOCK B3.
INITIALIZATION
INITIALIZATION.
PERFORM READ_T77S0_PARAMETERS_FOR_PE.
get user parameters/Planvariante und Beginndatum setzen:
PCHOTYPE = $ORGEH.
CALL FUNCTION 'RHP0_USER_PARAMETERS_GET'
EXPORTING
FILL_IF_INITIAL = 'X'
IMPORTING
PLVAR = PCHPLVAR
BEGDA = PCHBEGDA
endda = Pchendda "Correction 0410219
WITH_KEY = SHOW_KEY
SUBSTITUTE =
ESSENTIAL = only_essential
ORG_UNIT = PCHOBJID-LOW
EXCEPTIONS
OTHERS = 0.
PCHBEGDA = LOW_DATE. "Correction note: 0410219 / AL0K023393
get menu text for key on/off
PERFORM USER_MENU_TEXT_KEY(SAPLRHP0) USING G_MENU_TEXT_KEY.
start-of-selection
START-OF-SELECTION.
terminate the selection if objid isn't given
READ TABLE PCHOBJID INDEX 1 TRANSPORTING NO FIELDS.
IF SY-SUBRC <> 0
AND PCHOBJID IS INITIAL.
PCHOBJID-SIGN = 'I'.
PCHOBJID-OPTION = 'EQ'.
PCHOBJID-LOW = '00000001'.
APPEND PCHOBJID.
NO_ORG = TRUE.
ELSE.
NO_ORG = FALSE.
ENDIF.
GET OBJEC.
terminate the selection if objid isn't given
IF NO_ORG = TRUE.
EXIT.
ENDIF.
OBJECTS-PLVAR = PCHPLVAR.
OBJECTS-OTYPE = PCHOTYPE.
OBJECTS-SOBID = OBJEC-REALO.
APPEND OBJECTS.
Für das lesen der Organisationseinheit
h_OBJEC-PLVAR = OBJEC-PLVAR.
h_OBJEC-OTYPE = OBJEC-OTYPE.
h_OBJEC-OBJID = OBJEC-objid.
append h_objec.
Read table h_objec index 1 transporting no fields.
if sy-subrc = 0.
Fill Buffer
orgeh_BUFFER = h_OBJEC.
orgeh_BUFFER[] = h_OBJEC[].
CALL FUNCTION 'RH_TEXT_BUFFER_FILL'
TABLES
OBJECTS = orgeh_BUFFER.
Loop at h_OBJEC.
H_TABIX = SY-TABIX.
Read text of organisation
CALL FUNCTION 'RH_READ_OBJECT'
EXPORTING
PLVAR = h_OBJEC-plvar
OTYPE = h_OBJEC-otype
OBJID = h_OBJEC-OBJID
IMPORTING
OBEG = h_objec-begda
OEND = h_objec-endda
SHORT = short
STEXT = h_OBJEC-stext
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0.
modify h_OBJEC index H_TABIX.
ENDIF.
endloop.
endif.
end-of-selection
END-OF-SELECTION.
read objects of the organizational unit
OBJID = OBJECTS-SOBID.
CALL FUNCTION 'RHPH_PICK_UP_PERSONS'
EXPORTING
BEGDA = PCHBEGDA "Correction 0410219
ENDDA = PCHENDDA "Correction 0410219
STATUS = '1'
WITH_STEXT = 'X'
TABLES
OBJECTS = OBJECTS
PERSONS = H_PERSONS
EXCEPTIONS
UNDEFINED = 1
OTHERS = 2.
IF SY-SUBRC = 0.
prepare objects !
objects-otype = h_persons-ttype.
objects-sobid = h_persons-tobid.
append objects.
ELSE.
EXIT.
ENDIF.
CLEAR OBJECTS. REFRESH OBJECTS.
prepare sel_objects !
pers_objects-PLVAR = PCHPLVAR.
LOOP AT H_PERSONS.
pers_objects-OTYPE = H_PERSONS-TTYPE.
pers_objects-SOBID = H_PERSONS-TOBID.
APPEND pers_objects.
ENDLOOP.
sort objects and delete adjacent duplicates
SORT Pers_OBJECTS BY PLVAR OTYPE SOBID.
DELETE ADJACENT DUPLICATES FROM Pers_OBJECTS COMPARING PLVAR OTYPE
SOBID.
CALL FUNCTION 'RHPK_FIND_PERS_WITH_EXPIRED_Q'
EXPORTING
PLVAR = PCHPLVAR
CHECK_BEGDA = PCHBEGDA
CHECK_ENDDA = PCHENDDA
SUBTY = $ownsb "'B032'
only_essential =
target_otype =
target_ap_iea =
TABLES
IMP_PER_TAB = pers_objects
QUALI_TAB = QUALI_TAB
PERSONS = LIST_OUTPUT
altq_tab =
EXCEPTIONS
NO_QUALIFICATION = 1
NO_PERSON_FOUND = 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.
100% case
READ TABLE pers_objects INDEX 1 TRANSPORTING NO FIELDS.
IF SY-SUBRC = 0.
sort pers_objects by otype sobid.
check the selected persons: if org.unit was selected !
Loop at pers_objects.
H_TABIX = SY-TABIX.
READ TABLE LIST_OUTPUT WITH KEY OTYPE = pers_objects-OTYPE
SOBID = pers_objects-SOBID
BINARY SEARCH.
IF SY-SUBRC <> 0.
person doesn't belong to the selected org.unit
DELETE LIST_OUTPUT INDEX H_TABIX.
ENDIF.
ENDLOOP.
ENDIF. "org.unit check needed ?
end-of-selection.
sort h_objec by otype objid.
sort list_output by otype sobid.
sort h_persons by ttype tobid.
ALV-Liste aufbauen
loop at h_objec.
loop at h_persons where otype = h_objec-otype "XSC
and sobid = h_objec-objid. "XSC
Read table list_output with key
otype = h_persons-ttype
sobid = h_persons-tobid
binary search.
if sy-subrc = 0.
h_tabix1 = sy-tabix.
while sy-subrc = 0.
clear alv_output. "XSC
ALV_OUTPUT-otype = h_objec-otype.
ALV_OUTPUT-sobid = h_objec-objid.
ALV_OUTPUT-stext = h_objec-stext.
ALV_OUTPUT-Ptype = LIST_OUTPUT-otype.
ALV_OUTPUT-pobid = LIST_OUTPUT-sobid.
ALV_OUTPUT-pshort = LIST_OUTPUT-short.
ALV_OUTPUT-ptext = LIST_OUTPUT-stext.
ALV_OUTPUT-qualid = LIST_OUTPUT-qualid.
ALV_OUTPUT-qualstxt = LIST_OUTPUT-qualstxt.
ALV_OUTPUT-expbegda = LIST_OUTPUT-vbegda.
ALV_OUTPUT-expendda = LIST_OUTPUT-vendda.
PERFORM FIND_TRAINING TABLES QUALI_TAB EVENT_TAB COLLECTED_EVENTS
USING $PLVAR $GDATE H_EVENTS H_QUAL.
IF NOT EVENT_TAB[] IS INITIAL.
READ TABLE COLLECTED_EVENTS WITH KEY
QUALID = LIST_OUTPUT-QUALID.
IF SY-SUBRC = 0.
ALV_OUTPUT-ICON_S_EVENTS = ICON_BOOKEVENT.
endif.
ENDIF.
Append ALV_OUTPUT.
h_tabix1 = h_tabix1 + 1.
READ TABLE list_output INDEX h_tabix1
COMPARING otype sobid.
endwhile.
endif.
endloop.
endloop.
check if indicator for qualification view is set
IF h_qual = 'X'. "note 956731
SORT alv_output by qualid OTYPE SOBID ptype pobid "note 956731
expbegda expendda. "note 956731
ELSE. "note 956731
SORT alv_output by OTYPE SOBID ptype pobid qualid expbegda expendda.
ENDIF. "note 956731
DELETE ADJACENT DUPLICATES FROM ALV_OUTPUT COMPARING OTYPE SOBID ptype
pobid qualid expbegda expendda.
stext_AQ und icon-Feld noch nicht gefüllt
perform PREPARE_TOP_OF_LIST.
perform Build_FIELDCAT using GT_FIELDCAT[] H_EVENTS.
perform ALV_LAYOUT USING alv_layout.
G_REPID = SY-REPID.
G_VARIANT-REPORT = G_REPID.
PERFORM EVENTTAB_BUILD USING GT_EVENTS.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = 'X'
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = ALV_USERCOMMAND
I_STRUCTURE_NAME = 'HRPDV_EXPIRED_Q'
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = G_VARIANT
IT_EVENTS = GT_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
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ALV_OUTPUT
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.
*& Form FIND_TRAINING
text
-->P_QUALI_TAB text
-->P_EVENT_TAB text
-->P_$PLVAR text
-->P_GDATE text
-->P_H_EVENT text
-->P_H_QUAL text
FORM FIND_TRAINING TABLES P_QUALI_TAB STRUCTURE QUALI_TAB
P_EVENT_TAB STRUCTURE EVENT_TAB
P_COLLECTED_EVENTS STRUCTURE COLLECTED_EVENTS
USING VALUE(P_$PLVAR) LIKE P1000-PLVAR
VALUE(P_GDATE) LIKE P1000-GDATE
VALUE(P_H_EVENT) TYPE ANY
VALUE(P_H_QUAL) TYPE ANY.
IF NOT P_H_EVENT IS INITIAL.
READ TABLE EVENT_TAB INDEX 1 TRANSPORTING NO FIELDS.
IF SY-SUBRC <> 0.
CLEAR P_EVENT_TAB. REFRESH EVENT_TAB.
CLEAR P_COLLECTED_EVENTS. REFRESH P_COLLECTED_EVENTS.
IF EVENT = FALSE.
EVENT = TRUE.
ELSE.
EVENT = FALSE.
ENDIF.
CALL FUNCTION 'RHPH_FIND_TRAINING_FOR_QUAL'
EXPORTING
PLVAR = PCHPLVAR
GDATE = SY-DATUM
GET_NAME = 'X'
TABLES
QUALI_TAB = QUALI_TAB
TO_Q_TAB = EVENT_TAB
EXCEPTIONS
NO_QUALIFICATION = 1
NO_OBJECT_FOUND = 2
TECHNICAL_ERROR = 3
OTHERS = 4.
IF SY-SUBRC = 0.
the found qualifications are picked up into table event_tab
ENDIF.
IF SY-SUBRC = 1.
MESSAGE S015. "Zu den Eingaben wurden keine Daten gefunden
ENDIF.
IF SY-SUBRC > 2.
EXIT.
ENDIF.
collect events when there are double.
Veranstaltungen kollektieren, Können mehrfach auftauchen, da
verschiedenen Qualifikationen von gleichen Veranstaltungen vermittelt
LOOP AT P_EVENT_TAB INTO P_COLLECTED_EVENTS.
APPEND P_COLLECTED_EVENTS.
ENDLOOP.
SORT P_COLLECTED_EVENTS BY QUALID STEXT.
ENDIF.
ENDIF.
ENDFORM. " FIND_TRAINING
*& Form PREPARE_TOP_OF_LIST
text
--> p1 text
<-- p2 text
FORM PREPARE_TOP_OF_LIST.
DATA ALV_TOP_OF_LIST TYPE SLIS_LISTHEADER. "typ, key, info
DATA STEXT LIKE HRPDV_SUCCESSOR_VIEW-TTEXT.
DATA P_SUBRC LIKE SY-SUBRC.
DATA P_STEXT LIKE T777O-OTEXT.
DATA l_tabix like sy-tabix value 0.
DATA: h_counter TYPE i. "note 730486
ALV_TOP_OF_LIST-TYP = 'H'.
ALV_TOP_OF_LIST-INFO = TEXT-REQ.
APPEND ALV_TOP_OF_LIST TO GT_ALV_LIST_TOP_OF_LIST.
Organisationseinheit
ALV_TOP_OF_LIST-typ = 'S'.
Read text for organisationunit
PERFORM READ_TEXT_OTYPE_T777O(SAPLRHP0) USING SY-LANGU $ORGEH
P_STEXT P_SUBRC.
ALV_TOP_OF_LIST-key = P_STEXT.
fill buffer for read organisation-text
CALL FUNCTION 'RH_TEXT_BUFFER_FILL'
EXPORTING
CHECK_STRU_AUTH = 'X'
WITH_EXTINT = ' '
TABLES
OBJECTS = OBJECTS.
loop at objects for multipleselection
clear h_counter. "note 730486
LOOP AT OBJECTS.
$OBJID = OBJECTS-SOBID.
CALL FUNCTION 'RH_READ_OBJECT'
EXPORTING
PLVAR = OBJECTS-PLVAR
OTYPE = OBJECTS-OTYPE
OBJID = $OBJID
IMPORTING
SHORT = short
STEXT = STEXT
EXCEPTIONS
NOT_FOUND = 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 h_counter >= 15. "note 730486
MOVE '( ... )' TO ALV_TOP_OF_LIST-INFO. "note 730486
APPEND ALV_TOP_OF_LIST TO gt_alv_list_top_of_list.
"note 730486
EXIT. "note 730486
ENDIF. "note 730486
CONCATENATE $ORGEH OBJECTS-SOBID STEXT INTO
ALV_TOP_OF_LIST-INFO SEPARATED BY SPACE.
APPEND ALV_TOP_OF_LIST TO GT_ALV_LIST_TOP_OF_LIST.
CLEAR ALV_TOP_OF_LIST.
ALV_TOP_OF_LIST-typ = 'S'.
l_tabix = l_tabix + 1.
ADD 1 TO h_counter. "note 730486
ENDLOOP.
CLEAR ALV_TOP_OF_LIST.
ALV_TOP_OF_LIST-TYP = 'S'.
ALV_TOP_OF_LIST-key = TEXT-003.
WRITE PCHBEGDA TO ALV_TOP_OF_LIST-INFO.
APPEND ALV_TOP_OF_LIST TO GT_ALV_LIST_TOP_OF_LIST.
clear ALV_TOP_OF_LIST-INFO.
ALV_TOP_OF_LIST-key = TEXT-004.
WRITE PCHENDDA TO ALV_TOP_OF_LIST-INFO.
Append ALV_TOP_OF_LIST TO GT_ALV_LIST_TOP_OF_LIST.
ENDFORM. " PREPARE_TOP_OF_LIST
*& Form BUILD_FIELDCAT
text
-->P_GT_FIELDCAT[] text
FORM BUILD_FIELDCAT USING P_GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV
P_H_EVENTS.
DATA: WA_FIELDCAT LIKE LINE OF P_GT_FIELDCAT.
DATA: P_REPNAME LIKE SY-REPID,
L_TABIX LIKE SY-TABIX. "local variable for sy-tabix.
P_REPNAME = SY-REPID.
Erstellen des Feldkataloges
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = P_REPNAME
I_INTERNAL_TABNAME =
I_STRUCTURE_NAME = 'HRPDV_EXPIRED_Q'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = PRONAME
CHANGING
CT_FIELDCAT = P_GT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 0
PROGRAM_ERROR = 0
OTHERS = 0.
LOOP AT P_GT_FIELDCAT INTO WA_FIELDCAT.
l_tabix = sy-tabix.
CASE WA_FIELDCAT-FIELDNAME.
when 'OTYPE'.
WA_FIELDCAT-DDICTXT = 'L'.
when 'SOBID'.
WA_FIELDCAT-DDICTXT = 'L'.
WHEN 'STEXT'.
WA_FIELDCAT-DDICTXT = 'L'.
when 'PTYPE'.
WA_FIELDCAT-DDICTXT = 'L'.
when 'POBID'.
WA_FIELDCAT-DDICTXT = 'L'.
when 'PSHORT'.
WA_FIELDCAT-DDICTXT = 'L'.
WHEN 'PTEXT'.
WA_FIELDCAT-DDICTXT = 'L'.
WHEN 'QUALID'.
WA_FIELDCAT-DDICTXT = 'L'.
WHEN 'QUALSTXT'.
WA_FIELDCAT-DDICTXT = 'L'.
WHEN 'EXPBEGDA'.
WA_FIELDCAT-DDICTXT = 'L'.
WHEN 'EXPENDDA'.
WA_FIELDCAT-DDICTXT = 'L'.
WHEN 'ICON_S_EVENTS'.
IF P_H_EVENTS IS INITIAL.
WA_FIELDCAT-NO_OUT = 'X'.
else.
WA_FIELDCAT-DDICTXT = 'X'.
endif.
ENDCASE.
MODIFY P_GT_FIELDCAT FROM WA_FIELDCAT INDEX l_tabix.
ENDLOOP.
ENDFORM. " BUILD_FIELDCAT
*& Form ALV_LAYOUT
text
-->P_L_ALV_LAYOUT text
FORM ALV_LAYOUT USING P_ALV_LAYOUT TYPE slis_layout_alv.
build layout
P_LAYOUT-BOX_FIELDNAME = 'MARK_X'. "fieldname for checkbox
P_ALV_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
P_ALV_LAYOUT-BOX_TABNAME = ALV_OUTPUT. "tabname for checkbox
p_ALV_layout-info_fieldname = 'ALV_COLOR'.
ENDFORM. " ALV_LAYOUT
FORM eventtab_build USING
FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
MOVE 'TOP_OF_PAGE' TO LS_EVENT-NAME.
MOVE 'TOP_OF_PAGE' TO LS_EVENT-FORM.
APPEND LS_EVENT TO RT_EVENTS.
ENDFORM. "EVENTTAB_BUILD
*FORM TOP_OF_PAGE
FORM TOP_OF_PAGE. "#EC CALLED
NEW-PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_ALV_LIST_TOP_OF_LIST[].
ENDFORM. "TOP_OF_PAGE
FORM USER_COMMAND *
USER_COMMAND for the list of successor view *
--> r_ucomm *
--> rs_selfield *
FORM USER_COMMAND USING ALV_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD. "#EC CALLED
DATA: SELECTED_LINE LIKE HRPDV_expired_q.
DATA: SOBID_QUA LIKE P1000-OBJID.
DATA: LT_PERS_TAB LIKE HRSOBID OCCURS 0 WITH HEADER LINE.
CASE ALV_UCOMM.
WHEN '&IC1'. "per Doppelklick auswählen
READ TABLE ALV_OUTPUT INDEX
RS_SELFIELD-TABINDEX INTO SELECTED_LINE.
CASE RS_SELFIELD-FIELDNAME.
WHEN 'POTYPE' or 'POBID' or 'PTEXT' or 'OTYPE' or 'SOBID' or
'STEXT' or 'QUALID' or 'QUALSTXT' or 'EXPBEGDA' or 'EXPENDDA'.
READ TABLE ALV_OUTPUT INDEX RS_SELFIELD-TABINDEX INTO
Help_output.
IF SY-SUBRC <> 0.
MESSAGE S027. "Bitte gültige Zeile auswählen
EXIT.
Endif.
IF ALV_OUTPUT-SOBID IS INITIAL.
MESSAGE S015. "Zu den Eingaben wurden keine Daten gefunden
ELSE.
converte the variable because of the different types
SOBID_QUA = SELECTED_LINE-SOBID_QUA.
CALL FUNCTION 'RHPP_SHOW_PROFILE'
EXPORTING
PLVAR = pchplvar
OTYPE = SELECTED_LINE-PTYPE "XSC
OBJID = SELECTED_LINE-POBID "XSC
BEGDA = PCHBEGDA
ENDDA = PCHENDDA
MAINTAIN = ' '
EXCEPTIONS
NO_AUTHORITY = 1
NOT_FOUND = 2
OTHERS = 3.
CASE SY-SUBRC.
WHEN 0.
All right.
WHEN 1.
MESSAGE S015.
Zu Ihren Eingaben konnten keine Daten gefunden werden!
WHEN 2.
MESSAGE E000.
Dazu haben sie keine berechtigung!
WHEN OTHERS.
MESSAGE E008.
Es ist ein unvorhergesehener Fehler aufgetreten.
ENDCASE. "sy-subrc.
CLEAR ALV_OUTPUT.
ENDIF. "IF ALV_OUTPUT-SOBID IS INITIAL.
CLEAR ALV_OUTPUT-SOBID.
when 'ICON_S_EVENTS'.
IF SELECTED_LINE-ICON_S_EVENTS IS INITIAL.
MESSAGE S027. "Bitte gültige Zeile auswählen
EXIT.
ENDIF.
CLEAR LT_PERS_TAB.
REFRESH LT_PERS_TAB.
LT_PERS_TAB-PLVAR = pchPLVAR.
LT_PERS_TAB-OTYPE = SELECTED_LINE-PTYPE. "XSC
LT_PERS_TAB-SOBID = SELECTED_LINE-POBID. "XSC
APPEND LT_PERS_TAB.
SOBID_QUA = SELECTED_LINE-QUALID.
CALL FUNCTION 'RHPP_SHOW_SUGGEST_EVENTS'
EXPORTING
P_PLVAR = pchPLVAR
P_SOBID_QUA = SOBID_QUA
P_PROFCY_REQ = SELECTED_LINE-RATING_REQ
P_GDATE = sy-datum
TABLES
EVENT_TAB =
PERS_TAB = LT_PERS_TAB.
endcase.
CLEAR SELECTED_LINE.
ENDCASE. "case sy-ucomm
CLEAR SY-UCOMM.
ENDFORM. "USER_COMMANDPls be more specific in your question. If you want to include an extra field in your alv output, then read the field catalog table you created through "Reuse_alv_fieldcatalog_merge" and then add an extra entry in it giving the details of the field you want to add.. and then call the "resuse_alv_grid_display",
Hope this helps. To be able to help you in a better way, kindly revert with any specific issue.
Reward if helpful,
Karan -
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 -
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..
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 -
How to display LED lights in end of page of ALV(factory method)
Hello Experts,
How do I display the LED lights in my end-of-page(red, yellow and green).
Below is my code:
METHOD display_end_of_page.
CREATE OBJECT lcl_grid.
lv_string = text-t04.
lcl_label = lcl_grid->create_label(
row = 1
column = 1
text = lv_string
tooltip = lv_string ).
CLEAR lv_string.
lv_string = ICON_GREEN_LIGHT.
lcl_label = lcl_grid->create_label(
row = 2
column = 1
text = lv_string
tooltip = lv_string ).
lcl_label = lcl_grid->create_label(
row = 3
column = 1
text = lv_string
tooltip = lv_string ).
lcl_content = lcl_grid.
ENDMETHOD. "display_end_of_page
Hope you can help me guys.Thank you and take care!Hi,
Use this code for Demo
*& Report ZMDEMO_ALV_04
*&Make an Exception field ( = Traffic lights)
*&There can be defined a column in the grid for display of traffic lights. This field is of type Char 1, and can contain the following values:
*& 1 Red
*& 2 Yellow
*& 3 Green
*&The name of the traffic light field is supplied inh the gs_layout-excp_fname used by method set_table_for_first_display.
report zmdemo_alv_04.
tables: sflight.
type-pools: icon.
types: begin of ty_sflight.
include structure sflight.
types: traffic_light type c,
lights LIKE icon_xml_doc,
lights(4),
icon type icon-id.
types: end of ty_sflight.
G L O B A L I N T E R N A L T A B L E S
data: t_sflight type standard table of ty_sflight.
G L O B A L D A T A
data: ok_code like sy-ucomm,
wa_sflight type ty_sflight.
Declare reference variables to the ALV grid and the container
data:
go_grid type ref to cl_gui_alv_grid,
go_custom_container type ref to cl_gui_custom_container.
data:
t_fcat type lvc_t_fcat,
wa_layout type lvc_s_layo.
S T A R T - O F - S E L E C T I O N.
start-of-selection.
perform build_fieldcat.
perform build_layout.
set screen '100'.
*& Module USER_COMMAND_0100 INPUT
module user_command_0100 input.
case ok_code.
when 'EXIT'.
leave to screen 0.
endcase.
endmodule. " USER_COMMAND_0100 INPUT
*& Module STATUS_0100 OUTPUT
module status_0100 output.
Create objects
if go_custom_container is initial.
create object go_custom_container
exporting container_name = 'ALV_CONTAINER'.
create object go_grid
exporting
i_parent = go_custom_container.
perform load_data_into_grid.
endif.
endmodule. " STATUS_0100 OUTPUT
*& Form load_data_into_grid
form load_data_into_grid.
data l_light type c value '1'.
Read data from table SFLIGHT
select *
from sflight
into table t_sflight.
o
+ Condition placing to the traffic_light Field
LOOP AT t_sflight INTO wa_sflight.
wa_sflight-traffic_light = l_light.
MODIFY t_sflight FROM wa_sflight.
IF l_light = '3'.
l_light = '1'.
ELSE.
l_light = l_light + 1.
ENDIF.
ENDLOOP.
o
+ Setting the Icon based on the traffic_light field value.
LOOP AT t_sflight INTO wa_sflight.
CASE wa_sflight-traffic_light.
WHEN '1'.
wa_sflight-lights = icon_red_light.
WHEN '2'.
wa_sflight-lights = icon_yellow_light.
WHEN '3'.
wa_sflight-lights = icon_green_light.
ENDCASE.
MODIFY t_sflight FROM wa_sflight.
ENDLOOP.
loop at t_sflight into wa_sflight.
case l_light.
when '1'.
wa_sflight-lights = icon_red_light.
when '2'.
wa_sflight-lights = icon_yellow_light.
when '3'.
wa_sflight-lights = icon_green_light.
endcase.
if l_light = '3'.
l_light = '1'.
else.
l_light = l_light + 1.
endif.
modify t_sflight from wa_sflight.
endloop.
Load data into the grid and display them
call method go_grid->set_table_for_first_display
exporting
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
i_structure_name = 'SFLIGHT'
IS_VARIANT =
i_save = 'A'
I_DEFAULT = 'X'
is_layout = wa_layout
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
IR_SALV_ADAPTER =
changing
it_outtab = t_sflight[]
it_fieldcatalog = t_fcat
IT_SORT =
IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4
endform. " load_data_into_grid
*& Form build_fieldcat
text
--> p1 text
<-- p2 text
form build_fieldcat .
data: w_fcat type lvc_s_fcat.
define macro_fcat.
w_fcat-fieldname = &1.
w_fcat-col_pos = &2.
w_fcat-coltext = &3.
append w_fcat to t_fcat.
clear w_fcat.
end-of-definition.
macro_fcat 'CARRID' 1 text-c01 .
macro_fcat 'CONNID' 2 text-c02 .
macro_fcat 'FLDATE' 3 text-c03 .
macro_fcat 'PRICE' 4 text-c04 .
macro_fcat 'SEATSMAX' 5 text-c05 .
macro_fcat 'SEATSOCC' 6 text-c06 .
macro_fcat 'LIGHTS' 7 text-c07 .
endform. " build_fieldcat
*& Form build_layout
text
--> p1 text
<-- p2 text
form build_layout .
wa_layout-cwidth_opt = 'X'.
wa_layout-excp_fname = 'TRAFFIC_LIGHT'.
wa_layout-excp_group = '1'.
endform. " build_layout
Regards,
Dhruv Shah -
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
Maybe you are looking for
-
Spark Video Player path problem
Hi, I am trying to play a flv video in my flex application.I tried to put the video file in local packages (asset, video subpages..etc), but i did not work at all. When I put the video into root folder, which is called "src" by default and also in my
-
FM to start IE (google maps) in separate window ?
Hello experts, is there a fm or something in order to start the internet explorer in separat window so that I can give this ie-window parameters for geodate google-maps ? Has anybody experience in this ? Thanks for help, Gerd
-
Flash Button Symbol with As3 - Relevant or not!
I see no point of using Buttons symbols anymore as i script in AS3 using MovieClips and instance name. Simple question: can we send Button Symbols in the limbs? Thanks for answering this easy one, maybe not so easy after all....
-
Any way to convert HD mov clip taken from iphone4?
HD clips taken from iPhone4 is taking quite a lot of space in my computer. Is there any program out there good for converting these mov clips to smaller size but SAME resolution movie? Maybe to other video format? Like those full bluray videos get co
-
Running OS 10.4.9 I am so angry. When did Adobe get like MicroSoft? I got the extension to convert GL to DW. It stalls right near the end, and tells me, on two separate warning boxes, that an ".ibi" file cannot be copied. The process locks up GL for