To display the purchase order details in sorting technique using factory method.

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_factory_sort.
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.
TYPES: BEGIN 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: lo_salv TYPE REF TO cl_salv_table.
DATAlo_sort TYPE REF TO cl_salv_sorts.


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

    CALL METHOD cl_salv_table=>factory
*  EXPORTING
*    list_display   = IF_SALV_C_BOOL_SAP=>FALSE
*    r_container    =
*    container_name =
      IMPORTING
        r_salv_table lo_salv
      CHANGING
        t_table      lt_final.
  CATCH cx_salv_msg.
ENDTRY.

CALL METHOD lo_salv->if_salv_gui_om_table_info~get_sorts
  RECEIVING
    value lo_sort.

TRY.
    CALL METHOD lo_sort->add_sort
      EXPORTING
        columnname 'EBELP'
*       position   =
        sequence   if_salv_c_sort=>sort_up.     " sort_down - Desending order
  CATCH cx_salv_not_found.
  CATCH cx_salv_existing.
  CATCH cx_salv_data_error.
ENDTRY.

CALL METHOD lo_salv->if_salv_gui_om_table_action~display.

Input

Output



***********************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+ ).