Abstract

:
What if you could reformat a standard ABAP list as easily as a Microsoft Excel spreadsheet? Many R/3 users are not aware that the report development using ABAP List Viewer(ALV), which comes standard with R/3(since version 4.5X), lets you come very close to doing just that. Unlike a standard ABAP list, ALV provides the end-user the flexibility to individually customize the data output. Many traditional developers are under the impression that ALV is a complicated and difficult tool to understand and use until they started using. It really saves lot of time and system resources. This document is intended for the users who want to quickly convert ABAP lists to ALV format. A template was provided as a part of this paper which can be used to considerably reduce the amount of time to less than 30 minutes to convert each ABAP list to ALV format. However there are some restrictions that are outlined in this paper. Using this template, you can also run ALV reports in the background unlike the standard examples provided by SAP with the only exception that you will not have all ALV features like sorting are available from spool.

About the author
Kasi Murthy is a senior ABAP consultant working with Tata Consultancy Services (TCS), India. Kasi has over 8 years of SAP R/3 experience specializing in ABAP development. Kasi has spent last 5 years managing SAP R/3 offshore onsite development projects successfully. He can be reached at kasi.murthy@tcs.com for any clarifications about this white paper.

What does ALV do for you?
ALV Grid Control is SAP’s graphical list-viewing tool and is similar in look and feel to Microsoft Excel. ALV’s broad functionality lets you emphasize, hide, and reformat list items; add graphic elements; and generally make any ABAP list display a more powerful communications tool. ALV functionality lets users: Apply typical list functions like summing, sorting and filtering without extra programming effort. Add response to user action by clicking on display line Define and save custom output settings both at user level and global level. Export list to other applications like excel. Create totals and sub-totals without additional programming effort. Create and share output templates. SAP provides a set of ALV function modules that can be used to output a report. This set of ALV functions is used to enhance the readability and functionality of any report output. Cases arise in sap when the output of a report contains columns extending more than 255 characters in length. In such cases, this set of ALV functions can help choose selected columns and arrange the different columns from a report output and also save different variants for report display. This is a very efficient tool for dynamically sorting and arranging the columns from a report output. The report output can contain up to 90 columns in the display with the wide array of display options. The standard system provides functions that allow the user to sort, filter, and sum data in tables. Depending on the application, the ALV Grid Control includes additional application-specific functions and hides functions available in the standard system. The SAP List Viewer (ALV) standardizes the use of lists in the SAP System.

The commonly used ALV functions used for this purpose are; 1. REUSE_ALV_VARIANT_DEFAULT_GET 2. REUSE_ALV_VARIANT_F4 3. REUSE_ALV_VARIANT_EXISTENCE 4. REUSE_ALV_EVENTS_GET 5. REUSE_ALV_COMMENTARY_WRITE 6. REUSE_ALV_FIELDCATALOG_MERGE 7. REUSE_ALV_LIST_DISPLAY 8. REUSE_ALV_GRID_DISPLAY 9. REUSE_ALV_POPUP_TO_SELECT

How you call this function in your report?
After completion of all the data fetching from the database and append this data into an Internal Table. Say I_ITAB. Then use following function module.

Below you can find guidelines for implementing hierarchical-sequential lists. Note: Matrices could not be replaced by ALV. look at transaction LIBS and reuse library transaction SE83. SY-SUBRC . keep in mind the above constraints and check whether you list type can be built by ALV. But check first whether you can present your data by a linear list type. IF SY-SUBRC <> 0.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = 'PROGRAM NAME' I_STRUCTURE_NAME = 'I_ITAB' I_DEFAULT = 'X' I_SAVE = 'A' TABLES T_OUTTAB = I_ITAB. ENDFORM. TIPS: For a description of some examples about ALV components. which will follow one below the other or are distributed onto several screens (a tab strip come in handy). " GET_FINAL_DATA Restrictions of using ALV: Not all existing lists can be replaced by ALV components. But keep in mind that there is an alternative solution to this presentation problem: You may also split the list into several simple lists. WRITE: 'SY-SUBRC: '. see development class SLIS. . ENDIF. one for each group. Only Single-line and multiple-line lists should be replaced by ALV. The SAP program BALVBT01 provides an example of displaying multiple ALV LIST reports on one page Single-line and multiple-line lists can be replaced by ALV. Hierarchical-sequential lists could be replaced by ALV lists. For practical examples of the ALV Grid Control. Hierarchical-sequential lists could be replaced by ALV lists but recommended to check if it can be presented in multiple linear lists which will follow one below the other or are distributed onto several screens. So.

vstel LIKE vbrp-vstel. REPORT ZSROP200 NO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 65 MESSAGE-ID zi.Template Program: Below given template program can be used to convert existing lists to ALV format. * Display data * This is the internal table which will be passed on to ALV function module to display data. i_event_exit TYPE slis_t_event_exit. matkl LIKE vbrp-matkl. i_events TYPE slis_t_event. *----------------------------------------------------------------------* *----------------------------------------------------------------------* TABLES: vbrp. i_excluding TYPE slis_t_extab. meins LIKE vbrp-meins. *-------------------------------* Global Types *-------------------------------TYPE-POOLS: slis. fkimg LIKE vbrp-fkimg. Replace this with your internal table. "Billing document posnr LIKE vbrp-posnr. . *-------------------------------* Global Internal Tables *-------------------------------DATA: i_fieldcat_alv TYPE slis_t_fieldcat_alv. Please see my comments in BLUE in the logic. werks LIKE vbrp-werks. DATA: BEGIN OF i_data OCCURS 0. ONLY PORTIONS OF THE CODE HIGHLIGHTED IN BLUE need to be replaced with your requirements. arktx LIKE vbrp-arktx. Copy the program into ABAP editor and change as per your requirement. vbeln LIKE vbrp-vbeln. matnr LIKE vbrp-matnr. This program is a sample program which will display invoice line item details when you provide billing document numbers. i_list_comments TYPE slis_t_listheader.

w_html_top_of_page TYPE slis_formname. oic_truckn LIKE vbrp-oic_truckn. oignrule LIKE vbrp-oignrule. kvgr3 LIKE vbrp-kvgr3. DATA: END OF ivbrp. vkgrp LIKE vbrp-vkgrp. kzwi1 LIKE vbrp-kzwi1. vbelv LIKE vbrp-vbelv. ktgrm LIKE vbrp-ktgrm. wx_variant LIKE disvariant. vgbel LIKE vbrp-vgbel. aubel LIKE vbrp-aubel. w_layout TYPE slis_layout_alv. w_fieldcat_alv LIKE LINE OF i_fieldcat_alv. mvgr2 LIKE vbrp-mvgr2. w_events LIKE LINE OF i_events. fbuda LIKE vbrp-fbuda. INCLUDE STRUCTURE vbrp. w_variant_save(1) TYPE c. w_callback_ucomm TYPE slis_formname.lgort LIKE vbrp-lgort. . *-------------------------------* Global Variables *-------------------------------DATA: w_variant LIKE disvariant. END OF i_data. vkbur LIKE vbrp-vkbur. w_excluding LIKE LINE OF i_excluding. prsdt LIKE vbrp-prsdt. oid_extbol LIKE vbrp-oid_extbol. oic_ptrip LIKE vbrp-oic_ptrip. w_print TYPE slis_print_alv. w_exit(1) TYPE c. w_repid LIKE sy-repid. w_user_specific(1) TYPE c. DATA: BEGIN OF ivbrp OCCURS 0. kvgr4 LIKE vbrp-kvgr4. kvgr2 LIKE vbrp-kvgr2. oic_mot LIKE vbrp-oic_mot. kondm LIKE vbrp-kondm. *Internal table for data selection specific to this program. txjcd LIKE vbrp-txjcd.

w_list_comments LIKE LINE OF i_list_comments. DATA: erdat(10) TYPE c. DATA: time(8) TYPE c. SELECTION-SCREEN BEGIN OF BLOCK blk_params WITH FRAME TITLE textf03. PARAMETERS p_grid RADIOBUTTON GROUP rb01 DEFAULT 'X'. SELECTION-SCREEN COMMENT (31) text-pe1 FOR FIELD p_grid . SELECTION-SCREEN BEGIN OF LINE. SELECT-OPTIONS: s_vbeln FOR vbrp-vbeln. SELECTION-SCREEN POSITION 40. SELECTION-SCREEN END OF BLOCK selection. SELECTION-SCREEN BEGIN OF BLOCK selection1 WITH FRAME TITLE text-f02. SELECTION-SCREEN END OF BLOCK selection1. SELECTION-SCREEN SKIP 1. SELECTION-SCREEN COMMENT (17) text-pe2 .w_event_exit LIKE LINE OF i_event_exit. PARAMETERS: p_vari LIKE disvariant-variant. *-------------------------------* Global Constants *-------------------------------*constants: *-------------------------------* Selection Screen – replace selection screen in BLUE per your requirement *-------------------------------SELECTION-SCREEN BEGIN OF BLOCK selection WITH FRAME TITLE text-f01. DATA: counter TYPE i. SELECTION-SCREEN SKIP.

PARAMETERS p_html AS CHECKBOX DEFAULT 'X'. . SELECTION-SCREEN END OF BLOCK blk_params. *-------------------------------* Initialization *-------------------------------INITIALIZATION. SELECTION-SCREEN SKIP 1. PARAMETERS: p_list RADIOBUTTON GROUP rb01.FOR FIELD p_html . PERFORM event_build. *-------------------------------* At Selection Screen *-------------------------------AT SELECTION-SCREEN. *-------------------------------* At Selection Screen PBO *-------------------------------AT SELECTION-SCREEN OUTPUT. PERFORM variant_default USING p_vari. PERFORM event_exit_build. *---------------------------------* At Selection Screen Value Request *---------------------------------AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari. PERFORM init_variant. SELECTION-SCREEN END OF LINE. PERFORM fieldcat_build. PERFORM variant_fill. *-------------------------------* Start of Selection *-------------------------------START-OF-SELECTION. PERFORM variant_f4 USING p_vari. PERFORM get_data. END-OF-SELECTION.

PERFORM exclude_build. write: /001 sy-vline. *-------------------------------* At User Command *-------------------------------*AT USER-COMMAND. *---------------------------------------------------------------------* Forms *---------------------------------------------------------------------*&---------------------------------------------------------------------* *& Form variant_f4 *&---------------------------------------------------------------------* FORM variant_f4 USING p_variant. *-------------------------------* Macros *-------------------------------DEFINE skip_1. CALL FUNCTION 'LVC_VARIANT_F4' EXPORTING is_variant = w_variant i_save = w_variant_save IMPORTING e_exit = w_exit . *-------------------------------* At Line Selection *-------------------------------*AT LINE-SELECTION. *-------------------------------* Top of Page *-------------------------------TOP-OF-PAGE. PERFORM display_data. *-------------------------------* Top of Page During Line Sel *-------------------------------TOP-OF-PAGE DURING LINE-SELECTION. END-OF-DEFINITION. PERFORM layout_build. PERFORM print_build. at sy-linsz sy-vline.

IF sy-subrc <> 0. *&---------------------------------------------------------------------* *& Form init_variant *&---------------------------------------------------------------------* FORM init_variant. CALL FUNCTION 'LVC_VARIANT_DEFAULT_GET' EXPORTING i_save = w_variant_save CHANGING cs_variant = wx_variant EXCEPTIONS wrong_input = 1 . IF w_exit IS INITIAL. ENDFORM. MESSAGE i000(zz) WITH text-g01. w_variant-report = w_repid. "All types ENDFORM. wx_variant-variant = p_variant. ENDIF.es_variant = wx_variant EXCEPTIONS not_found = 1 program_error = 2 OTHERS = 3. w_variant-variant = wx_variant-variant. *&---------------------------------------------------------------------* *& Form variant_default *&---------------------------------------------------------------------* FORM variant_default USING p_variant. CLEAR: w_variant. p_variant = wx_variant-variant. wx_variant = w_variant. ENDIF. IF NOT p_variant IS INITIAL. ENDIF. w_variant_save = 'A'. w_repid = sy-repid. w_variant-username = sy-uname.

WHEN 2. MESSAGE e124(zi) WITH text-g02. IF p_vari IS INITIAL. WHEN 0. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' . *&---------------------------------------------------------------------* *& Form variant_fill *&---------------------------------------------------------------------* FORM variant_fill. CALL FUNCTION 'LVC_VARIANT_EXISTENCE_CHECK' EXPORTING i_save = w_variant_save CHANGING cs_variant = w_variant EXCEPTIONS OTHERS = 01. p_variant = wx_variant-variant. ENDCASE. ELSE. ENDFORM. ENDIF. ENDFORM. ENDIF. w_variant-variant = 'STANDARD'. CASE sy-subrc. w_variant-report = w_repid. w_variant-variant = p_vari.not_found = 2 program_error = 3 OTHERS = 4. *&---------------------------------------------------------------------* *& Form fieldcat_build *&---------------------------------------------------------------------* FORM fieldcat_build. CLEAR: w_variant. IF sy-subrc NE 0. CLEAR: p_variant. w_variant-report = w_repid.

w_fieldcat_alv-no_out = 'X'. WHEN 'OIC_TRUCKN'. WHEN 'KVGR3'. WHEN 'OIGNRULE'. w_fieldcat_alv-no_out = 'X'. WHEN 'MVGR2'. CASE w_fieldcat_alv-fieldname.* EXPORTING i_program_name = w_repid i_structure_name = 'TRDIR' i_internal_tabname = 'I_DATA' i_inclname = w_repid CHANGING ct_fieldcat = i_fieldcat_alv. WHEN 'VBELN'. w_fieldcat_alv-hotspot = 'X'. w_fieldcat_alv-no_out = 'X'. WHEN 'KZWI1'. . WHEN 'KVGR4'. w_fieldcat_alv-no_out = 'X'. w_fieldcat_alv-seltext_l = 'Gross Value'. * Modify displayed fields * You can hide fields. w_fieldcat_alv-no_out = 'X'. WHEN 'VBELV'. change heading description. w_fieldcat_alv-no_out = 'X'. WHEN 'VSTEL'. WHEN 'KVGR2'. w_fieldcat_alv-no_out = 'X'. put hotspots etc in this step. w_fieldcat_alv-no_out = 'X'. LOOP AT i_fieldcat_alv INTO w_fieldcat_alv. w_fieldcat_alv-no_out = 'X'. w_fieldcat_alv-no_out = 'X'. WHEN 'OIC_PTRIP'.

w_html_top_of_page = 'HTML_TOP_OF_PAGE'. w_fieldcat_alv-seltext_l = 'Gross Value'. w_callback_ucomm = 'CALLBACK_UCOMM'. ENDLOOP.WHEN 'OID_EXTBOL'. WHEN OTHERS. MODIFY i_fieldcat_alv FROM w_fieldcat_alv. ENDFORM. *&---------------------------------------------------------------------* *& Form display_data *&---------------------------------------------------------------------* FORM display_data. IF p_html = 'X'. ENDCASE. w_fieldcat_alv-no_out = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_background_id = 'SIWB_WALLPAPER' i_background_id = 'SIWB_WALLPAPER' i_callback_program = w_repid i_callback_html_top_of_page = w_html_top_of_page i_structure_name = 'TRDIR' i_default = 'X' i_save = 'A' is_variant = w_variant is_layout = w_layout i_callback_user_command = w_callback_ucomm it_fieldcat = i_fieldcat_alv it_events = i_events it_event_exit = i_event_exit it_excluding = i_excluding is_print = w_print i_screen_start_column =1 i_screen_start_line =1 i_screen_end_column = 70 * * * * * . ENDIF. CASE 'X'. WHEN p_grid.

ENDFORM. WHEN '&IC1'. ENDCASE. CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN. WHEN OTHERS. CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING . *&---------------------------------------------------------------------* *& Form get_data *&---------------------------------------------------------------------* FORM get_data. Replace with your Tcode and parameter id SET PARAMETER ID 'VF' FIELD rs_selfield-value. ENDCASE. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_background_id = 'ALV_BACKGROUND' i_callback_program = w_repid i_default = 'X' i_save = 'A' is_variant = w_variant is_layout = w_layout i_callback_user_command = w_callback_ucomm it_fieldcat = i_fieldcat_alv it_events = i_events it_event_exit = i_event_exit is_print = w_print TABLES t_outtab = i_data. ENDFORM.* i_screen_end_line = 30 TABLES t_outtab = i_data. CASE r_ucomm. *Interactive list. WHEN p_list. *---------------------------------------------------------------------* * FORM user_command * *---------------------------------------------------------------------* FORM callback_ucomm USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.

ivbrp-meins TO i_data-meins. ivbrp-prsdt TO i_data-prsdt. ivbrp-oignrule TO i_data-oignrule. REFRESH i_data. *Replace below logic with your report logic REFRESH ivbrp.text = text-pg1. ivbrp-kzwi1 TO i_data-kzwi1. ivbrp-kondm TO i_data-kondm. ivbrp-ktgrm TO i_data-ktgrm. ivbrp-lgort TO i_data-lgort. SELECT vbeln posnr fkimg meins prsdt fbuda netwr vbelv vgbel aubel matnr arktx matkl werks lgort kondm mvgr2 vstel ktgrm vkgrp vkbur kvgr2 kvgr3 kvgr4 kzwi1 txjcd oid_extbol oic_truckn oic_ptrip oignrule FROM vbrp INTO CORRESPONDING FIELDS OF TABLE ivbrp WHERE vbeln IN s_vbeln. LOOP AT ivbrp. ivbrp-fbuda TO i_data-fbuda. ivbrp-oid_extbol TO i_data-oid_extbol. ivbrp-vgbel TO i_data-vgbel. CLEAR counter. ivbrp-vbelv TO i_data-vbelv. ivbrp-aubel TO i_data-aubel. MOVE: ivbrp-vbeln TO i_data-vbeln. ivbrp-kvgr3 TO i_data-kvgr3. ivbrp-kvgr2 TO i_data-kvgr2. ivbrp-matkl TO i_data-matkl. ivbrp-mvgr2 TO i_data-mvgr2. ivbrp-posnr TO i_data-posnr. ivbrp-mvgr2 TO i_data-mvgr2. . ivbrp-arktx TO i_data-arktx. ivbrp-vkgrp TO i_data-vkgrp. ivbrp-matnr TO i_data-matnr. ivbrp-werks TO i_data-werks. ivbrp-txjcd TO i_data-txjcd. ivbrp-vstel TO i_data-vstel. ivbrp-kvgr4 TO i_data-kvgr4. ivbrp-fkimg TO i_data-fkimg.

S=Selection. APPEND w_list_comments TO i_list_comments. " H = Header. ENDFORM. counter = sy-tabix.ivbrp-oic_ptrip TO i_data-oic_ptrip. w_list_comments-typ = 'H'. *&---------------------------------------------------------------------* *& Form event_build *&---------------------------------------------------------------------* FORM event_build. “Replace desc APPEND w_list_comments TO i_list_comments. S=Selection. w_list_comments-typ = 'A'. APPEND w_list_comments TO i_list_comments. ivbrp-oic_truckn TO i_data-oic_truckn. A=Action w_list_comments-key = ''. w_list_comments-info = 'Begin of list'. ENDFORM. w_list_comments-info = 'Material Valuation'. READ TABLE i_events WITH KEY name = slis_ev_top_of_page INTO w_events. * CLEAR: i_list_comments[]. "H=Header. "H=Header. A = Action w_list_comments-key = ''. CALL FUNCTION 'REUSE_ALV_EVENTS_GET' EXPORTING i_list_type = 0 IMPORTING et_events = i_events. IF sy-subrc = 0. *---------------------------------------------------------------------* * FORM ALV_TOP_OF_PAGE *---------------------------------------------------------------------* FORM alv_top_of_page. ENDLOOP. . APPEND i_data. S = Selection. MOVE 'ALV_TOP_OF_PAGE' TO w_events-form. w_list_comments-info = sy-datum. w_list_comments-typ = 'A'. A=Action w_list_comments-key = ''.

CLEAR: i_list_comments[]. ENDFORM. "H = Header. IF sy-subrc = 0. APPEND w_list_comments TO i_list_comments. MODIFY i_events FROM w_events INDEX sy-tabix. w_list_comments-info = 'End of list'. A = Action w_list_comments-key = ''. *---------------------------------------------------------------------* * FORM alv_end_of_list * *---------------------------------------------------------------------* FORM alv_end_of_list. MOVE 'ALV_END_OF_PAGE' TO w_events-form. S = Selection. ENDIF. ENDFORM.MODIFY i_events FROM w_events INDEX sy-tabix. w_list_comments-typ = 'A'. *---------------------------------------------------------------------* * FORM alv_end_of_page * *---------------------------------------------------------------------* FORM alv_end_of_page. READ TABLE i_events WITH KEY name = slis_ev_end_of_page INTO w_events. ENDFORM. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = i_list_comments i_logo = 'ZMYOBJECTKEY' i_end_of_list_grid = 'X'. ENDIF. READ TABLE i_events WITH KEY name = slis_ev_end_of_list INTO w_events. MOVE 'ALV_END_OF_LIST' TO w_events-form. ENDIF. IF sy-subrc = 0. MODIFY i_events FROM w_events INDEX sy-tabix. *&---------------------------------------------------------------------* .

w_event_exit-before = ' '. s_table TYPE REF TO cl_dd_table_element. w_layout-detail_titlebar = 'Detail Title Bar'. w_layout-colwidth_optimize = 'X'. *&---------------------------------------------------------------------* *& Form layout_build *&---------------------------------------------------------------------* FORM layout_build. ENDFORM. w_layout-detail_initial_lines = 'X'. w_event_exit-after = 'X'. DATA: text TYPE sdydo_text_element. ENDFORM. . *&---------------------------------------------------------------------* *& Form event_exit_build *&---------------------------------------------------------------------* FORM event_exit_build. w_print-no_print_listinfos = 'X'. ENDFORM. w_layout-detail_popup = 'X'. CLEAR: i_event_exit[]. * Pick w_event_exit-ucomm = '&ETA'. *---------------------------------------------------------------------* * FORM HTML_TOP_OF_PAGE * *---------------------------------------------------------------------* FORM html_top_of_page USING r_top TYPE REF TO cl_dd_document. w_layout-zebra = 'X'. a_logo TYPE REF TO cl_dd_area. col_info TYPE REF TO cl_dd_area. col_key TYPE REF TO cl_dd_area.*& Form print_build *&---------------------------------------------------------------------* FORM print_build. APPEND w_event_exit TO i_event_exit. w_layout-no_vline = 'X'.

CALL METHOD col_info->add_text EXPORTING text = text sap_style = 'Key'. . text = 'Report Executed on'. CALL METHOD r_top->new_line. CALL METHOD r_top->add_table EXPORTING no_of_columns = 2 with_heading = ' ' border = '1' IMPORTING table = s_table. CALL METHOD r_top->new_line. CALL METHOD s_table->add_column IMPORTING column = col_key. ************************************************************** CALL METHOD s_table->new_row. text = 'Report Executed by'. text = sy-uname. CALL METHOD col_info->add_gap EXPORTING width = 7.* Split TOP-Document CALL METHOD r_top->vertical_split EXPORTING split_area = r_top split_width = '99%' IMPORTING right_area = a_logo. . CALL METHOD col_key->add_text EXPORTING text = text sap_emphasis = 'Strong'. CALL METHOD col_key->add_text EXPORTING text = text sap_emphasis = 'Strong'. CALL METHOD s_table->add_column IMPORTING column = col_info. * Fill TOP-Document CALL METHOD r_top->add_text EXPORTING text = 'Invoice Analysis: Line Item Details' sap_style = 'HEADING'. CALL METHOD col_info->add_gap EXPORTING width = 6.

DATA: min(2) TYPE c. ************************************************************* CALL METHOD s_table->new_row. *************************************************************** CALL METHOD s_table->new_row. DATA: sec(2) TYPE c. DATA: month(2) TYPE c. text = time . of Records' . text = counter. month = sy-datlo+4(2). sec = sy-timlo+4(2). min = sy-timlo+2(2). CALL METHOD col_key->add_text EXPORTING text = text sap_emphasis = 'Strong'. text = erdat. CONCATENATE month'/' date'/' year INTO erdat. CALL METHOD col_info->add_text EXPORTING text = text sap_style = 'Success'. DATA: date(2) TYPE c. CALL METHOD col_info->add_gap EXPORTING width = 6. CALL METHOD col_info->add_gap EXPORTING width = 6. CALL METHOD col_info->add_text EXPORTING text = text. text = 'Time' .DATA: year(4) TYPE c. date = sy-datlo+6(2). . DATA: hour(2) TYPE c. year = sy-datlo(4). text = 'No. CALL METHOD col_key->add_text EXPORTING text = text sap_emphasis = 'Strong'. hour = sy-timlo(2). CONCATENATE hour':' min ':' sec INTO time.

w_excluding = '&GRAPH'. It helps you turn data into information so you can be more effective. on the fly. ENDFORM. ENDFORM. ************************************************************** CALL METHOD s_table->new_row. "Graphic APPEND w_excluding TO i_excluding. text = 'Double-Click on the material number for material details'. It lets you create information faster. CALL METHOD r_top->add_text EXPORTING text = text sap_emphasis = 'EMPHASIS'. SAP has added a powerful and extremely useful tool that is easy to learn and use. CALL METHOD r_top->new_line. .CALL METHOD col_info->add_text EXPORTING text = text. and without tying up your organization’s IT resources. CALL METHOD r_top->add_text EXPORTING text = text sap_emphasis = 'EMPHASIS'. " exclude_build Conclusion… With the inclusion of ALV in version 4.5X and later. *&---------------------------------------------------------------------* *& Form exclude_build *&---------------------------------------------------------------------* FORM exclude_build. CALL METHOD r_top->new_line. text = 'Local date and time are shown above'. ************************************************************** CALL METHOD s_table->new_row.