SQL Server, T-SQL, ASP.NET, Javascript, SAP, ABAP Programming

Kodyaz Development Resources

Development resources, articles, tutorials, samples, codes and tools for .Net, SQL Server, Vista, etc.
Welcome to Kodyaz Development Resources Sign in | Join | Help








SAP ABAP Tutorial - ALV Grid Example with cl_gui_alv_grid and Screen Painter


This ABAP example program lists VBAK and VBAP items between given two VBELN numbers on an SAP screen in an ALV grid using cl_gui_alv_grid.

And the below screenshot is showing the output of the example ABAP program that filters data from VBAK and VBAP transparent tables and displays data on an ABAP ALV grid control placed in a custom container.

sap-abap-alv-grid-example-with-vbeln-range

Let's begin with the source code of the example ABAP report codes.

REPORT ZLIST_VBAP LINE-SIZE 160.

DATA :
  gr_vbeln TYPE RANGE OF vbak-vbeln,
  grs_vbeln LIKE LINE OF gr_vbeln.

DATA:
  gs_fieldcatalog TYPE lvc_s_fcat OCCURS 0,
  gv_fcat LIKE LINE OF gs_fieldcatalog,
  gs_layout TYPE lvc_s_layo.

TYPES :
  BEGIN OF gty_item,
    mandt LIKE vbak-mandt,
    vbeln LIKE vbak-vbeln,
    erdat LIKE vbak-erdat,
    kunnr LIKE vbak-kunnr,
    posnr LIKE vbap-posnr,
    matnr LIKE vbap-matnr,
    arktx LIKE vbap-arktx,
    kwmeng LIKE vbap-kwmeng,
    desc_text LIKE zvbap-desc_text,
  END OF gty_item,
  BEGIN OF gty_vbak,
    mandt LIKE vbak-mandt,
    vbeln LIKE vbak-vbeln,
    erdat LIKE vbak-erdat,
    kunnr LIKE vbak-kunnr,
  END OF gty_vbak,
  BEGIN OF gty_vbap,
    vbeln LIKE vbap-vbeln,
    posnr LIKE vbap-posnr,
    matnr LIKE vbap-matnr,
    arktx LIKE vbap-arktx,
    kwmeng LIKE vbap-kwmeng,
  END OF gty_vbap.


DATA :
  gs_item TYPE gty_item,
  gt_item TYPE TABLE OF gty_item.


DATA :
  gs_vbak TYPE gty_vbak,
  gt_vbak TYPE TABLE OF gty_vbak,
  gs_vbap TYPE gty_vbap,
  gt_vbap TYPE TABLE OF gty_vbap.

DATA :
  g_Container TYPE scrfname VALUE 'CC_CONTAINER_GRID',
  g_Custom_Container TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
  g_Grid TYPE REF TO CL_GUI_ALV_GRID.

DATA :
  OK_CODE LIKE sy-ucomm,
  SAVE_OK LIKE sy-ucomm.

START-OF-SELECTION.

  CALL SCREEN 100.




Let's continue reviewing the sample ABAP program code with the screen 100 dynapro object.
In the below screenshot you can see the layout view of the screen on the SAP Screen Painter editor.
This Screen Painter example show a cl_gui_custom_container object and the grid object cl_gui_alv_grid placed in that container.

sap-abap-screen-painter-screen-for-abap-alv-grid-sample

Please pay attention to the FctCode of the Button object BTNLIST. The FctCode is set as "BTNLIST" and will be controlled in the PAI (Process After Input) module with the ABAP CASE statement controlling the value of OK_CODE.

Here is the Process Before Output (PBO) module or ABAP code block of the Screen 100.

MODULE STATUS_0100 OUTPUT.

  SET PF-STATUS 'MAINSTATUS'.
  SET TITLEBAR 'TITLE'.

  IF g_Custom_Container IS INITIAL.

    " Create CONTAINER object with reference to container name in the screen
    CREATE OBJECT g_Custom_Container EXPORTING CONTAINER_NAME = g_Container.
    " Create GRID object with reference to parent name
    CREATE OBJECT g_Grid EXPORTING I_PARENT = g_Custom_Container.

    PERFORM u_prepare_fieldcatalog.
    gs_layout-ZEBRA = 'X'.
    "gs_layout-edit = 'X'. " Makes all Grid editable

    " SET_TABLE_FOR_FIRST_DISPLAY
    CALL METHOD g_Grid->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
        is_layout = gs_layout
      CHANGING
        it_fieldcatalog = gs_fieldcatalog
        IT_OUTTAB = gt_item. " Data

  ELSE.
    CALL METHOD g_Grid->REFRESH_TABLE_DISPLAY.
  ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

And you can find the Process After Input (PAI) module or ABAP code block of the Screen 100.

MODULE USER_COMMAND_0100 INPUT.

  SAVE_OK = OK_CODE.
  CLEAR OK_CODE.

  CASE SAVE_OK.
    WHEN 'EXIT' OR 'BACK' OR 'CNCL'.
      LEAVE PROGRAM.
    WHEN 'BTNLIST'.
      PERFORM u_filter_vbak.
    WHEN OTHERS.
  ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

In U_FILTER_VBAK, the required ABAP code to select data from related data dictionary objects, tables according to the given criteria takes place.
Within this ABAP code block, the necessary internal tables are populated with data from database.

FORM U_FILTER_VBAK .

  REFRESH gt_vbak.

  " Define Range Criteria
  grs_vbeln-SIGN = 'I'.
  grs_vbeln-OPTION = 'BT'.
  APPEND grs_vbeln to gr_vbeln.

  CHECK gr_vbeln[] IS NOT INITIAL.
  SELECT mandt vbeln erdat kunnr
    FROM vbak INTO TABLE gt_vbak
    WHERE vbeln IN gr_vbeln.

  CHECK gt_vbak[] IS NOT INITIAL.
  SELECT vbeln posnr matnr arktx kwmeng
    FROM vbap INTO TABLE gt_vbap
    FOR ALL ENTRIES IN gt_vbak
    WHERE vbeln EQ gt_vbak-vbeln.

  IF gt_vbak[] IS NOT INITIAL.

    LOOP AT gt_vbap INTO gs_vbap.

      READ TABLE gt_vbak INTO gs_vbak WITH KEY vbeln = gs_vbap-vbeln.

      gs_item-mandt = gs_vbak-mandt.
      gs_item-vbeln = gs_vbak-vbeln.
      gs_item-erdat = gs_vbak-erdat.
      gs_item-kunnr = gs_vbak-kunnr.
      gs_item-posnr = gs_vbap-posnr.
      gs_item-matnr = gs_vbap-matnr.
      gs_item-arktx = gs_vbap-arktx.
      gs_item-kwmeng = gs_vbap-kwmeng.

      APPEND gs_item TO gt_item.

      CLEAR gs_item.
      CLEAR gs_vbak.
      CLEAR gs_vbap.
    ENDLOOP.

  ENDIF.

ENDFORM. " U_FILTER_VBAK

FORM U_PREPARE_FIELDCATALOG .

  CLEAR gv_fcat.
  gv_fcat-fieldname = 'MANDT'.
  gv_fcat-tabname = 'VBAP'.
  gv_fcat-col_pos = 0.
  gv_fcat-coltext = 'MANDT'.
  gv_fcat-no_out = 'X'. " Do not Display Column
  INSERT gv_fcat INTO TABLE gs_fieldcatalog.

  CLEAR gv_fcat.
  gv_fcat-fieldname = 'VBELN'.
  gv_fcat-tabname = 'VBAP'.
  gv_fcat-col_pos = 1.
  gv_fcat-coltext = 'VBELN'.
  INSERT gv_fcat INTO TABLE gs_fieldcatalog.

  CLEAR gv_fcat.
  gv_fcat-fieldname = 'ERDAT'.
  gv_fcat-tabname = 'VBAP'.
  gv_fcat-col_pos = 2.
  gv_fcat-coltext = 'ERDAT'.
  INSERT gv_fcat INTO TABLE gs_fieldcatalog.

  CLEAR gv_fcat.
  gv_fcat-fieldname = 'KUNNR'.
  gv_fcat-tabname = 'VBAP'.
  gv_fcat-col_pos = 3.
  gv_fcat-coltext = 'KUNNR'.
  INSERT gv_fcat INTO TABLE gs_fieldcatalog.

  CLEAR gv_fcat.
  gv_fcat-fieldname = 'POSNR'.   gv_fcat-tabname = 'VBAP'.
  gv_fcat-col_pos = 4.
  gv_fcat-coltext = 'POSNR'.
  INSERT gv_fcat INTO TABLE gs_fieldcatalog.

  CLEAR gv_fcat.
  gv_fcat-fieldname = 'MATNR'.
  gv_fcat-tabname = 'VBAP'.
  gv_fcat-col_pos = 5.
  gv_fcat-coltext = 'MATNR'.
  INSERT gv_fcat INTO TABLE gs_fieldcatalog.

  CLEAR gv_fcat.
  gv_fcat-fieldname = 'ARKTX'.
  gv_fcat-tabname = 'VBAP'.
  gv_fcat-col_pos = 6.
  gv_fcat-coltext = 'ARKTX'.
  INSERT gv_fcat INTO TABLE gs_fieldcatalog.

  CLEAR gv_fcat.
  gv_fcat-fieldname = 'KWMENG'.
  gv_fcat-tabname = 'VBAP'.
  gv_fcat-col_pos = 7.
  gv_fcat-coltext = 'KWMENG'.
  gv_fcat-EDIT = 'X'. " Makes field editable in Grid
  INSERT gv_fcat INTO TABLE gs_fieldcatalog.

  CLEAR gv_fcat.
  gv_fcat-fieldname = 'DESC_TEXT'.
  gv_fcat-tabname = 'VBAP'.
  gv_fcat-col_pos = 7.
  gv_fcat-coltext = 'DESC_TEXT'.
  gv_fcat-no_out = 'X'.
  INSERT gv_fcat INTO TABLE gs_fieldcatalog.

ENDFORM. " U_PREPARE_FIELDCATALOG




SAP Resources

SAP Tutorial

SAP Forums

SAP Tools

SAP Transaction Codes Table














Related SAP Tutorial and ABAP Tutorials

Sales Tables among ABAP Tables (SAP Sales & Distribution SD Tables)
ABAP Function Module rv_invoice_document_read to Read SAP Invoice Data Details
Read SAP Customer Data from KNA1 using kna1_single_reader ABAP Function Module
How to Upload Data to SAP from Excel File using alsm_excel_to_internal_table Function Module
ALV Grid Color - Table Row Background Color in ALV List
Display SAP Documentation using bmenu_show_documentation ABAP Function Module
Multi Color ALV Grid Color Alternate using ALV Layout info_fname Property
How to Debug SmartForms - Debugging SAP SmartForm in ABAP ?
How to Display SAP Transaction in a New Session Or in New Window using ABAP4_Call_Transaction Function Module
How to Open SAP Transaction in New Window Or in New Session using ABAP cc_call_transaction_new_task Function Module
ABAP Tutorial - How to Set Default Date Range in SAP Selection Screen for Date Parameter
ABAP Tutorial - Upload SAP Data to Excel using xxl_simple_api Function Module
How to Download, Upload and Share SAP Favorites Menu
How Find SAP SmartForms Function Module Name
How to Open PopUp_To_Confirm Screen When Delete Function Key is Pressed for Confirmation
SAP Email Send using ABAP efg_gen_send_email Function Call
SAP SmartForms Download as SmartForm PDF Format using WS_DOWNLOAD and cl_gui_frontend_services
SAP Symbols List - Display List of Symbols using ABAP Symbols Report
Display SAP Icons using ABAP Code - SAP Icon List
How to Configure Default ABAP Editor to ABAP WorkBench Front End Editor New
ABAP - Create Hierarchy Tree List using rs_tree_construct, rs_tree_list_display and snodetext
SAP Tutorial for ABAP Developers - Create Number Range Object using SAP Transaction Code SNRO
Create CL_GUI_ALV_GRID ALV Grid Column Header using ABAP Data Element
How to Create SAP Transaction Code using SAP SE93 Transaction
SAP Tutorial - Create Transaction Code for ABAP Module Pools
How to Upload Bitmap Image to SAP using SAP Transaction SE78
SAP Custom Splitter Container cl_gui_splitter_container ABAP Example Code
Message no. 00264 : Status STATUS of the user interface ZREPORT missing
Request Single Spool Record for SmartForms Call within an ABAP Loop using output_options tdnewid
ABAP Tutorial - SAP Split & ABAP Split String Function
Upload Data from Excel File in ABAP using TEXT_CONVERT_XLS_TO_SAP
Display SAP Product Hierarchy using Table T179T VTEXT Field on cl_gui_alv_tree ABAP ALV Tree Object
SAP Product Hierarchy - Example ABAP Program using rv_produkthierarchie_text_get Function
SAP Sales Division SPART Text Description for Different Languages in TSPAT Table
SAP Sales Distribution Channel VTWEG Text Description for Different Languages in TVTWT Table
SAP Sales Organization VKORG Text Description for Different Languages in TVKOT Table
SAP Tutorial - Convert Spool Request to PDF File using RSTXPDFT4 ABAP Report
ABAP Tutorial - How to Generate Random Number for a Given Range of Numbers using RANDOM_I2 Function Module
ABAP Tutorial - How to Generate Random Number for a Given Range of Numbers using QF05_RANDOM_INTEGER
SAP ABAP Tutorial - ALV Grid Example with cl_gui_alv_grid and Screen Painter
How to Create Favorites and Add SAP Transaction Code in SAP Favorites Menu Folder
How to Display Keys in All Dropdown Lists on SAP Screens
SAP EXAM - ABAP EXAM : Free Online Certification SAP Questions & Answers to Tests
How to Delete All Breakpoints within ABAP Code using SAP ABAP Editor (SE80)
SAP Tutorial - How to Translate Text Module in Smartforms (Translation for Smartforms)
SAP Transaction - Create Transaction Code for ABAP Program or Selection Screen
SAP Smartforms Tutorial - Create Smartforms Example
SAP Smartforms - How to Call Smartform within ABAP Program
Smartforms Program Lines Error - Field "TITLE" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement.
Smartforms System Field &SFSY-JOBPAGES& - Total Number of Pages on a SmartForm document
What is OSS - Online SAP Support Notes ?
Sales Tables among SAP ABAP Tables (Sales & Distribution SD Tables)
ABAP ACE_SOP_CLIENT_READ Function Call to Read System Clients Table t000
Free MaxDB Training on MaxDB Database & Administration from SAP
SAP Download MaxDB Database Software
SAP - ABAP Checkbox in Selection Screen Example
SAP - ABAP Radio Button Selection Screen Example
SAP - ABAP ALV Grid Sample Code using REUSE_ALV_GRID_DISPLAY
ABAP Code to Display SAP Table Contents
How to Remove Preceeding Zeros in ABAP Development
Valid ABAP TRTYP SAP Transaction Type List
How to Find the SAP Transaction Code of the Current Screen Displayed ?
How to Find the Menu Path of a SAP Tansaction Code using SEARCH_SAP_MENU
SAP Smart Forms Tutorial and Smart Forms Resources
SAP Training Cource BC470 Form Printing with SAP Smart Forms
SAP MiniWAS Web Application Server 6.20 and SAP DB Installation for Windows and Troubleshooting
Download SAP GUI for Windows 7.10 and 6.20 from SMP
Introduction to SAP ABAP Programming
Complete List of SAP Modules
SAP Module Abbreviations
Complete List of SAP Sales and Distribution Module (SD) Sub-Modules
List of SAP Standard Material Types
Message Types in Method Return Parameters for SAP Modules
Built-in ABAP Type List or Predefined ABAP Types for SAP Systems






Copyright © 2004 - 2010 Eralper Yilmaz. All rights reserved.
Powered by Community Server, by Telligent Systems