Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Sort in ALV

Former Member
0 Kudos

Hi All,

I am writing the logic for sort,Here I am writing on data, actuall i want that.

Please find the below code. At sort stmt i am getting the dump. please help me in this.

LOOP AT IT_ALV_DATA FROM W_LOOP_FROM_EU TO W_LOOP_TO_EU.

LW_TABIX = SY-TABIX.

READ TABLE IT_FIELDCAT INTO LW_FIELDCAT WITH KEY

FIELDNAME = LIT_DBSORTINFO-KEY1.

IF SY-SUBRC = 0.

ASSIGN COMPONENT SY-TABIX OF

STRUCTURE IT_ALV_DATA TO <LFS>.

IF SY-SUBRC = 0.

CLEAR LW_CHAR.

LW_CHAR = <LFS>.

IF LW_DOWN = 'X'.

SORT IT_ALV_DATA BY (LW_CHAR) DESCENDING .

ELSEIF LW_UP = 'X'.

SORT IT_ALV_DATA BY (LW_CHAR) ASCENDING .

ENDIF.

ENDIF.

ENDIF.

ENDLOOP.

regards,

Ajay reddy

1 ACCEPTED SOLUTION

franois_henrotte
Active Contributor
0 Kudos

your logic is wrong

you get contents of field into lw_char but you have to use field name for sorting

so it should be:

IF LW_DOWN = 'X'.

SORT IT_ALV_DATA BY (LIT_DBSORTINFO-KEY1) DESCENDING .

ELSEIF LW_UP = 'X'.

SORT IT_ALV_DATA BY (LIT_DBSORTINFO-KEY1) ASCENDING .

ENDIF

all other lines must be removed !

5 REPLIES 5

Former Member
0 Kudos

hi,

if lw_down = 'X'.

SORT IT_ALV_DATA BY LW_CHAR DESCENDING .

Reward with points if helpful.

Former Member
0 Kudos

hi , see the sort statment in the below example it may help you

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

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,

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,

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.

  • 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

b~ntgew

b~gewei

b~kzwi1

b~kursk

FROM vbrk AS a INNER JOIN vbrp AS b

ON avbeln = bvbeln

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.

  • 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

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

----


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.

  • 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.

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.

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

----


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

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.

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.

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.

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.

ENDFORM. " prepare_fieldcat

&----


*& Form form_title

&----


  • Form the ALV Title

----


FORM form_title .

DATA: l_date(10) TYPE c.

CONCATENATE s_fkdat-low6(2) s_fkdat-low4(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-high6(2) s_fkdat-high4(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

Former Member
0 Kudos

Hi Ajay,

Is there any specific reason that you are using LW_CHAR to sort the internal table? Which inturn contains the complete row of the work area from read table statement.....

Instead try using the field names directly. it should help you solve the issue...

Best Regards,

Ram.

franois_henrotte
Active Contributor
0 Kudos

your logic is wrong

you get contents of field into lw_char but you have to use field name for sorting

so it should be:

IF LW_DOWN = 'X'.

SORT IT_ALV_DATA BY (LIT_DBSORTINFO-KEY1) DESCENDING .

ELSEIF LW_UP = 'X'.

SORT IT_ALV_DATA BY (LIT_DBSORTINFO-KEY1) ASCENDING .

ENDIF

all other lines must be removed !

0 Kudos

Solved. thanks Fer.

regards,

Ajay