Display Purchase order details using OOPS ALV in ABAP(Manual field catlog).

  Refer - Steps for OOPS ALV

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_ekko_ekpo1.
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: 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.

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.


lr_fieldcat-fieldname 'EBELN'.
lr_fieldcat-scrtext_l 'Purchase DOC Num'.
APPEND lr_fieldcat TO lt_fieldcat.
CLEARlr_fieldcat.

lr_fieldcat-fieldname 'BUKRS'.
lr_fieldcat-scrtext_l 'Company code'.
APPEND lr_fieldcat TO lt_fieldcat.
CLEARlr_fieldcat.

lr_fieldcat-fieldname 'BSTYP'.
lr_fieldcat-scrtext_l 'Purchase DOC Category'.
APPEND lr_fieldcat TO lt_fieldcat.
CLEARlr_fieldcat.

lr_fieldcat-fieldname 'BSART'.
lr_fieldcat-scrtext_l 'Purchase DOC Type'.
APPEND lr_fieldcat TO lt_fieldcat.
CLEARlr_fieldcat.

lr_fieldcat-fieldname 'EBELP'.
lr_fieldcat-scrtext_l 'Item Number'.
APPEND lr_fieldcat TO lt_fieldcat.
CLEARlr_fieldcat.

lr_fieldcat-fieldname 'MATNR'.
lr_fieldcat-scrtext_l 'Material Number'.
APPEND lr_fieldcat TO lt_fieldcat.
CLEARlr_fieldcat.

lr_fieldcat-fieldname 'WERKS'.
lr_fieldcat-scrtext_l 'PLANT'.
APPEND lr_fieldcat TO lt_fieldcat.
CLEARlr_fieldcat.

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

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

CALL SCREEN '1234'.

MODULE user_command_1234 INPUT.
  IF sy-ucomm 'BACK'.
    LEAVE TO SCREEN '0'.

  ENDIF.

ENDMODULE.

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

* Double clicks on screen number.

* Give description.

* Uncomment the 'MODULE USER_COMMAND_1234.' in under flow logic tab.

    - Double click on 'USER_COMMAND_1234'. 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.

* Go back and activate the screen.


* Give name (used in container creation).

**************************End of screen 100*********************


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