Filtering technique in OOPS ALV in ABAP (Non-event functionality).

  1. Goto SE38.

2. Give program name and click on create.

3. Give title and click on save.

4. Write code.

REPORT ZAB_RP_OOPS_ALV_FILTER.
TABLES: ekko,ekpo.
TYPES: BEGIN OF ty_ekko,
         ebeln TYPE ekko-ebeln,
         bukrs TYPE ekko-bukrs,
         bstyp TYPE ekko-bstyp,
         bsart TYPE ekko-bsart,
       END OF ty_ekko.
TYPESBEGIN OF ty_ekpo,
         ebeln TYPE ekpo-ebeln,
         ebelp TYPE ekpo-ebelp,
         matnr TYPE ekpo-matnr,
         werks TYPE ekpo-werks,
       END OF ty_ekpo.
TYPES: BEGIN OF ty_final,
         ebeln TYPE ekko-ebeln,
         bukrs TYPE ekko-bukrs,
         bstyp TYPE ekko-bstyp,
         bsart TYPE ekko-bsart,
         ebelp TYPE ekpo-ebelp,
         matnr TYPE ekpo-matnr,
         werks TYPE ekpo-werks,
       END OF ty_final.

DATA: lt_ekko  TYPE TABLE OF ty_ekko,
      lr_ekko  TYPE ty_ekko,
      lt_ekpo  TYPE TABLE OF ty_ekpo,
      lr_ekpo  TYPE ty_ekpo,
      lt_final TYPE TABLE OF ty_final,
      lr_final TYPE ty_final.
DATA: lt_fieldcat  TYPE lvc_t_fcat,
      lr_fieldcat  TYPE lvc_s_fcat,
      lo_container TYPE REF TO cl_gui_custom_container,
      lo_grid      TYPE REF TO cl_gui_alv_grid.

DATA: lt_FILTER TYPE lvc_t_filt,
      lr_FILTER TYPE lvc_s_filt.

SELECT-OPTIONSs_ebeln FOR ekko-ebeln.

IF s_ebeln IS INITIAL.
  MESSAGE 'Pls enter purchasing doc number' TYPE 'E'.
ELSE.
  SELECT ebeln
          bukrs
          bstyp
          bsart
          FROM ekko
          INTO TABLE lt_ekko
          WHERE ebeln IN s_ebeln.

ENDIF.

IF
 lt_ekko IS NOT INITIAL.
  SELECT ebeln
          ebelp
          matnr
          werks
          FROM ekpo
          INTO TABLE lt_ekpo
          FOR ALL ENTRIES IN lt_ekko
          WHERE ebeln lt_ekko-ebeln.

ENDIF.

LOOP
 AT lt_ekko INTO lr_ekko.
  lr_final-ebeln lr_ekko-ebeln.
  lr_final-bukrs lr_ekko-bukrs.
  lr_final-bstyp lr_ekko-bstyp.
  lr_final-bsart lr_ekko-bsart.
  LOOP AT lt_ekpo INTO lr_ekpo WHERE ebeln lr_ekko-ebeln.
    lr_final-ebelp lr_ekpo-ebelp.
    lr_final-matnr lr_ekpo-matnr.
    lr_final-werks lr_ekpo-werks.
    APPEND lr_final TO lt_final.
    CLEAR lr_final.

  ENDLOOP.

ENDLOOP.


CREATE OBJECT lo_container
  EXPORTING
    container_name 'CONT'.
CREATE OBJECT lo_grid
  EXPORTING
    i_parent lo_container.

lr_filter-fieldname 'EBELP'.
lr_filter-option 'EQ'.
lr_filter-sign 'I'.
lr_filter-low '00010'.
*lr_filter-high = ''.
APPEND lr_filter TO lt_filter.


CALL METHOD lo_grid->set_table_for_first_display
  EXPORTING
    i_structure_name              'ZAB_STR_EKKO_EKPO_OOPS'
  CHANGING
    it_outtab                     lt_final
*   it_fieldcatalog               = lt_fieldcat
*    it_sort                       = lt_sort
   it_filter                     = lt_filter
  EXCEPTIONS
    invalid_parameter_combination 1
    program_error                 2
    too_many_lines                3
    OTHERS                        4.

CALL SCREEN '123'.

MODULE user_command_0123 INPUT.

  IF sy-ucomm 'BACK'.
    LEAVE TO SCREEN '0'.
  ENDIF.
ENDMODULE.

*************************Create structure******************

* Goto SE11.

* Select data type and give name and select type structure.

* Give fields.



Check and activate.

*********************End of create structure**************

******************Call screen 123**************

* Double clicks on screen number.

* Give description.

Uncomment the 'MODULE USER_COMMAND_123.' in under flow logic tab.

    - Double click on 'USER_COMMAND_123'. and write code.

            MODULE user_command_1234 INPUT.

          Isy-ucomm 'BACK'.
            LEAVE TO SCREEN '0'.
          ENDIF.
        ENDMODULE.

* Click on layout.

* Click on custom container button and drag.



* Give name (used in container creation).

* Go back and activate the screen.

*****************End of screen 123**************

Input


Output




Before


******************Thank You*******************

Comments

Popular posts from this blog

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).

Concatenation new syntax( 7.4+ ).