Sunteți pe pagina 1din 5

*----------------------------------------------------------------------*

*
CLASS FIRST DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS FIRST DEFINITION.
PUBLIC SECTION.
TYPES : BEGIN
VBELN
ERDAT
ERNAM
END OF

OF TY_VBAK,
TYPE VBAK-VBELN,
TYPE VBAK-ERDAT,
TYPE VBAK-ERNAM,
TY_VBAK.

CLASS-DATA GT_TAB TYPE TABLE OF TY_VBAK.


CLASS-DATA GS_TAB TYPE TY_VBAK.
CLASS-METHODS : SELECT IMPORTING VBELNLOW TYPE VBAK-VBELN
VBELNHIGH TYPE VBAK-VBELN.
METHODS CONSTRUCTOR IMPORTING VBELNLOW TYPE VBAK-VBELN
VBELNHIGH TYPE VBAK-VBELN..
ENDCLASS.

"FIRST DEFINITION

*----------------------------------------------------------------------*
*
CLASS FIRST IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS FIRST IMPLEMENTATION.
METHOD CONSTRUCTOR.
SELECT VBELN ERDAT ERNAM
FROM VBAK INTO TABLE GT_TAB
WHERE VBELN BETWEEN VBELNLOW AND VBELNHIGH .
ENDMETHOD.
METHOD SELECT.
SELECT VBELN ERDAT ERNAM
FROM VBAK INTO TABLE GT_TAB
WHERE VBELN BETWEEN VBELNLOW AND VBELNHIGH .
ENDMETHOD.
"select
ENDCLASS.

"FIRST IMPLEMENTATION

*----------------------------------------------------------------------*
*
CLASS SECOND DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS SECOND DEFINITION INHERITING FROM FIRST.
PUBLIC SECTION.
TYPES : BEGIN OF TY_VBAP,
VBELN TYPE VBAK-VBELN,
POSNR TYPE VBAP-POSNR,
PSTYV TYPE VBAP-PSTYV,

MATNR TYPE VBAP-MATNR,


END OF TY_VBAP.

*
*
*

CLASS-DATA GT_TAB1 TYPE TABLE OF TY_VBAP.


CLASS-DATA GS_TAB1 TYPE TY_VBAP.
CLASS-METHODS : SELECT1.
CLASS-METHODS : SELECT IMPORTING VBELNLOW TYPE VBAK-VBELN
VBELNHIGH TYPE VBAK-VBELN,
DISPLAY1 .

ENDCLASS.
"SECOND DEFINITION
*----------------------------------------------------------------------*
*
CLASS SECOND IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS SECOND IMPLEMENTATION.
METHOD SELECT1.
SELECT VBELN POSNR PSTYV MATNR
FROM VBAP INTO CORRESPONDING FIELDS OF TABLE GT_TAB1
FOR ALL ENTRIES IN GT_TAB
WHERE VBELN EQ GT_TAB-VBELN.
ENDMETHOD.
ENDCLASS.

"select1
"SECOND IMPLEMENTATION

*----------------------------------------------------------------------*
*
CLASS THIRD DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS THIRD DEFINITION INHERITING FROM SECOND.
TYPE-POOLS : SLIS.
PUBLIC SECTION.
TYPES : BEGIN OF TY_FINAL,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
ERNAM TYPE VBAK-ERNAM,
POSNR TYPE VBAP-POSNR,
PSTYV TYPE VBAP-PSTYV,
MATNR TYPE VBAP-MATNR,
END OF TY_FINAL.
CLASS-DATA : GT_FINAL TYPE TABLE OF TY_FINAL,
GS_FINAL TYPE TY_FINAL.
CLASS-METHODS : FINALDISPLAY.
ENDCLASS.

"THIRD DEFINITION

*----------------------------------------------------------------------*
*
CLASS THIRD IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*

CLASS THIRD IMPLEMENTATION.


METHOD FINALDISPLAY.
LOOP AT GT_TAB1 INTO GS_TAB1.
READ TABLE GT_TAB INTO GS_TAB WITH KEY VBELN = GS_TAB1-VBELN.
MOVE-CORRESPONDING GS_TAB1 TO GS_FINAL.
MOVE-CORRESPONDING GS_TAB TO GS_FINAL.
APPEND GS_FINAL TO GT_FINAL.
ENDLOOP.
DATA : GS_LOUT TYPE SLIS_LAYOUT_ALV.
GS_LOUT-ZEBRA = 'X'.
GS_LOUT-COLWIDTH_OPTIMIZE = 'X'.
DATA : GT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
GS_FCAT TYPE SLIS_FIELDCAT_ALV.
GS_FCAT-COL_POS = 1. "Column appearance in the report
GS_FCAT-FIELDNAME = 'VBELN'. "Data Base Field Name
GS_FCAT-TABNAME = 'gt_FINAL'. "Name of the Internal table
GS_FCAT-NO_ZERO = 'X'. "No Leading Zeros in the Report
GS_FCAT-EMPHASIZE = 'C610'. "Color setting for the columns
GS_FCAT-SELTEXT_S = 'SALES NUMBER'. "user Description - 10 lr
GS_FCAT-EDIT = 'X'. "Edit option in Report
GS_FCAT-HOTSPOT = 'X'. "Hot spot - hand symbol
GS_FCAT-DO_SUM = 'X'. "Summation Field
GS_FCAT-JUST = 'R'. "Justification Left (L) / Right (R) / Center (c)
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-COL_POS = 2. "Column appearance in the report
GS_FCAT-FIELDNAME = 'ERNAM'. "Data Base Field Name
GS_FCAT-TABNAME = 'GT_FINAL'. "Name of the Internal table
GS_FCAT-SELTEXT_M = 'NAME'. "user Description - 20 lr
GS_FCAT-JUST = 'L'. "Justification Left (L) / Right (R) / Center (c)
* gs_fcat-no_out = 'X'. "No Output Display
* gs_fcat-checkbox = 'X'. "Display as Checkbox
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-COL_POS = 3. "Column appearance in the report
GS_FCAT-FIELDNAME = 'ERDAT'. "Data Base Field Name
GS_FCAT-TABNAME = 'DATE'. "Name of the Internal table
GS_FCAT-SELTEXT_M = 'COMPANY CODE'. "user Description
GS_FCAT-JUST = 'C'. "Justification Left (L) / Right (R) / Center (c)
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-COL_POS = 4. "Column appearance in the report
GS_FCAT-FIELDNAME = 'POSNR'. "Data Base Field Name
GS_FCAT-TABNAME = 'gt_FINAL'. "Name of the Internal table
GS_FCAT-SELTEXT_M = 'POSNR'. "user Description
GS_FCAT-JUST = 'C'. "Justification Left (L) / Right (R) / Center (c)
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
GS_FCAT-COL_POS = 5. "Column appearance in the report
GS_FCAT-FIELDNAME = 'PSTYV'. "Data Base Field Name
GS_FCAT-TABNAME = 'gt_FINAL'. "Name of the Internal table
GS_FCAT-SELTEXT_M = 'PSTYV'. "user Description
GS_FCAT-JUST = 'C'. "Justification Left (L) / Right (R) / Center (c)

APPEND GS_FCAT TO GT_FCAT.


CLEAR GS_FCAT.
GS_FCAT-COL_POS = 6. "Column appearance in the report
GS_FCAT-FIELDNAME = 'MATNR'. "Data Base Field Name
GS_FCAT-TABNAME = 'MATERIAL'. "Name of the Internal table
GS_FCAT-SELTEXT_M = 'MATERIAL NUUMBER'. "user Description
GS_FCAT-JUST = 'C'. "Justification Left (L) / Right (R) / Center (c)
APPEND GS_FCAT TO GT_FCAT.
CLEAR GS_FCAT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_GRID_TITLE
= 'SO DETAILS'
IS_LAYOUT
= GS_LOUT
IT_FIELDCAT
= GT_FCAT
TABLES
T_OUTTAB
= GT_FINAL
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.

ENDMETHOD.

"FINALDISPLAY

ENDCLASS.

"THIRD IMPLEMENTATION

START-OF-SELECTION.
TABLES : VBAK.
SELECT-OPTIONS S_VBELN FOR VBAK-VBELN.
IF S_VBELN IS INITIAL.
DATA: OBJ TYPE REF TO FIRST.
CREATE OBJECT OBJ EXPORTING VBELNLOW = '0000004900'
VBELNHIGH = '0000005000'.
CALL METHOD SECOND=>SELECT1.
CALL METHOD THIRD=>FINALDISPLAY.
ELSE.
CALL METHOD FIRST=>SELECT( EXPORTING VBELNLOW = S_VBELN-LOW
VBELNHIGH = S_VBELN-HIGH ).
CALL METHOD SECOND=>SELECT1.
CALL METHOD THIRD=>FINALDISPLAY.
ENDIF.
*
*IF S_VBELN-LOW
* CALL METHOD
*
** CALL METHOD
*
* CALL METHOD
*

IS NOT INITIAL AND S_VBELN-HIGH IS NOT INITIAL.


OBJ->SELECT( EXPORTING VBELNLOW = S_VBELN-LOW
VBELNHIGH = S_VBELN-HIGH).
OBJ->DISPLAY( ).
OBJ->SELECT1.

* ELSE.
*
CALL METHOD OBJ->SELECT( EXPORTING VBELNLOW =
*
VBELNHIGH = S_VBELN-HIGH ).
** CALL METHOD OBJ->DISPLAY( ).
*
* CALL METHOD OBJ->SELECT1.
*
* ENDIF.
** CALL METHOD OBJ->DISPLAY1( ).
* CALL METHOD OBJ->FINALDISPLAY.

S-ar putea să vă placă și