32
SAP ABAP ALV Grid Explained with real example. ALV LIST and ALV GRID This Real life ALV Code has been submitted by Mr. ASHIM . NAME: Ashim EMAIL: [email protected] DESCRIPTION: ALV grid example - Using SAP Control Technology YOURCODE: *&----------------------------------------------------------- ----------* *& Report ZTRPSD110 * *& * *&----------------------------------------------------------- ----------* * TITLE: Statement of Export Report for Tata Tetley * * * * PURPOSE:Statement of Export Report for Tata Tetley * * * *------------------------------------------------------------ ----------* * A. Start-of-selection: *

SAP ABAP ALV Grid Explained With Real Example

  • Upload
    badzkun

  • View
    127

  • Download
    18

Embed Size (px)

DESCRIPTION

ALV Grid

Citation preview

Page 1: SAP ABAP ALV Grid Explained With Real Example

SAP ABAP ALV Grid Explained with real example.

ALV LIST and ALV GRID

This Real life ALV Code has been submitted by Mr. ASHIM .NAME: Ashim

EMAIL: [email protected]

DESCRIPTION: ALV grid example - Using SAP Control Technology

YOURCODE: *&---------------------------------------------------------------------* *& Report ZTRPSD110 * *& * *&---------------------------------------------------------------------* * TITLE: Statement of Export Report for Tata Tetley * * * * PURPOSE:Statement of Export Report for Tata Tetley * * * *----------------------------------------------------------------------* * A. Start-of-selection: * * 1. In get_billing_data using the selection screen parameters get the * * billing data from billing header(VBAK) and Item (VBAP) * * 2. Get the SHIP-TO partner data from VBPA using Customer number as * * one condition and store in it_vbpa_sh * 9. Popultae the ALV display table * * B. End-of-selection: * Call screen 9000 and display data in ALV *----------------------------------------------------------------------*

REPORT ztrps110 MESSAGE-ID zttl LINE-SIZE 130.

TABLES: vbrk.

* CONSTANTS

Page 2: SAP ABAP ALV Grid Explained With Real Example

CONSTANTS : c_x(1) TYPE c VALUE 'X', c_zxto TYPE vbak-auart VALUE 'ZXTO', c_e TYPE spras VALUE 'E', c_000000 TYPE posnr VALUE '000000', c_ship_to TYPE parvw VALUE 'WE'. "Ship To Party

* Table Types TYPES: BEGIN OF ty_vbrk_vbrp, vbeln TYPE vbrk-vbeln, "Billing doc posnr TYPE vbrp-posnr, "Billing item aubel TYPE vbrp-aubel, "Sales order waerk TYPE vbrk-waerk, "Doc currency mvgr1 TYPE vbrp-mvgr1, "Material group 1 mvgr3 TYPE vbrp-mvgr3, "Material group 3 mvgr4 TYPE vbrp-mvgr4, "Material group 4 matnr TYPE vbrp-matnr, "Material no ntgew TYPE vbrp-ntgew, "Net wt gewei TYPE vbrp-gewei, "Wt unit kzwi1 TYPE vbrp-kzwi1, "Subtotal 1 kursk TYPE vbrp-kursk, "Exchange rate END OF ty_vbrk_vbrp.

TYPES: BEGIN OF ty_data, land1 TYPE vbpa-land1, landx TYPE t005t-landx, mvgr3 TYPE vbrp-mvgr3, mvgr4 TYPE vbrp-mvgr4, bezei3 TYPE tvm3t-bezei, bezei4 TYPE tvm4t-bezei, ntgew_tea_bag TYPE vbrp-ntgew, ntgew_pkt_tea TYPE vbrp-ntgew, ntgew_bulk_tea TYPE vbrp-ntgew, kzwi1_tea_bag TYPE vbrp-kzwi1, "Subtotal 1 Tea Bag kzwi1_pkt_tea TYPE vbrp-kzwi1, "Subtotal 1 Pkt Tea kzwi1_bulk_tea TYPE vbrp-kzwi1, "Subtotal 1 Bulk Tea ntgew_tot TYPE vbrp-ntgew, kzwi1_tot TYPE vbrp-kzwi1, line_color(4) TYPE c, "For line color

END OF ty_data.

TYPES: BEGIN OF ty_vbpa, vbeln TYPE vbpa-vbeln,

Page 3: SAP ABAP ALV Grid Explained With Real Example

land1 TYPE vbpa-land1, END OF ty_vbpa. TYPES: BEGIN OF ty_t005t, land1 TYPE t005t-land1, landx TYPE t005t-landx, END OF ty_t005t.

TYPES: BEGIN OF ty_tvm3t, mvgr3 TYPE tvm3-mvgr3, bezei TYPE tvm3t-bezei, END OF ty_tvm3t.

TYPES: BEGIN OF ty_tvm4t, mvgr4 TYPE tvm4-mvgr4, bezei TYPE tvm4t-bezei, END OF ty_tvm4t.

DATA: it_vbrk_vbrp TYPE STANDARD TABLE OF ty_vbrk_vbrp, wa_vbrk_vbrp TYPE ty_vbrk_vbrp,

it_vbpa TYPE STANDARD TABLE OF ty_vbpa, wa_vbpa TYPE ty_vbpa,

it_data TYPE STANDARD TABLE OF ty_data, wa_data TYPE ty_data,

it_t005t TYPE STANDARD TABLE OF ty_t005t, wa_t005t TYPE ty_t005t,

it_tvm3t TYPE STANDARD TABLE OF ty_tvm3t, wa_tvm3t TYPE ty_tvm3t,

it_tvm4t TYPE STANDARD TABLE OF ty_tvm4t, wa_tvm4t TYPE ty_tvm4t.

* Global data for grand total

DATA: w_tot_ntgew_tea_bag TYPE vbrp-ntgew, w_tot_ntgew_pkt_tea TYPE vbrp-ntgew, w_tot_ntgew_bulk_tea TYPE vbrp-ntgew, w_tot_ntgew_tot TYPE vbrp-ntgew, w_tot_kzwi1_tea_bag TYPE vbrp-kzwi1,

Page 4: SAP ABAP ALV Grid Explained With Real Example

w_tot_kzwi1_pkt_tea TYPE vbrp-kzwi1, w_tot_kzwi1_bulk_tea TYPE vbrp-kzwi1, w_tot_kzwi1_tot TYPE vbrp-kzwi1.

* Global data definitions for ALV DATA : * ALV Grid container w_alv_container TYPE REF TO cl_gui_custom_container,

* ALV Grid w_alv_grid TYPE REF TO cl_gui_alv_grid, w_layo TYPE lvc_s_layo, "For layout wt_fieldcat TYPE lvc_t_fcat, "For field catalog okcode TYPE okcode, "OK Code w_to(2) TYPE c, w_title TYPE string.

*-------------- START OF SELECTION SCREEN ----------------------------* SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. * Billing Date SELECT-OPTIONS: s_fkdat FOR vbrk-fkdat MEMORY ID vf OBLIGATORY NO-EXTENSION. SELECTION-SCREEN:SKIP 1. SELECTION-SCREEN: END OF BLOCK b1.

*-------------- END OF SELECTION SCREEN ------------------------------*

*------------- EVENT START-OF-SELECTION -------------------------------* START-OF-SELECTION.

* Get billing data from Delivery header(VBRK) and item (VBRP) PERFORM get_billing_data.

* Get ship-to country PERFORM get_ship_to_data.

* Get material group description 3 PERFORM get_material_group_3.

Page 5: SAP ABAP ALV Grid Explained With Real Example

* Get material group description 4 PERFORM get_material_group_4.

* Form the ALV Grid title PERFORM form_title.

* Process data PERFORM process_data.

* Populate text descriptions PERFORM populate_description.

*------------- EVENT END-OF-SELECTION -------------------------------* END-OF-SELECTION. * Set the text to when date high is there IF NOT s_fkdat-high IS INITIAL. w_to = 'to'(c16). ENDIF.

* Call the scren 9000 for ALV Display CALL SCREEN 9000.

*&---------------------------------------------------------------------* *& Form get_billing_data *&---------------------------------------------------------------------* * Get billing data from Delivery header(VBRK) and item (VBRP) * & store in internal table it_vbrk_vbrp *----------------------------------------------------------------------* FORM get_billing_data .

REFRESH: it_vbrk_vbrp.

* Select Billing data by joining VBRK & VBRP and store in it_vbrk_vbrp SELECT a~vbeln b~posnr b~aubel a~waerk b~mvgr1 b~mvgr3 b~mvgr4 b~matnr

Page 6: SAP ABAP ALV Grid Explained With Real Example

b~ntgew b~gewei b~kzwi1 b~kursk FROM vbrk AS a INNER JOIN vbrp AS b ON a~vbeln = b~vbeln INTO TABLE it_vbrk_vbrp WHERE a~fkdat IN s_fkdat * Consider only non-deleted document AND fksto = space * Billing doc type should be ZXTB AND fkart = 'ZXTB'

AND pstyv = c_zxto.

IF sy-subrc <> 0. MESSAGE i999(zttl) WITH 'No data is there'(m06). LEAVE LIST-PROCESSING. ENDIF. ENDFORM. " get_billing_data *&---------------------------------------------------------------------* *& Form get_ship_to_data *&---------------------------------------------------------------------* * Get Ship-To party data *----------------------------------------------------------------------* FORM get_ship_to_data .

DATA: l_it_vbpa TYPE STANDARD TABLE OF ty_vbpa. REFRESH: it_vbpa, it_t005t.

IF NOT it_vbrk_vbrp[] IS INITIAL. SELECT vbeln land1 FROM vbpa INTO TABLE it_vbpa FOR ALL ENTRIES IN it_vbrk_vbrp WHERE vbeln = it_vbrk_vbrp-aubel AND posnr = c_000000 AND parvw = c_ship_to.

IF sy-subrc <> 0. MESSAGE i999(zttl) WITH 'Exporter country not maintained'(m02). LEAVE LIST-PROCESSING. ELSE. SORT it_vbpa BY vbeln.

Page 7: SAP ABAP ALV Grid Explained With Real Example

* Create an unique and sorted driver table l_it_vbpa[] = it_vbpa[]. SORT l_it_vbpa BY land1. DELETE ADJACENT DUPLICATES FROM l_it_vbpa COMPARING land1.

IF NOT l_it_vbpa[] IS INITIAL. * Get the country description from T005t table SELECT land1 landx FROM t005t INTO TABLE it_t005t FOR ALL ENTRIES IN l_it_vbpa WHERE spras = c_e AND land1 = l_it_vbpa-land1. IF sy-subrc = 0. SORT it_t005t BY land1. ENDIF. ENDIF. ENDIF.

ENDIF. ENDFORM. " get_ship_to_data

*&---------------------------------------------------------------------* *& Form get_material_group_3 *&---------------------------------------------------------------------* * Get material group 3 *----------------------------------------------------------------------* FORM get_material_group_3 .

DATA: l_it_vbrk_vbrp TYPE STANDARD TABLE OF ty_vbrk_vbrp.

REFRESH: it_tvm3t.

* Create an unique and sorted driver table l_it_vbrk_vbrp[] = it_vbrk_vbrp[]. SORT l_it_vbrk_vbrp BY mvgr3. DELETE ADJACENT DUPLICATES FROM l_it_vbrk_vbrp COMPARING mvgr3. IF NOT l_it_vbrk_vbrp[] IS INITIAL. SELECT mvgr3 bezei FROM tvm3t INTO TABLE it_tvm3t

Page 8: SAP ABAP ALV Grid Explained With Real Example

FOR ALL ENTRIES IN l_it_vbrk_vbrp WHERE mvgr3 = l_it_vbrk_vbrp-mvgr3.

IF sy-subrc = 0. SORT it_tvm3t BY mvgr3. ENDIF. ENDIF.

ENDFORM. " get_material_group_3

*&---------------------------------------------------------------------* *& Form get_material_group_4 *&---------------------------------------------------------------------* * Get material group 4 *----------------------------------------------------------------------* FORM get_material_group_4 . DATA: l_it_vbrk_vbrp TYPE STANDARD TABLE OF ty_vbrk_vbrp.

REFRESH: it_tvm4t.

* Create an unique and sorted driver table l_it_vbrk_vbrp[] = it_vbrk_vbrp[]. SORT l_it_vbrk_vbrp BY mvgr4. DELETE ADJACENT DUPLICATES FROM l_it_vbrk_vbrp COMPARING mvgr4. IF NOT l_it_vbrk_vbrp[] IS INITIAL. SELECT mvgr4 bezei FROM tvm4t INTO TABLE it_tvm4t FOR ALL ENTRIES IN l_it_vbrk_vbrp WHERE mvgr4 = l_it_vbrk_vbrp-mvgr4. IF sy-subrc = 0. SORT it_tvm4t BY mvgr4. ENDIF. ENDIF.

ENDFORM. " get_material_group_4

*&---------------------------------------------------------------------* *& Form process_data *&---------------------------------------------------------------------* * Process the data and do summation and populate final display table *----------------------------------------------------------------------*

Page 9: SAP ABAP ALV Grid Explained With Real Example

FORM process_data .

LOOP AT it_vbrk_vbrp INTO wa_vbrk_vbrp. CLEAR: wa_data, wa_vbpa. READ TABLE it_vbpa INTO wa_vbpa WITH KEY vbeln = wa_vbrk_vbrp-aubel BINARY SEARCH. IF sy-subrc = 0. wa_data-land1 = wa_vbpa-land1. ENDIF.

wa_data-mvgr3 = wa_vbrk_vbrp-mvgr3. wa_data-mvgr4 = wa_vbrk_vbrp-mvgr4.

* Do an unit conversion of the quamtity CALL FUNCTION 'UNIT_CONVERSION_SIMPLE' EXPORTING input = wa_vbrk_vbrp-ntgew * NO_TYPE_CHECK = 'X' * ROUND_SIGN = ' ' unit_in = wa_vbrk_vbrp-gewei unit_out = 'TO' "Metric tonn IMPORTING output = wa_vbrk_vbrp-ntgew EXCEPTIONS conversion_not_found = 1 division_by_zero = 2 input_invalid = 3 output_invalid = 4 overflow = 5 type_invalid = 6 units_missing = 7 unit_in_not_found = 8 unit_out_not_found = 9 OTHERS = 10. IF sy-subrc <> 0. wa_vbrk_vbrp-ntgew = wa_vbrk_vbrp-ntgew. ENDIF.

* Convert the currency from Customer currency to local * currency by multiplying with kursk wa_vbrk_vbrp-kzwi1 = wa_vbrk_vbrp-kzwi1 * wa_vbrk_vbrp-kursk.

Page 10: SAP ABAP ALV Grid Explained With Real Example

* Convert the amount to Lacks by dividing with 100000 wa_vbrk_vbrp-kzwi1 = wa_vbrk_vbrp-kzwi1 / 100000. "DV1K905028

* When MVGR1 is between A to F use the amount as TEA_BAG IF wa_vbrk_vbrp-mvgr1 BETWEEN 'A' AND 'F'. wa_data-ntgew_tea_bag = wa_vbrk_vbrp-ntgew. wa_data-kzwi1_tea_bag = wa_vbrk_vbrp-kzwi1. ENDIF.

* When MVGR1 is between G to L use the amount as TEA_BAG IF wa_vbrk_vbrp-mvgr1 BETWEEN 'G' AND 'L'. wa_data-ntgew_pkt_tea = wa_vbrk_vbrp-ntgew. wa_data-kzwi1_pkt_tea = wa_vbrk_vbrp-kzwi1. ENDIF.

* When MVGR1 is between G to L use the amount as TEA_BAG IF wa_vbrk_vbrp-mvgr1 = 'M'. wa_data-ntgew_bulk_tea = wa_vbrk_vbrp-ntgew. wa_data-kzwi1_bulk_tea = wa_vbrk_vbrp-kzwi1. ENDIF.

COLLECT wa_data INTO it_data. ENDLOOP. ENDFORM. " process_data

*&---------------------------------------------------------------------* *& Form populate_description *&---------------------------------------------------------------------* * Populate the description fields *----------------------------------------------------------------------* FORM populate_description .

LOOP AT it_data INTO wa_data. CLEAR: wa_t005t. READ TABLE it_t005t INTO wa_t005t WITH KEY land1 = wa_data-land1 BINARY SEARCH. IF sy-subrc = 0. wa_data-landx = wa_t005t-landx. ENDIF.

* Read description of Material group 3 CLEAR wa_tvm3t.

Page 11: SAP ABAP ALV Grid Explained With Real Example

READ TABLE it_tvm3t INTO wa_tvm3t WITH KEY mvgr3 = wa_data-mvgr3 BINARY SEARCH. IF sy-subrc = 0. wa_data-bezei3 = wa_tvm3t-bezei. ENDIF.

* Read description of Material group 4 CLEAR wa_tvm4t. READ TABLE it_tvm4t INTO wa_tvm4t WITH KEY mvgr4 = wa_data-mvgr4 BINARY SEARCH. IF sy-subrc = 0. wa_data-bezei4 = wa_tvm4t-bezei. ENDIF.

* Get the grand totals wa_data-ntgew_tot = wa_data-ntgew_tea_bag + wa_data-ntgew_pkt_tea + wa_data-ntgew_bulk_tea.

wa_data-kzwi1_tot = wa_data-kzwi1_tea_bag + wa_data-kzwi1_pkt_tea + wa_data-kzwi1_bulk_tea.

MODIFY it_data FROM wa_data TRANSPORTING landx bezei3 bezei4 ntgew_tot kzwi1_tot. * Summattion of grand totals w_tot_ntgew_tea_bag = w_tot_ntgew_tea_bag + wa_data-ntgew_tea_bag. w_tot_ntgew_pkt_tea = w_tot_ntgew_pkt_tea + wa_data-ntgew_pkt_tea. w_tot_ntgew_bulk_tea = w_tot_ntgew_bulk_tea + wa_data-ntgew_bulk_tea. w_tot_ntgew_tot = w_tot_ntgew_tot + wa_data-ntgew_tot.

w_tot_kzwi1_tea_bag = w_tot_kzwi1_tea_bag + wa_data-kzwi1_tea_bag. w_tot_kzwi1_pkt_tea = w_tot_kzwi1_pkt_tea + wa_data-kzwi1_pkt_tea. w_tot_kzwi1_bulk_tea = w_tot_kzwi1_bulk_tea + wa_data-kzwi1_bulk_tea. w_tot_kzwi1_tot = w_tot_kzwi1_tot + wa_data-kzwi1_tot.

Page 12: SAP ABAP ALV Grid Explained With Real Example

ENDLOOP.

* Append a grand Total row at the end CLEAR wa_data. wa_data-landx = 'Grand Total:'. wa_data-ntgew_tea_bag = w_tot_ntgew_tea_bag. wa_data-ntgew_pkt_tea = w_tot_ntgew_pkt_tea. wa_data-ntgew_bulk_tea = w_tot_ntgew_bulk_tea. wa_data-ntgew_tot = w_tot_ntgew_tot. wa_data-kzwi1_tea_bag = w_tot_kzwi1_tea_bag. wa_data-kzwi1_pkt_tea = w_tot_kzwi1_pkt_tea. wa_data-kzwi1_bulk_tea = w_tot_kzwi1_bulk_tea. wa_data-kzwi1_tot = w_tot_kzwi1_tot. wa_data-line_color = 'C310'.

APPEND wa_data TO it_data. ENDFORM. " populate_description

*&---------------------------------------------------------------------* *& Module STATUS_9000 OUTPUT *&---------------------------------------------------------------------* * Initialise PF-STATUS and title *----------------------------------------------------------------------* MODULE status_9000 OUTPUT. SET PF-STATUS 'MAIN9000'. SET TITLEBAR 'TITLE_9000'. ENDMODULE. " STATUS_9000 OUTPUT

*&---------------------------------------------------------------------* *& Module initialize_9000 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE initialize_9000 OUTPUT. * Call the ALV grid to display data PERFORM display_alv_grid.

ENDMODULE. " initialize_9000 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_9000 INPUT *&---------------------------------------------------------------------* * Module to handle User Command

Page 13: SAP ABAP ALV Grid Explained With Real Example

*----------------------------------------------------------------------* MODULE user_command_9000 INPUT. CASE okcode. WHEN 'BACK'. SET SCREEN 0. CLEAR okcode. LEAVE SCREEN. WHEN 'CANCEL'. SET SCREEN 0. CLEAR okcode. LEAVE SCREEN. WHEN 'EXIT'. CLEAR okcode. LEAVE PROGRAM. WHEN OTHERS. ENDCASE. ENDMODULE. " USER_COMMAND_9000 INPUT *&---------------------------------------------------------------------* *& Form display_alv_grid *&---------------------------------------------------------------------* * Display the data in ALV Grid *----------------------------------------------------------------------* FORM display_alv_grid . IF w_alv_container IS INITIAL.

* Create the alv container object CREATE OBJECT w_alv_container EXPORTING container_name = 'ALV_GRID' EXCEPTIONS cntl_error = 1 cntl_system_error = 2 create_error = 3 lifetime_error = 4 lifetime_dynpro_dynpro_link = 5 OTHERS = 6. IF sy-subrc <> 0. MESSAGE e999(zttl) WITH 'Problem in ALV display'(t04). ENDIF.

* Create the ALV grid object. The parent is the ALV container CREATE OBJECT w_alv_grid EXPORTING i_parent = w_alv_container EXCEPTIONS error_cntl_create = 1

Page 14: SAP ABAP ALV Grid Explained With Real Example

error_cntl_init = 2 error_cntl_link = 3 error_dp_create = 4 OTHERS = 5.

IF sy-subrc <> 0. MESSAGE e999(zttl) WITH 'Problem in ALV display'(t04). ENDIF.

* This subrotine creates the field catalog and * store in internal table lt_fieldcat PERFORM prepare_fieldcat CHANGING wt_fieldcat.

* Layout design w_layo-no_toolbar = ''.

* Not to allow totaling feature w_layo-no_totline = c_x.

* Report title * w_layo-grid_title = text-004. w_layo-grid_title = w_title.

w_layo-zebra = c_x. "Alternating line color (striped) w_layo-cwidth_opt = c_x. "Optimize column width w_layo-sel_mode = 'A'. "Selection Mode

* Name of the color field w_layo-info_fname = 'LINE_COLOR'."For row color

* Call the method to display the data in ALV grid CALL METHOD w_alv_grid->set_table_for_first_display EXPORTING i_save = 'A' is_layout = w_layo CHANGING it_outtab = it_data[] it_fieldcatalog = wt_fieldcat EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4.

Page 15: SAP ABAP ALV Grid Explained With Real Example

IF sy-subrc <> 0. MESSAGE e999(zttl) WITH text-t04. ENDIF. ELSE. * If the container & grid object is alreadt there reuse them CALL METHOD w_alv_grid->refresh_table_display EXCEPTIONS finished = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE e999(zttl) WITH text-t04. ENDIF.

ENDIF.

IF okcode = 'CANCEL'. EXIT. ENDIF.

ENDFORM. " display_alv_grid *&---------------------------------------------------------------------* *& Form prepare_fieldcat *&---------------------------------------------------------------------* * Prepare the list of fields to be displayed * *----------------------------------------------------------------------* * <--P_WT_FIELDCAT text *----------------------------------------------------------------------* FORM prepare_fieldcat CHANGING pt_fieldcat TYPE lvc_t_fcat.

DATA : lx_fcat TYPE lvc_s_fcat.

REFRESH: pt_fieldcat. **List of fields to be displayed should be added in pt_fieldcat

* Customer PO no CLEAR lx_fcat. lx_fcat-fieldname = 'LANDX'. lx_fcat-ref_field = 'T005T'. lx_fcat-ref_table = 'T005T'. lx_fcat-coltext = 'Market Name'(c01). lx_fcat-seltext = text-c01.

APPEND lx_fcat TO pt_fieldcat.

* Flavour type CLEAR lx_fcat.

Page 16: SAP ABAP ALV Grid Explained With Real Example

lx_fcat-fieldname = 'BEZEI3'. lx_fcat-ref_field = 'BEZEI'. lx_fcat-ref_table = 'TVM3'. lx_fcat-coltext = 'Flavour Type'(c02). lx_fcat-seltext = text-c02. APPEND lx_fcat TO pt_fieldcat.

* Tea type CLEAR lx_fcat. lx_fcat-fieldname = 'BEZEI4'. lx_fcat-ref_field = 'BEZEI4'. lx_fcat-ref_table = 'TVM4'. lx_fcat-coltext = 'Tea Type.'(c03). lx_fcat-seltext = text-c03. APPEND lx_fcat TO pt_fieldcat.

* Tea Bag Quantity in KG CLEAR lx_fcat. lx_fcat-fieldname = 'NTGEW_TEA_BAG'. lx_fcat-ref_field = 'NTGEW'. lx_fcat-ref_table = 'VBRP'. lx_fcat-coltext = 'Tea Bag(MT)'(c04). lx_fcat-seltext = text-c04. APPEND lx_fcat TO pt_fieldcat.

* PKT Tea Quantity in KG CLEAR lx_fcat. lx_fcat-fieldname = 'NTGEW_PKT_TEA'. lx_fcat-ref_field = 'NTGEW'. lx_fcat-ref_table = 'VBRP'. lx_fcat-coltext = 'PKT Tea(MT)'(c05). lx_fcat-seltext = text-c05. APPEND lx_fcat TO pt_fieldcat.

* Bulk Tea Quantity in MT CLEAR lx_fcat. lx_fcat-fieldname = 'NTGEW_BULK_TEA'. lx_fcat-ref_field = 'NTGEW'. lx_fcat-ref_table = 'VBRP'. lx_fcat-coltext = 'Bulk Tea(MT)'(c06). lx_fcat-seltext = text-c06. APPEND lx_fcat TO pt_fieldcat.

* Total Quantity in MT CLEAR lx_fcat.

Page 17: SAP ABAP ALV Grid Explained With Real Example

lx_fcat-fieldname = 'NTGEW_TOT'. lx_fcat-ref_field = 'NTGEW'. lx_fcat-ref_table = 'VBRP'. lx_fcat-coltext = 'Total(MT)'(c07). lx_fcat-seltext = text-c07. APPEND lx_fcat TO pt_fieldcat.

* Tea Bag Quantity in KG CLEAR lx_fcat. lx_fcat-fieldname = 'KZWI1_TEA_BAG'. lx_fcat-ref_field = 'KZWI1'. lx_fcat-ref_table = 'VBRP'. lx_fcat-coltext = 'Tea Bag(FOB-Lacs)'(c08). lx_fcat-seltext = text-c08. APPEND lx_fcat TO pt_fieldcat.

* PKT Tea Price in Lakh CLEAR lx_fcat. lx_fcat-fieldname = 'KZWI1_PKT_TEA'. lx_fcat-ref_field = 'KZWI1'. lx_fcat-ref_table = 'VBRP'. lx_fcat-coltext = 'PKT Tea(FOB-Lacs)'(c09). lx_fcat-seltext = text-c09. APPEND lx_fcat TO pt_fieldcat.

* PKT Tea Quantity in KG CLEAR lx_fcat. lx_fcat-fieldname = 'KZWI1_BULK_TEA'. lx_fcat-ref_field = 'KZWI1'. lx_fcat-ref_table = 'VBRP'. lx_fcat-coltext = 'Bulk Tea(FOB-Lacs)'(c10). lx_fcat-seltext = text-c10. APPEND lx_fcat TO pt_fieldcat.

* Total amount CLEAR lx_fcat. lx_fcat-fieldname = 'KZWI1_TOT'. lx_fcat-ref_field = 'KZWI1'. lx_fcat-ref_table = 'VBRP'. lx_fcat-coltext = 'Total(FOB-Lacs)'(c11). lx_fcat-seltext = text-c11. APPEND lx_fcat TO pt_fieldcat.

Page 18: SAP ABAP ALV Grid Explained With Real Example

ENDFORM. " prepare_fieldcat *&---------------------------------------------------------------------* *& Form form_title *&---------------------------------------------------------------------* * Form the ALV Title *----------------------------------------------------------------------* FORM form_title .

DATA: l_date(10) TYPE c.

CONCATENATE s_fkdat-low+6(2) s_fkdat-low+4(2) s_fkdat-low(4) INTO l_date SEPARATED BY '/'.

CONCATENATE 'TTD - Statement of Export' '-From' l_date INTO w_title SEPARATED BY space.

CLEAR l_date. IF NOT s_fkdat-high IS INITIAL. CONCATENATE s_fkdat-high+6(2) s_fkdat-high+4(2) s_fkdat-high(4) INTO l_date SEPARATED BY '/'. CONCATENATE w_title 'to' l_date INTO w_title SEPARATED BY space.

ENDIF. ENDFORM. " form_title