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: 

ALV

Former Member
0 Kudos

Hi,

i have an issue to be solved very urgently.

there is a field transaction_type in which all the below are the entries.

while displaying i have to display in same order.

My report is ALV report, how can i sort and where to write the code.

Please help as soon as possible.

Council Request/CEO Request

Council Confirm/CEO Approve

Council Reject/CEO Reject

Council Cancellation/CEO Cancellation

Endorsement

Endorsement Reduction

regards,

kirthi

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi

declarations for spl.group.

GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV

GT_SORT TYPE SLIS_T_SORTINFO_ALV, "for sort

Check this sample one

 DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.
 
  CLEAR LS_SORT.
  LS_SORT-FIELDNAME = 'FIELD1'.
  LS_SORT-SPOS      = 1.
  LS_SORT-UP        = 'X'.
  ls_sort-subtot    = 'X'. "subtotal
  APPEND LS_SORT TO E06_LT_SORT.
 
  APPEND LS_SORT TO E06_LT_SORT.
  LS_SORT-FIELDNAME = 'FIELD2'.
  LS_SORT-SPOS      = 2.
  LS_SORT-UP        = 'X'. 
  ls_sort-subtot    = 'X'. "subtotal
  APPEND LS_SORT TO E06_LT_SORT.


for creating the group..

  DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
*
  CLEAR  LS_SP_GROUP.
  LS_SP_GROUP-SP_GROUP = 'A'.
  LS_SP_GROUP-TEXT     = TEXT-005.
  APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.

and pass this info to FM...

layout-sUBTOTALS_TEXT = 'SUbt...'

and pass spl group info to fieldcatalog also...

 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM      = G_REPID
            IS_LAYOUT               = GS_LAYOUT
            IT_FIELDCAT             = GT_FIELDCAT[]
            IT_SPECIAL_GROUPS       = GT_SP_GROUP[]
            IT_SORT                 = GT_SORT[]

TYPES :
  BEGIN OF ty_vbak,
    vkorg TYPE vbak-vkorg,             " Sales organization
    kunnr TYPE vbak-kunnr,             " Sold-to party
    vbeln TYPE vbak-vbeln,             " Sales document
    netwr TYPE vbak-netwr,             " Net Value of the Sales Order
    waerk TYPE vbak-waerk,             " Document currency
  END OF ty_vbak.

DATA:
  vbak    TYPE vbak,
  gt_vbak TYPE TABLE OF ty_vbak.

SELECT-OPTIONS :
  s_vkorg FOR vbak-vkorg,              " Sales organization
  s_kunnr FOR vbak-kunnr,              " Sold-to party
  s_vbeln FOR vbak-vbeln.              " Sales document

SELECTION-SCREEN :
  SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.
PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
SELECTION-SCREEN END OF LINE.

*---------------------------------------------------------------------*
INITIALIZATION.

  v_1 = 'Maximum of records to read'.

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

  PERFORM f_read_data.

  PERFORM f_display_data.

*---------------------------------------------------------------------*
*      Form  f_read_data
*---------------------------------------------------------------------*
FORM f_read_data.

  SELECT vkorg kunnr vbeln netwr waerk
      UP TO p_max ROWS
    INTO TABLE gt_vbak
    FROM vbak
   WHERE kunnr IN s_kunnr
     AND vbeln IN s_vbeln
     AND vkorg IN s_vkorg.

ENDFORM.                               " F_READ_DATA
*---------------------------------------------------------------------*
*      Form  f_display_data
*---------------------------------------------------------------------*
FORM f_display_data.

  TYPE-POOLS: slis.                    " ALV Global types

  DEFINE m_fieldcat.
    add 1 to ls_fieldcat-col_pos.
    ls_fieldcat-fieldname   = &1.
    ls_fieldcat-ref_tabname = 'VBAK'.
    ls_fieldcat-do_sum      = &2.
    ls_fieldcat-cfieldname  = &3.
    append ls_fieldcat to lt_fieldcat.
  END-OF-DEFINITION.

  DEFINE m_sort.
    add 1 to ls_sort-spos.
    ls_sort-fieldname = &1.
    ls_sort-up        = 'X'.
    ls_sort-subtot    = &2.
    append ls_sort to lt_sort.
  END-OF-DEFINITION.

  DATA:
    ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv,
    lt_sort     TYPE slis_t_sortinfo_alv,
    ls_sort     TYPE slis_sortinfo_alv,
    ls_layout   TYPE slis_layout_alv.

  m_fieldcat 'VKORG' ''  ''.
  m_fieldcat 'KUNNR' ''  ''.
  m_fieldcat 'VBELN' ''  ''.
  m_fieldcat 'NETWR' 'X' 'WAERK'.
  m_fieldcat 'WAERK' ''  ''.

  m_sort 'VKORG' 'X'.                  " Sort by vkorg and subtotal
  m_sort 'KUNNR' 'X'.                  " Sort by kunnr and subtotal
  m_sort 'VBELN' ''.                   " Sort by vbeln

  ls_layout-cell_merge = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout   = ls_layout
            it_fieldcat = lt_fieldcat
            it_sort     = lt_sort
       TABLES
            t_outtab    = gt_vbak.

ENDFORM.                   

Reward all helpfull answers

Regards

Pavan

6 REPLIES 6

Former Member
0 Kudos

A classical report is a program that generates a single list, which must contain all of the required detail information.

1) This procedure may result in extensive lists from which the user has to pick the relevant data.

2) For background processing, this is the only possible method. After starting a background job, there is no way of influencing the program.

3) The desired selections must be made beforehand and the list must provide detailed information.

4) For dialog sessions, there are no such restrictions.

5) The user is present during the execution of the program and can control and manipulate the program flow directly.

6) To be able to use all advantages of the online environment, classical reporting was developed into interactive reporting.

ALV is Application List viewer. Sap provides a set of ALV (ABAP LIST VIEWER) function modules which can be put into use to embellish the output of a report. This set of ALV functions is used to enhance the readability and functionality of any report output. Cases arise in sap when the output of a report contains columns extending more than 255 characters in length. In such cases, this set of ALV functions can help choose selected columns and arrange the different columns from a report output and also save different variants for report display. This is a very efficient tool for dynamically sorting and arranging the columns from a report output. The report output can contain up to 90 columns in the display with the wide array of display options.

Advantages.

Collapse multiple reports into one, drastically cutting down your report development time

Save many hours using built-in ALV sorting, subtotaling and filtering capabilities

Add conditional structures into your ALV report: No programming required!

Combine ALV with display variants to meet a wide range of reporting requirements more easily

Dynamically reorder column layouts and add/subtract fields

Enable users and analysts to save their own personalized variants

All the definitions of internal tables, structures and constants are declared in a type-pool called SLIS.

1. SIMPLE REPORT.

The important function modules are

a. Reuse_alv_list_display

b. Reuse_alv_fieldcatalog_merge

c. Reuse_alv_events_get

d. Reuse_alv_commentary_write

e. Reuse_alv_grid_display

A. REUSE_ALV_LIST_DISPLAY : This is the function module which prints the data.

The important parameters are :

I. Export :

i. I_callback_program : report id

ii. I_callback_pf_status_set : routine where a user can set his own pf status or change the functionality of the existing pf status

iii. I_callback_user_command : routine where the function codes are handled

iv. I_structure name : name of the dictionary table

v. Is_layout : structure to set the layout of the report

vi. It_fieldcat : internal table with the list of all fields and their attributes which are to be printed (this table can be populated automatically by the function module REUSE_ALV_FIELDCATALOG_MERGE

vii. It_events : internal table with a list of all possible events of ALV and their corresponding form names.

II. Tables :

i. t_outtab : internal table with the data to be output

B. REUSE_ALV_FIELDCATALOG_MERGE : This function module is used to populate a fieldcatalog which is essential to display the data in ALV. If the output data is from a single dictionary table and all the columns are selected, then we need not exclusively create the field catalog. Its enough to mention the table name as a parameter(I_structure name) in the REUSE_ALV_LIST_DISPLAY. But in other cases we need to create it.

The Important Parameters are :

I. Export :

i. I_program_name : report id

ii. I_internal_tabname : the internal output table

iii. I_inclname : include or the report name where all the dynamic forms are handled.

II Changing

ct_fieldcat : an internal table with the type SLIS_T_FIELDCAT_ALV which is

declared in the type pool SLIS.

C. REUSE_ALV_EVENTS_GET : Returns table of possible events for a list type

Parameters :

I. Import :

Et_Events : The event table is returned with all possible CALLBACK events

for the specified list type (column 'NAME'). For events to be processed by Callback, their 'FORM' field must be filled. If the field is initialized, the event is ignored. The entry can be read from the event table, the field 'FORM' filled and the entry modified using constants from the type pool SALV.

II. Export :

I_List_type :

0 = simple list REUSE_ALV_LIST_DISPLAY

1 = hierarchcal-sequential list REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = simple block list REUSE_ALV_BLOCK_LIST_APPEND

3 = hierarchical-sequential block list

REUSE_ALV_BLOCK_LIST_HS_APPEND

D. REUSE_ALV_COMMENTARY_WRITE : This is used in the Top-of-page event to print the headings and other comments for the list.

Parameters :

I. it_list_commentary : internal table with the headings of the type slis_t_listheader.

This internal table has three fields :

Typ : ‘H’ – header, ‘S’ – selection , ‘A’ - action

Key : only when typ is ‘S’.

Info : the text to be printed

E. REUSE_ALV_GRID_DISPLAY : A new function in 4.6 version, to display the results in grid rather than as a preview.

Parameters : same as reuse_alv_list_display

This is an example for simple list.

2. BLOCK REPORT

This is used to have multiple lists continuously.

The important functions used in this report are:

A. REUSE_ALV_BLOCK_LIST_INIT

B. REUSE_ALV_BLOCK_LIST_APPEND

C. REUSE_ALV_BLOCK_LIST_HS_APPEND

D. REUSE_ALV_BLOCK_LIST_DISPLAY

A. REUSE_ALV_BLOCK_LIST_INIT

Parameters:

I. I_CALLBACK_PROGRAM

II. I_CALLBACK_PF_STATUS_SET

III. I_CALLBACK_USER_COMMAND

This function module is used to set the default gui status etc.

B. REUSE_ALV_BLOCK_LIST_APPEND

Parameters :

Export :

I. is_layout : layout settings for block

II. it_fieldcat : field catalog

III. i_tabname : internal table name with output data

IV. it_events : internal table with all possible events

Tables :

i. t_outtab : internal table with output data.

This function module adds the data to the block.

Repeat this function for all the different blocks to be displayed one after the other.

C. REUSE_ALV_BLOCK_LIST_HS_APPEND

This function module is used for hierarchical sequential blocks.

D. REUSE_ALV_BLOCK_LIST_DISPLAY

Parameters : All the parameters are optional.

This function module display the list with data appended by the above function.

Here the functions REUSE_ALV_FIELDCATALOG_MERGE, REUSE_ALV_EVENTS_GET, REUSE_ALV_COMMENTARY_WRITE can be used.

3. Hierarchical reports :

Hierarchical sequential list output.

The function module is

A. REUSE_ALV_HIERSEQ_LIST_DISPLAY

Parameters:

I. Export:

i. I_CALLBACK_PROGRAM

ii. I_CALLBACK_PF_STATUS_SET

iii. I_CALLBACK_USER_COMMAND

iv. IS_LAYOUT

v. IT_FIELDCAT

vi. IT_EVENTS

vii. i_tabname_header : Name of the internal table in the program containing the

output data of the highest hierarchy level.

viii. i_tabname_item : Name of the internal table in the program containing the

output data of the lowest hierarchy level.

ix. is_keyinfo : This structure contains the header and item table field

names which link the two tables (shared key).

II. Tables

i. t_outtab_header : Header table with data to be output

ii. t_outtab_item : Name of the internal table in the program containing the

output data of the lowest hierarchy level.

slis_t_fieldcat_alv : This internal table contains the field attributes. This internal table can be populated automatically by using ‘REUSE_ALV_FIELDCATALOG_MERGE’.

Important Attributes :

A. col_pos : position of the column

B. fieldname : internal fieldname

C. tabname : internal table name

D. ref_fieldname : fieldname (dictionary)

E. ref_tabname : table (dictionary)

F. key(1) : column with key-color

G. icon(1) : icon

H. symbol(1) : symbol

I. checkbox(1) : checkbox

J. just(1) : (R)ight (L)eft (C)ent.

K. do_sum(1) : sum up

L. no_out(1) : (O)blig.(X)no out

M. outputlen : output length

N. seltext_l : long key word

O. seltext_m : middle key word

P. seltext_s : short key word

Q. reptext_ddic : heading (ddic)

R. ddictxt(1) : (S)hort (M)iddle (L)ong

S. datatype : datatype

T. hotspot(1) : hotspot

DATA : l_pos TYPE i VALUE 1.

ist_fieldcat-fieldname = 'POSID'.

ist_fieldcat-tabname = 'IT_FINAL'.

ist_fieldcat-outputlen = 24.

ist_fieldcat-col_pos = l_pos.

  • ist_fieldcat-ddictxt = 'L'.

ist_fieldcat-key = 'X'.

ist_fieldcat-seltext_l = 'Appropriation Request Number'.

APPEND ist_fieldcat.

CLEAR ist_fieldcat.

l_pos = l_pos + 1.

ist_fieldcat-fieldname = 'TXT04'.

ist_fieldcat-tabname = 'IT_FINAL'.

ist_fieldcat-outputlen = 4.

ist_fieldcat-col_pos = l_pos.

ist_fieldcat-ddictxt = 'L'.

  • ist_fieldcat-key = 'X'.

ist_fieldcat-seltext_l = 'Status'.

ist_fieldcat-EMPHASIZE = 'C400'.

APPEND ist_fieldcat.

CLEAR ist_fieldcat.

l_pos = l_pos + 1.

ist_fieldcat-fieldname = 'UDATE'.

ist_fieldcat-tabname = 'IT_FINAL'.

ist_fieldcat-outputlen = 8.

ist_fieldcat-col_pos = l_pos.

ist_fieldcat-ddictxt = 'L'.

ist_fieldcat-key = 'X'.

ist_fieldcat-seltext_l = 'Status Date'.

  • IST_FIELDCAT-EMPHASIZE = 'C600'.

APPEND ist_fieldcat.

CLEAR ist_fieldcat.

Former Member
0 Kudos

Hi

declarations for spl.group.

GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV

GT_SORT TYPE SLIS_T_SORTINFO_ALV, "for sort

Check this sample one

 DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.
 
  CLEAR LS_SORT.
  LS_SORT-FIELDNAME = 'FIELD1'.
  LS_SORT-SPOS      = 1.
  LS_SORT-UP        = 'X'.
  ls_sort-subtot    = 'X'. "subtotal
  APPEND LS_SORT TO E06_LT_SORT.
 
  APPEND LS_SORT TO E06_LT_SORT.
  LS_SORT-FIELDNAME = 'FIELD2'.
  LS_SORT-SPOS      = 2.
  LS_SORT-UP        = 'X'. 
  ls_sort-subtot    = 'X'. "subtotal
  APPEND LS_SORT TO E06_LT_SORT.


for creating the group..

  DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
*
  CLEAR  LS_SP_GROUP.
  LS_SP_GROUP-SP_GROUP = 'A'.
  LS_SP_GROUP-TEXT     = TEXT-005.
  APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.

and pass this info to FM...

layout-sUBTOTALS_TEXT = 'SUbt...'

and pass spl group info to fieldcatalog also...

 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM      = G_REPID
            IS_LAYOUT               = GS_LAYOUT
            IT_FIELDCAT             = GT_FIELDCAT[]
            IT_SPECIAL_GROUPS       = GT_SP_GROUP[]
            IT_SORT                 = GT_SORT[]

TYPES :
  BEGIN OF ty_vbak,
    vkorg TYPE vbak-vkorg,             " Sales organization
    kunnr TYPE vbak-kunnr,             " Sold-to party
    vbeln TYPE vbak-vbeln,             " Sales document
    netwr TYPE vbak-netwr,             " Net Value of the Sales Order
    waerk TYPE vbak-waerk,             " Document currency
  END OF ty_vbak.

DATA:
  vbak    TYPE vbak,
  gt_vbak TYPE TABLE OF ty_vbak.

SELECT-OPTIONS :
  s_vkorg FOR vbak-vkorg,              " Sales organization
  s_kunnr FOR vbak-kunnr,              " Sold-to party
  s_vbeln FOR vbak-vbeln.              " Sales document

SELECTION-SCREEN :
  SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.
PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
SELECTION-SCREEN END OF LINE.

*---------------------------------------------------------------------*
INITIALIZATION.

  v_1 = 'Maximum of records to read'.

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

  PERFORM f_read_data.

  PERFORM f_display_data.

*---------------------------------------------------------------------*
*      Form  f_read_data
*---------------------------------------------------------------------*
FORM f_read_data.

  SELECT vkorg kunnr vbeln netwr waerk
      UP TO p_max ROWS
    INTO TABLE gt_vbak
    FROM vbak
   WHERE kunnr IN s_kunnr
     AND vbeln IN s_vbeln
     AND vkorg IN s_vkorg.

ENDFORM.                               " F_READ_DATA
*---------------------------------------------------------------------*
*      Form  f_display_data
*---------------------------------------------------------------------*
FORM f_display_data.

  TYPE-POOLS: slis.                    " ALV Global types

  DEFINE m_fieldcat.
    add 1 to ls_fieldcat-col_pos.
    ls_fieldcat-fieldname   = &1.
    ls_fieldcat-ref_tabname = 'VBAK'.
    ls_fieldcat-do_sum      = &2.
    ls_fieldcat-cfieldname  = &3.
    append ls_fieldcat to lt_fieldcat.
  END-OF-DEFINITION.

  DEFINE m_sort.
    add 1 to ls_sort-spos.
    ls_sort-fieldname = &1.
    ls_sort-up        = 'X'.
    ls_sort-subtot    = &2.
    append ls_sort to lt_sort.
  END-OF-DEFINITION.

  DATA:
    ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv,
    lt_sort     TYPE slis_t_sortinfo_alv,
    ls_sort     TYPE slis_sortinfo_alv,
    ls_layout   TYPE slis_layout_alv.

  m_fieldcat 'VKORG' ''  ''.
  m_fieldcat 'KUNNR' ''  ''.
  m_fieldcat 'VBELN' ''  ''.
  m_fieldcat 'NETWR' 'X' 'WAERK'.
  m_fieldcat 'WAERK' ''  ''.

  m_sort 'VKORG' 'X'.                  " Sort by vkorg and subtotal
  m_sort 'KUNNR' 'X'.                  " Sort by kunnr and subtotal
  m_sort 'VBELN' ''.                   " Sort by vbeln

  ls_layout-cell_merge = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout   = ls_layout
            it_fieldcat = lt_fieldcat
            it_sort     = lt_sort
       TABLES
            t_outtab    = gt_vbak.

ENDFORM.                   

Reward all helpfull answers

Regards

Pavan

Former Member
0 Kudos

use column postion field in the fieldcatalog.....

fcat-fieldname = 'WERKR'. " Plant

<b>fcat-col_pos = 1.</b>

fcat-outputlen = '000004'.

fcat-seltext_m = 'Receiving Plant'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'MATNR'. " Material

<b> fcat-col_pos = 2.</b>

fcat-outputlen = '000018'.

fcat-seltext_m = 'Material'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'MAKTX'. " Material Description

<b> fcat-col_pos = 3.</b>

fcat-outputlen = '000040'.

fcat-seltext_l = 'Material Description'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

for sorting....

DATA: isort TYPE slis_t_sortinfo_alv,

isort1 TYPE slis_sortinfo_alv.

PERFORM sort_data_fcat after PERFORM alv_fcat-settings......

CLEAR isort1.

isort1-spos = '1'.

isort1-fieldname = 'WERKS'.

isort1-up = 'X'.

APPEND isort1 TO isort.

hope, it helps,

anju

Former Member
0 Kudos

Hi,

i think if u used the FM for the list it will do that autoomaticallly ,i jsut want to know which approach u r following for this alv i think their is a method called factory method using classes it will make it more simple the method is:

DATA: lr_table TYPE REF TO cl_salv_table,

lr_functions TYPE REF TO cl_salv_functions_list,

lr_columns TYPE REF TO cl_salv_columns_table,

lr_column TYPE REF TO cl_salv_column_table,

it_columns TYPE salv_t_column_ref,

wa_columns LIKE LINE OF it_columns,

v_datatype TYPE datatype_d,

v_long_text TYPE scrtext_l,

v_max_length TYPE lvc_outlen,

v_output_length TYPE lvc_outlen.

TRY.

cl_salv_table=>factory(

IMPORTING

r_salv_table = lr_table

CHANGING

t_table = it_vbak ).

CATCH cx_salv_msg. "#EC NO_HANDLER

ENDTRY.

  • Set all basic functions

lr_functions = lr_table->get_functions( ).

lr_functions->set_all( if_salv_c_bool_sap=>true ).

  • Set columns reference

lr_columns = lr_table->get_columns( ).

  • Set the column attributes.

it_columns = lr_columns->get( ).

CLEAR lr_column.

LOOP AT it_columns INTO wa_columns.

lr_column ?= wa_columns-r_column.

  • Set the output length to the long text length of the heading

v_long_text = lr_column->get_long_text( ).

v_max_length = STRLEN( v_long_text ).

v_output_length = lr_column->get_output_length( ).

IF v_output_length LT v_max_length.

lr_column->set_output_length( v_max_length ).

ENDIF.

  • Set the sign for the negative sign display.

v_datatype = lr_column->get_ddic_datatype( ).

IF v_datatype = 'DEC'.

lr_column->set_sign( ).

ENDIF.

CLEAR: v_long_text,

v_max_length,

wa_columns,

v_datatype.

ENDLOOP.

  • Display

lr_table->display( ).

Former Member
0 Kudos

hi kirthi


Hi try this:

DATA: WA_SORT TYPE SLIS_SORTINFO_ALV.

WA_SORT-SPOS = 1.
WA_SORT-FIELDNAME = 'BUDAT'.
WA_SORT-UP = ' '.
WA_SORT-DOWN = 'X'.
WA_SORT-GROUP = 'UL'.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO SORT.

CLEAR: WA_SORT.

WA_SORT-SPOS = 2.
WA_SORT-FIELDNAME = 'BELNR'.
WA_SORT-UP = ' '.
WA_SORT-DOWN = 'X'.
APPEND WA_SORT TO SORT.

WA_SORT-SPOS = 3.
WA_SORT-FIELDNAME = 'POSNR'.
WA_SORT-UP = 'X'.
APPEND WA_SORT TO SORT.

regards

ravish

<b>plz dont forget to reward points is helpful</b>

Former Member
0 Kudos

hi Kiran,

You can get an idea from the following code:

data:IT_SORT TYPE SLIS_T_SORTINFO_ALV,

FORM SORT_LIST .

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'AUART'.

WA_SORT-SPOS = '1'.

WA_SORT-UP = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'VBTYP'.

WA_SORT-SPOS = '2'.

WA_SORT-UP = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'WAERK'.

WA_SORT-SPOS = '3'.

WA_SORT-UP = 'X'.

WA_SORT-SUBTOT = 'X'.

APPEND WA_SORT TO IT_SORT.

*******************************************

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDTAB

<b>IT_SORT = IT_SORT</b>

TABLES

T_OUTTAB = IT_VBAK

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

Plz Reward points if contents are useful...

Regards,

Mandeep.