SAP ABAP DEVELOPMENT ALV REPORTS :
✅ Real-Time SAP ABAP ALV Report Using REUSE_ALV_GRID_DISPLAY (KNA1 + VBAK + VBAP)
Here is a real-time SAP ABAP ALV program using
REUSE_ALV_GRID_DISPLAY, which joins the KNA1 (Customer Master), VBAK (Sales Order Header), and VBAP (Sales Order Item) tables. It displays:- Customer Number
- Customer Name
- Sales Document
- Material (Item)
- Net Price
With subtotals on Net Price grouped by Customer
SAP ABAP ALV Programming Tutorial | Steps, Code, and Real-Time ALV Report Development
REPORT ZMM_ALV_KNA1_VBAP.
TABLES: kna1, vbak, vbap.
TYPES: BEGIN OF ty_data,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
vbeln TYPE vbak-vbeln,
matnr TYPE vbap-matnr,
netwr TYPE vbap-netwr,
END OF ty_data.
DATA: it_data TYPE TABLE OF ty_data,
wa_data TYPE ty_data,
it_fcat TYPE slis_t_fieldcat_alv,
wa_fcat TYPE slis_fieldcat_alv,
wa_layout TYPE slis_layout_alv.
* Step 1: Fetch Data using joins
SELECT a~kunnr b~name1 a~vbeln c~matnr c~netwr
INTO TABLE it_data
FROM vbak AS a
INNER JOIN kna1 AS b ON a~kunnr = b~kunnr
INNER JOIN vbap AS c ON a~vbeln = c~vbeln
UP TO 100 ROWS.
* Step 2: Field Catalog for ALV
CLEAR wa_fcat.
wa_fcat-fieldname = 'KUNNR'.
wa_fcat-tabname = 'IT_DATA'.
wa_fcat-seltext_m = 'Customer No'.
wa_fcat-do_sum = ' '.
wa_fcat-key = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
TABLES: kna1, vbak, vbap.
TYPES: BEGIN OF ty_data,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
vbeln TYPE vbak-vbeln,
matnr TYPE vbap-matnr,
netwr TYPE vbap-netwr,
END OF ty_data.
DATA: it_data TYPE TABLE OF ty_data,
wa_data TYPE ty_data,
it_fcat TYPE slis_t_fieldcat_alv,
wa_fcat TYPE slis_fieldcat_alv,
wa_layout TYPE slis_layout_alv.
* Step 1: Fetch Data using joins
SELECT a~kunnr b~name1 a~vbeln c~matnr c~netwr
INTO TABLE it_data
FROM vbak AS a
INNER JOIN kna1 AS b ON a~kunnr = b~kunnr
INNER JOIN vbap AS c ON a~vbeln = c~vbeln
UP TO 100 ROWS.
* Step 2: Field Catalog for ALV
CLEAR wa_fcat.
wa_fcat-fieldname = 'KUNNR'.
wa_fcat-tabname = 'IT_DATA'.
wa_fcat-seltext_m = 'Customer No'.
wa_fcat-do_sum = ' '.
wa_fcat-key = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'NAME1'.
wa_fcat-tabname = 'IT_DATA'.
wa_fcat-seltext_m = 'Customer Name'.
wa_fcat-do_sum = ' '.
wa_fcat-key = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'VBELN'.
wa_fcat-tabname = 'IT_DATA'.
wa_fcat-seltext_m = 'Sales Document'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-tabname = 'IT_DATA'.
wa_fcat-seltext_m = 'Material'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'NETWR'.
wa_fcat-tabname = 'IT_DATA'.
wa_fcat-seltext_m = 'Net Price'.
wa_fcat-do_sum = 'X'. " This enables subtotal/total
APPEND wa_fcat TO it_fcat.
* Step 3: Layout for subtotal display
wa_layout-colwidth_optimize = 'X'.
wa_layout-zebra = 'X'.
wa_layout-totals_text = 'Total'.
* Step 4: ALV Grid Display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = wa_layout
it_fieldcat = it_fcat
i_save = 'A'
TABLES
t_outtab = it_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE 'Error displaying ALV output' TYPE 'E'.
ENDIF.
THE OUTPUT IMAGE:
📘 Real-Time Business Scenario (Procurement)
In a procurement department, buyers often need to monitor purchase orders (POs) to:
- Track which vendors are supplying which materials
- Monitor PO item prices
- Analyze PO value by vendor or material
💼 A typical requirement from the client/business:
“Show me a list of POs with vendor name, material number, and item net value. Also show subtotals by Vendor so we know how much we’re ordering from each.”
This is a real-time report used in MM (Materials Management) module to:
- Audit procurement spend
- Compare vendor performance
- Export PO reports to Excel
🧾 Required Fields
✅ Full Program Code Using
|
Comments
Post a Comment