|
With Compliments by: Ulhas
Sonawane
report zus_alv_demo_grid . tables: ekko. type-pools: slis. 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, line_color(4) type c, "Used to store row color 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. * Data declaration for EVENT and PRINT PARAMETER. data: gt_events type slis_t_event, gd_prntparams type slis_print_alv. * data declaration for sorting. data : it_sortcat type slis_sortinfo_alv occurs 1, wa_sort like line of it_sortcat. data : i_list_comments type slis_t_listheader. start-of-selection. perform data_retrieval. * perform user_command. perform build_fieldcatalog. perform build_layout. perform build_events. perform build_print_params. perform build_sortcat. perform display_alv_report. end-of-selection. *TOP-OF-PAGE. * PERFORM top-of-page. end-of-page. *&---------------------------------------------------------- *& Form build_fieldcatalog *&---------------------------------------------------------- * text *----------------------------------------------------------- * --> p1 text * <-- p2 text *----------------------------------------------------------- form build_fieldcatalog. fieldcatalog-fieldname = 'EBELN'. fieldcatalog-seltext_m = 'Purchase Order'. fieldcatalog-col_pos = 0. fieldcatalog-outputlen = 10. fieldcatalog-emphasize = '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. fieldcatalog-do_sum = 'X'. 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-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 *&---------------------------------------------------------- * text *----------------------------------------------------------- * --> p1 text * <-- p2 text *----------------------------------------------------------- form build_layout. gd_layout-no_input = 'X'. gd_layout-colwidth_optimize = 'X'. gd_layout-totals_text = 'Totals'(201). * Set layout field for row attributes(i.e. color) gd_layout-info_fieldname = 'LINE_COLOR'. * gd_layout-totals_only = 'X'. * gd_layout-f2code = 'DISP'. "Sets fcode for *when double * "click(press f2)* * gd_layout-group_change_edit = 'X'. * gd_layout-header_text = 'helllllo'. endform. " build_layout *&---------------------------------------------------------- *& Form data_retrieval *&---------------------------------------------------------- * text *----------------------------------------------------------- * --> p1 text * <-- p2 text *----------------------------------------------------------- form data_retrieval. data: ld_color(1) type c. select ebeln ebelp statu aedat matnr menge meins netpr peinh from ekpo into table it_ekko. *Populate field with color attributes loop at it_ekko into wa_ekko. * Populate color variable with colour properties * Char 1 = C (This is a color property) * Char 2 = 3 (Color codes: 1 - 7) * Char 3 = Intensified on/off ( 1 or 0 ) * Char 4 = Inverse display on/off ( 1 or 0 ) * i.e. wa_ekko-line_color = 'C410' ld_color = ld_color + 1. * Only 7 colours so need to reset color value if ld_color = 8. ld_color = 1. endif. concatenate 'C' ld_color '10' into wa_ekko-line_color. * wa_ekko-line_color = 'C410'. modify it_ekko from wa_ekko. endloop. endform. " data_retrieval *&---------------------------------------------------------- *& Form display_alv_report *&---------------------------------------------------------- * text *----------------------------------------------------------- * --> p1 text * <-- p2 text *----------------------------------------------------------- form display_alv_report. gd_repid = sy-repid. call function 'REUSE_ALV_GRID_DISPLAY' exporting i_callback_program = gd_repid is_layout = gd_layout i_callback_top_of_page = 'TOP-OF-PAGE' i_callback_user_command = 'USER_COMMAND' i_callback_pf_status_set = 'SET_PF_STATUS' it_event = gt_events is_print = gd_prntparams it_fieldcat = fieldcatalog[] it_sort = it_sortcat i_save = 'X' 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 user_command *&---------------------------------------------------------- * text *----------------------------------------------------------- * --> p1 text * <-- p2 text *----------------------------------------------------------- *&---------------------------------------------------------- *& Form top-of-page *&---------------------------------------------------------- * text *----------------------------------------------------------- * --> p1 text * <-- p2 text *----------------------------------------------------------- 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 = 'GANESH_LOGO'. endform. " top-of-page *---------------------------------------------------------------------* * FORM user_command * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> R_UCOMM * * --> RS_SELFIELD * *---------------------------------------------------------------------* form user_command using r_ucomm like sy-ucomm rs_selfield type slis_selfield. case r_ucomm. when '&IC1'. if rs_selfield-fieldname = 'EBELN'. read table it_ekko into wa_ekko index rs_selfield-tabindex. set parameter id 'BES' field wa_ekko-ebeln. call transaction 'ME23N' and skip first screen. endif. when 'ULHAS'. if rs_selfield-fieldname = 'EBELN'. read table it_ekko into wa_ekko index rs_selfield-tabindex. set parameter id 'BES' field wa_ekko-ebeln. call transaction 'ME23N' and skip first screen. endif. endcase. endform. *---------------------------------------------------------------------* * FORM set_pf_status * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> RT_EXTAB * *---------------------------------------------------------------------* form set_pf_status using rt_extab type slis_t_extab. set pf-status 'ZNEWSTATUS'. endform. *&---------------------------------------------------------------------* *& Form build_events *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* 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. " build_events *&---------------------------------------------------------------------* *& Form build_print_params *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* 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. *&---------------------------------------------------------------------* *& Form build_sortcat *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form build_sortcat. wa_sort-spos = 1. wa_sort-fieldname = 'EBELN'. append wa_sort to it_sortcat. wa_sort-spos = 2. wa_sort-fieldname = 'EBELP'. append wa_sort to it_sortcat. endform. " build_sortcat |
|
Related ABAP Topics:
Get help for your ABAP problems
More ABAP Tips
BDC Programming Tips - Sapscripts Tips - Smartforms Tips SAP Basis, ABAP Programming and Other IMG Stuff http://www.erpgreat.com All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
|