Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

abap list viewer (alv)


Published on

  • Be the first to comment

  • Be the first to like this

abap list viewer (alv)

  1. 1. ABAP List Viewer(ALV)
  2. 2. ALV •ABAP List Viewer (ALV) is a simple, user friendly and better looking reporting tool as compared to the usage of write statements in a conventional / interactive report.
  3. 3. Advantages of ALV •Better Looking •User friendly – Filtering / Sorting – Layout Change / Save – Summation, Download to excel, E-Mail – Data can be open for input / change etc. •Better Event handling •Width of more than 256 characters possible •Programming overhead of mentioning exact positions in write statements not needed.
  4. 4. ALV Features Sorting, Filtering Row(s) Selection Email, Excel Change / Save Layout Additiona l Buttons Heading
  5. 5. ALV Features Fields Open For Input Bar Charts
  6. 6. ALV Programming •Two Approaches – Conventional (Using Standard Function Modules) – Object Oriented (Using Standard Classes and Methods) We will concentrate on the conventional approach
  8. 8. ALV Function Modules•Both REUSE_ALV_LIST_DISPLAY and REUSE_ALV_GRID_DISPLAY have similar parameters •Both Display the contents of an internal table passed by the parameter T_OUTTAB
  9. 9. ALV Function Modules: Parameters •Important Parameters – I_CALLBACK_PROGRAM • The program that contains the subroutine for user command handling • The program that will be the reference for user specific layout variants • SY-CPROG in most cases – I_CALLBACK_PF_STATUS_SET • The subroutine name that will set the PF-STATUS (which in turn may contain user defined buttons) – I_CALLBACK_USER_COMMAND • The subroutine name in the calling program that will be triggered on any user command
  10. 10. ALV Function Modules: Parameters •Important Parameters – I_STRUCTURE_NAME • The type of the internal table to be displayed – I_GRID_TITLE • The Heading / Title of the GRID – IS_LAYOUT • Defines the layout in which the internal table will be displayed • Layout specific Features like Optimize Column Width, Window Title Bar, No Summing Up, colors etc. are defined here – IT_FIELDCAT • Defines the properties of individual fields (columns) of the internal table to be displayed • Field specific features like Editable / Non Editable, Heading, Column Position, Left / Right Justification etc. are defined here
  11. 11. ALV Function Modules: Parameters •Important Parameters – IT_EXCLUDING • The Buttons / Function codes that need to be disabled – I_SAVE • Whether Users should be able to save layout variants of their choice – IT_EVENTS • The various which need to be trapped and dealt with
  12. 12. Simple Programs Walkthrough •Populate the internal table with the contents to be displayed and call the function module. Data: i_sflight type standard table of sflight initial size 0 with header line. Select * from sflight into table i_sflight. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = sy-cprog I_STRUCTURE_NAME = 'SFLIGHT' TABLES T_OUTTAB = i_sflight.
  13. 13. Result
  14. 14. Simple Programs Walkthrough •Saving Layout Variants (Order of Columns, Hiding Specific Columns etc.) I_SAVE = ‘A’ Change / Save / Select Layout Give Layout Name, User Specific / Default Layout
  15. 15. Simple Programs Walkthrough •Grid Title Required I_GRID_TITLE = ‘Flight Information’ Heading
  16. 16. Simple Programs Walkthrough •Suppose the first 4 fields of the internal table are required in the order CARRID, FLDATE, CONNID, PRICE. Also the fields CURRENCY and PLANETYPE are not to be displayed. Populate the Field Catalog table appropriately data: i_fcat type slis_t_fieldcat_alv, wa_fcat type slis_fieldcat_alv. wa_fcat-tabname = 'I_SFLIGHT'. wa_fcat-col_pos = '1'. wa_fcat-fieldname = 'CARRID'. append wa_fcat to i_fcat. wa_fcat-col_pos = '2'. wa_fcat-fieldname = 'FLDATE'. append wa_fcat to i_fcat. wa_fcat-col_pos = '3'. wa_fcat-fieldname = 'CONNID'. append wa_fcat to i_fcat. wa_fcat-col_pos = '4'. wa_fcat-fieldname = 'PRICE'. wa_fcat-fieldname = 'CURRENCY'. wa_fcat-no_out = 'X'. append wa_fcat to i_fcat. wa_fcat-fieldname = 'PLANETYPE'. wa_fcat-no_out = 'X'. append wa_fcat to i_fcat. In the function module, IT_FIELDCAT = i_fcat
  18. 18. Simple Programs Walkthrough •Obtaining the field catalog internal table using the internal table name •Use Function Module REUSE_ALV_FIELDCATALOG_MERGE CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING I_INTERNAL_TABNAME = 'I_SFLIGHT' I_STRUCTURE_NAME = 'SFLIGHT' CHANGING CT_FIELDCAT = I_FCAT
  19. 19. Simple Programs Walkthrough •Suppose it is required to add a button ‘SAVE’ to the application toolbar. Also, the ABC Analysis, Mail and Download to Excel need to be removed. •Create a Subroutine SET_PF_STATUS using rt_extab type slis_t_extab •Within this subroutine, write SET PF-STATUS ‘YFLIGHTS’. •Double Click on ‘YFLIGHTS’ and create a PF-STATUS •Go to Extras -> Adjust Template and Choose the List Viewer Radio Button. Standard ALV PF-STATUS will be selected. •Remove the function keys and Buttons for ABC Analysis and Mail and Download to Excel from the PF-STATUS •Add a function code and button for SAVE. •Save and Activate the PF-STATUS •While calling the function module ‘REUSE_ALV_GRID_DISPLAY’ use I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS' •Alternatively, Removal of Buttons can be done by populating the internal table IT_EXCLUDING with the relevant function codes
  20. 20. Result No Excel, Email or ABC Analysis Buttons SAVE Button
  21. 21. Simple Programs Walkthrough •Suppose we need to make the price editable and saved to the database table SFLIGHT •Use Function Module REUSE_ALV_FIELDCATALOG_MERGE to get the Field Catalog internal table •Change the Field Catalog table for fieldname entry ‘PRICE’ read table i_fcat into wa_fcat with key fieldname = 'PRICE'. if sy-subrc = 0. wa_fcat-edit = 'X'. modify i_fcat index sy-tabix from wa_fcat transporting edit. endif. •Create a PF-Status as described previously and use a function code &DATA_SAVE
  22. 22. Simple Programs Walkthrough •Create a Subroutine USER_COMMAND using r_ucomm like sy-ucomm rs_selfield type slis_selfield. •Within this subroutine, handle user command if r_ucomm = '&DATA_SAVE'. modify sflight from table i_sflight. message i000 with 'Data saved'. rs_selfield-refresh = 'X'. rs_selfield-col_stable = 'X'. rs_selfield-row_stable = 'X'. endif. •While calling the function module ‘REUSE_ALV_GRID_DISPLAY’ use I_CALLBACK_USER_COMMAND = ‘USER_COMMAND'
  23. 23. Result PRICE (Editable) Other Fields (Non Editable) Function Code and Button for &DATA_SAVE
  24. 24. Important Information •Use Programs Starting with BALV and BCALV •Use Function Module Helps