0% found this document useful (0 votes)
11 views

OOP PGM2

The document describes an ABAP report program named ZPRA_OOP_ALV_REPORT that generates an ALV (ABAP List Viewer) report based on purchase order data from the EKKO and EKPO tables. It defines data structures, selects data based on user input, and sets up the ALV grid layout and field catalog for display. The program also includes modules for handling output and user commands.

Uploaded by

gmbalaji
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

OOP PGM2

The document describes an ABAP report program named ZPRA_OOP_ALV_REPORT that generates an ALV (ABAP List Viewer) report based on purchase order data from the EKKO and EKPO tables. It defines data structures, selects data based on user input, and sets up the ALV grid layout and field catalog for display. The program also includes modules for handling output and user commands.

Uploaded by

gmbalaji
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

*&---------------------------------------------------------------------*

*& Report ZPRA_OOP_ALV_REPORT


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZPRA_OOP_ALV_REPORT.

TABLES EKKO.
DATA: BEGIN OF TY_PODATA,
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
AEDAT TYPE EKKO-AEDAT,
LIFNR TYPE EKKO-LIFNR,
EKORG TYPE EKKO-EKORG,
EKGRP TYPE EKKO-EKGRP,
EBELP TYPE EKPO-EBELP,
TXZ01 TYPE EKPO-TXZ01,
WERKS TYPE EKPO-WERKS,
MENGE TYPE EKPO-MENGE,
MEINS TYPE EKPO-MEINS,
NETWR TYPE EKPO-NETWR,
END OF TY_PODATA.

DATA: IT_PODATA LIKE STANDARD TABLE OF TY_PODATA,


WA_PODATA LIKE LINE OF IT_PODATA.

DATA: FIELDCAT TYPE LVC_T_FCAT,


WAFIELD LIKE LINE OF FIELDCAT.

DATA LAYOUT TYPE LVC_S_LAYO.

DATA: CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,


ALVGRID TYPE REF TO CL_GUI_ALV_GRID.

SELECT-OPTIONS: SEBELN FOR EKKO-EBELN.

START-OF-SELECTION.

SELECT K~EBELN K~BUKRS K~AEDAT K~LIFNR K~EKORG K~EKGRP


P~EBELP P~TXZ01 P~WERKS P~MENGE P~MEINS P~NETWR FROM
EKKO AS K INNER JOIN EKPO AS P ON P~EBELN = K~EBELN
INTO TABLE IT_PODATA WHERE K~EBELN IN SEBELN.

LAYOUT-ZEBRA = 'X'.

WAFIELD-COL_POS = 1.
WAFIELD-FIELDNAME = 'EBELN'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'PO DOC NO'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 2.
WAFIELD-FIELDNAME = 'BUKRS'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'COMPANY'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 3.
WAFIELD-FIELDNAME = 'AEDAT'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'PO DATE'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 4.
WAFIELD-FIELDNAME = 'LIFNR'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'VENDOR'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 5.
WAFIELD-FIELDNAME = 'EKORG'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'PUR ORG'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 6.
WAFIELD-FIELDNAME = 'EKGRP'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'PUR GROUP'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 7.
WAFIELD-FIELDNAME = 'EBELP'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'ITEM NO'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 8.
WAFIELD-FIELDNAME = 'TXZ01'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'SHORT TEXT'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 9.
WAFIELD-FIELDNAME = 'WERKS'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'PLANT'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 10.
WAFIELD-FIELDNAME = 'MENGE'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'QUANTITY'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 11.
WAFIELD-FIELDNAME = 'MEINS'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'UNIT'.
APPEND WAFIELD TO FIELDCAT.

WAFIELD-COL_POS = 12.
WAFIELD-FIELDNAME = 'NETWR'.
WAFIELD-TABNAME = 'IT_PODATA'.
WAFIELD-COLTEXT = 'PRICE'.
APPEND WAFIELD TO FIELDCAT.

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

CALL SCREEN 2000.

*&---------------------------------------------------------------------*
*& Module STATUS_2000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_2000 OUTPUT.
SET PF-STATUS 'ALVMENU'.
SET TITLEBAR 'TIT'.

CREATE OBJECT CONTAINER


EXPORTING
* PARENT =
CONTAINER_NAME = 'ALVCONTAINER'
.

CREATE OBJECT ALVGRID


EXPORTING
* I_SHELLSTYLE = 0
* I_LIFETIME =
I_PARENT = CONTAINER
.

CALL METHOD ALVGRID->SET_TABLE_FOR_FIRST_DISPLAY


EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
* I_SAVE =
* I_DEFAULT = 'X'
IS_LAYOUT = LAYOUT
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = IT_PODATA
IT_FIELDCATALOG = FIELDCAT
* IT_SORT =
* IT_FILTER =
* EXCEPTIONS
* INVALID_PARAMETER_COMBINATION = 1
* PROGRAM_ERROR = 2
* TOO_MANY_LINES = 3
* others = 4
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

ENDMODULE. " STATUS_2000 OUTPUT


*&---------------------------------------------------------------------*
*& Module USER_COMMAND_2000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_2000 INPUT.

CASE SY-UCOMM.
WHEN 'EXT'.
LEAVE PROGRAM.
ENDCASE.

ENDMODULE. " USER_COMMAND_2000 INPUT

You might also like