Application Development and Automation 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: 
Read only

ALV FILTER

Former Member
0 Likes
1,417

hi

i am new to ALV . using reuse_alv_list_display i was generated output list. but this list was not Filtering . How to Handle the Filtering for ALV.

hi

i am new to ALV . using reuse_alv_list_display i was generated output list. but this list was not Filtering . How to Handle the Filtering for ALV.

8 REPLIES 8
Read only

Former Member
0 Likes
1,226

Check out this sample program ..

REPORT z_anu_alv_sub_totals .

TYPE-POOLS: slis.

DATA: BEGIN OF it_output OCCURS 0,
          var1(8) TYPE n,
          var2(10),
          var3 TYPE I,
      END OF it_output.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
       t_fieldcat TYPE slis_fieldcat_alv,
      it_sort TYPE slis_t_sortinfo_alv,
      t_sort TYPE slis_sortinfo_alv,
      v_repid LIKE sy-repid.

INITIALIZATION.
  v_repid = sy-repid.

START-OF-SELECTION.

  PERFORM get_data.
  PERFORM sort_fields.
  PERFORM fill_fieldcat.
  PERFORM list_display.

*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_data.

  it_output-var1 = 1000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 1000.
  it_output-var2 = 'siddhu'.
  it_output-var3 = '20000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 1000.
  it_output-var2 = 'chinni'.
  it_output-var3 = '100000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 2000.
  it_output-var2 = 'chicchu'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 2000.
  it_output-var2 = 'candy'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 1000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 4000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.


ENDFORM.                    " GET_DATA

*&---------------------------------------------------------------------*
*&      Form  fill_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fill_fieldcat.
  PERFORM fill_fields USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',
                             'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',
                             'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.

ENDFORM.                    " fill_fieldcat

*&---------------------------------------------------------------------*
*&      Form  fill_fields
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0146   text
*      -->P_0147   text
*      -->P_0148   text
*      -->P_0149   text
*----------------------------------------------------------------------*
FORM fill_fields USING    value(tabname) TYPE slis_tabname
                          value(fieldname) TYPE slis_fieldname
                          value(seltext_m) LIKE dd03p-scrtext_m
                          value(do_sum) TYPE c.
  t_fieldcat-tabname = tabname.
  t_fieldcat-fieldname = fieldname.
  t_fieldcat-seltext_m  = seltext_m.
  IF do_sum = 'X'.
    t_fieldcat-datatype = 'CURR'.
  ENDIF.
  t_fieldcat-do_sum = do_sum.
  APPEND t_fieldcat TO it_fieldcat.
  CLEAR t_fieldcat.
ENDFORM.                    " fill_fields

*&---------------------------------------------------------------------*
*&      Form  list_display
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM list_display.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
   EXPORTING
     i_callback_program             = v_repid
     it_fieldcat                    = it_fieldcat
     it_sort                        = it_sort[]
   TABLES
      t_outtab                       = it_output
   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.

ENDFORM.                    " list_display

*&---------------------------------------------------------------------*
*&      Form  sort_fields
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM sort_fields.
  t_sort-fieldname = 'VAR1'.
  t_sort-tabname = 'IT_OUTPUT'.
  t_sort-spos = 1.
  t_sort-up = 'X'.
  t_sort-subtot = 'X'.
  APPEND t_sort TO it_sort.
  CLEAR t_sort.

  t_sort-fieldname = 'VAR3'.
  t_sort-tabname = 'IT_OUTPUT'.
  t_sort-spos = 2.
  t_sort-up = 'X'.
  APPEND t_sort TO it_sort.
  CLEAR t_sort.

ENDFORM.                    " sort_fields

Read only

0 Likes
1,226

I WANT HOW TO HANDLE THE FILTERS. NOT ABOUT SORTING.

Read only

0 Likes
1,226

Ravi,

What Problems you are facing with filters. try to mention that . then we can figure out what can be done.

Regards

Vijay

Read only

0 Likes
1,226

Filter Concept not working on Output LIst.

i was not populated any thing for filters.

if any need , how to do that ..?

Read only

0 Likes
1,226

Vallab,

give this for the field which you are facing problem with filter in your fieldcat.

<b>Fieldcat-edit_mask = '==ALPHA'.</b>

and also check the OSS notes

Note 650888 - ALV filter: List does not show any data after filtering

This what it is mentioned in the notes.. and also check the related notes also.

Summary

Symptom

1. If you are filtering to a text in an ALV, for example 'Approved', no data is displayed in the list of results, even though there is data with 'Approved'.

The list does not show any data after applying the filter.

After entering the filter value, lower case letters are converted into upper case, for example 'Approved' is changed to 'APPROVED'.

1. Although individual data records are transferred at the interface, you cannot find them in the output.

Other terms

ABAP List Viewer, SAP List Viewer,

Filter icon, filter, funnel, condition, value set, value range, filter criteria, attribute instance, resulting set, restriction, filter symbol

empty list

Reason and Prerequisites

1. The problem occurs if texts in lower case need to be filtered in the table, and the underlying field definition does not allow lower case to be used.

Internal table texts are issued in lower case in the ALV. However, during the filtering, the system searches in the internal tables by using the internal format, in which only upper case is permitted. This means that no corresponding values are found.

1. A layout was defined containing a filter that prevents the output of certain data records.

Solution

1. After entering the filter value, check whether the text entered is converted from lower to upper case. To do this, use the check button on the filter dialog box.

Then if necessary, allow lower case to be used in the adjacent data element. This should be converted in the corresponding domain or field catalog by using LOWERCASE = X.

1. Delete the filter and check whether the missing data records are displayed.

Regards

Vijay

Read only

Former Member
0 Likes
1,226

Hi

please have a look at example programs in package SLIS.

BCALV_TEST_FULLSCREEN_FILTER

BCALV_TEST_FULLSCREEN_FILTCURR

etc.

Regards

Bernd

Read only

Former Member
0 Likes
1,226

ravi,

always notice how data is get stored in table.

kna1-kunnr-0000100000.

but in your alv list you can see customer code like 100000.

if you want to filter data with this code then in your filter condition

you have to type 0000100000. then only alv list will filter it.

regards

raj

Read only

Former Member
0 Likes
1,226

ravi,

filter is default in TYPE-POOLS: slis.

contect your basis consultant. he will apply note for alv-filter.

raj