ā2013 Jun 10 2:18 PM
hello abaper's,
this is my code for CAPEX report
--------------------------------------------------------
*&---------------------------------------------------------------------*
*& Report ZCAPEX_REPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZCAPEX_REPORT.
TYPE-POOLS: SLIS.
*&---------------------------------------------------------------------*
*& TABLE
*&---------------------------------------------------------------------*
TABLES : ekpo, ekko, lfa1, ekkn, ekbe, anla, auaa .
*&---------------------------------------------------------------------*
*& TYEPS
*&---------------------------------------------------------------------*
TYPES: BEGIN OF TP_EKKO,
EBELN TYPE EKKO-EBELN, "Purchasing Document Number
BEDAT TYPE EKKO-BEDAT, "Purchasing Document Date
LIFNR TYPE EKKO-LIFNR, "Vendor Account Number
END OF TP_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF TP_EKKO INITIAL SIZE 0 .
DATA: WA_EKKO TYPE TP_EKKO.
TYPES: BEGIN OF TP_EKPO,
EBELN TYPE EKPO-EBELN, "Purchasing Document Number
EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document
MATNR TYPE EKPO-MATNR, "material number
TXZ01 TYPE EKPO-TXZ01, "material description
MENGE TYPE EKPO-MENGE, "Purchase Order Quantity
NETPR TYPE EKPO-NETPR, "Net Price in Purchasing Document (in Document Currency)
WERKS TYPE EKPO-WERKS, "Plant Number
MEINS TYPE EKPO-MEINS, "Purchase Order Unit of Measure
KNTTP TYPE EKPO-KNTTP, "Account Assignment Category
END OF TP_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF TP_EKPO INITIAL SIZE 0.
DATA: WA_EKPO TYPE TP_EKPO.
TYPES: BEGIN OF TP_LFA1,
NAME1 TYPE LFA1-NAME1, "Vendor name
LIFNR TYPE LFA1-LIFNR, "Vendor Account Number
END OF TP_LFA1.
DATA: IT_LFA1 TYPE STANDARD TABLE OF TP_LFA1 INITIAL SIZE 0 .
DATA: WA_LFA1 TYPE TP_LFA1.
TYPES: BEGIN OF TP_EKBE,
EBELN TYPE EKBE-EBELN, "Purchasing Document Number
EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document
BELNR TYPE EKBE-BELNR, "Number of Material Document
BWART TYPE EKBE-BWART, "Movement Type (Inventory Management)
LFGJA TYPE EKBE-LFGJA, "Fiscal Year of a Reference Document
GJAHR TYPE EKBE-GJAHR, "Material Document Year
END OF TP_EKBE.
DATA: IT_EKBE TYPE STANDARD TABLE OF TP_EKBE INITIAL SIZE 0.
DATA: WA_EKBE TYPE TP_EKBE.
TYPES: BEGIN OF TP_EKKN,
AUFNR TYPE EKKN-AUFNR, "Order Number
ANLN1 TYPE EKKN-ANLN1, "Main Asset Number
ANLN2 TYPE EKKN-ANLN2, "Asset Subnumber
EBELN TYPE EKKN-EBELN, "Purchasing Document Number
EBELp TYPE EKKN-EBELp,
END OF TP_EKKN.
DATA: IT_EKKN TYPE STANDARD TABLE OF TP_EKKN INITIAL SIZE 0 .
DATA: WA_EKKN TYPE TP_EKKN.
TYPES: BEGIN OF TP_ANLA,
ANLKL TYPE ANLA-ANLKL, "Asset class
ANLN1 TYPE ANLA-ANLN1, "Main Asset Number
END OF TP_ANLA.
DATA: IT_ANLA TYPE STANDARD TABLE OF TP_ANLA INITIAL SIZE 0.
DATA: WA_ANLA TYPE TP_ANLA.
TYPES: BEGIN OF TP_AUAA,
BELNR1 TYPE AUAA-BELNR, "Number of a settlement document
ANLN1 TYPE AUAA-ANLN1, "Main Asset Number
END OF TP_AUAA.
DATA: IT_AUAA TYPE STANDARD TABLE OF TP_AUAA INITIAL SIZE 0.
DATA: WA_AUAA TYPE TP_AUAA.
TYPES: BEGIN OF TP_NEW,
EBELN TYPE EKKO-EBELN,
BEDAT TYPE EKKO-BEDAT,
LIFNR TYPE EKKO-LIFNR,
MATNR TYPE EKPO-MATNR,
TXZ01 TYPE EKPO-TXZ01,
MENGE TYPE EKPO-MENGE,
NETPR TYPE EKPO-NETPR,
WERKS TYPE EKPO-WERKS,
EBELP TYPE EKPO-EBELP,
MEINS TYPE EKPO-MEINS,
NAME1 TYPE LFA1-NAME1,
BELNR TYPE EKBE-BELNR,
BWART TYPE EKBE-BWART,
LFGJA TYPE EKBE-LFGJA,
GJAHR TYPE EKBE-GJAHR,
AUFNR TYPE EKKN-AUFNR,
ANLN1 TYPE EKKN-ANLN1,
ANLN2 TYPE EKKN-ANLN2,
ANLKL TYPE ANLA-ANLKL,
BELNR1 TYPE AUAA-BELNR,
END OF TP_NEW.
DATA: IT_NEW TYPE STANDARD TABLE OF TP_NEW INITIAL SIZE 0.
DATA: WA_NEW TYPE TP_NEW.
DATA : IT_FCAT TYPE slis_t_fieldcat_alv.
DATA : WA_FCAT LIKE LINE OF IT_FCAT.
*&---------------------------------------------------------------------*
*& LAYOUT
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE title101.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN. "Purchase Order
SELECT-OPTIONS: S_BEDAT FOR EKKO-BEDAT. "Purchasing Document Date
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
title101 = 'Input Parameters'.
*&---------------------------------------------------------------------*
*& MAIN PROGRAM
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM DATAFETCH.
PERFORM FIELCAT.
PERFORM GRID.
*&---------------------------------------------------------------------*
*& TOP OF PAGE
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
WRITE : 30 'CAPEX STATUS REPORT'
INVERSE OFF.
WRITE: SY-ULINE .
*&---------------------------------------------------------------------*
*& Form DATAFETCH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATAFETCH .
SELECT EBELN
BEDAT
LIFNR
FROM EKKO
INTO TABLE IT_EKKO WHERE EBELN IN S_EBELN AND BEDAT IN S_BEDAT.
IF IT_EKKO IS NOT INITIAL.
SELECT NAME1
LIFNR
FROM LFA1
INTO TABLE IT_LFA1
FOR ALL ENTRIES IN IT_EKKO WHERE LIFNR EQ IT_EKKO-LIFNR.
SELECT EBELN
EBELP
MATNR
TXZ01
MENGE
NETPR
WERKS
MEINS
KNTTP
FROM EKPO
INTO TABLE IT_EKPO
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN EQ IT_EKKO-EBELN AND KNTTP = 'A'.
SELECT EBELN
EBELP
BELNR
BWART
LFGJA
GJAHR
FROM EKBE
INTO TABLE IT_EKBE
FOR ALL ENTRIES IN IT_EKPO WHERE EBELN EQ IT_EKPO-EBELN AND EBELP EQ IT_EKPO-EBELP.
SELECT AUFNR
ANLN1
ANLN2
EBELN
ebelp
FROM EKKN
INTO TABLE IT_EKKN
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN EQ IT_EKKO-EBELN .
IF IT_EKKN IS NOT INITIAL.
SELECT ANLKL
ANLN1
FROM ANLA
INTO TABLE IT_ANLA
FOR ALL ENTRIES IN IT_EKKN WHERE ANLN1 EQ IT_EKKN-ANLN1.
SELECT BELNR
ANLN1
FROM AUAA
INTO TABLE IT_AUAA
FOR ALL ENTRIES IN IT_EKKN WHERE ANLN1 EQ IT_EKKN-ANLN1.
Loop at it_EKbe INTO WA_EKbe.
MOVE WA_EKBE-BELNR TO WA_NEW-BELNR.
MOVE WA_EKBE-BWART TO WA_NEW-BWART.
MOVE WA_EKBE-LFGJA TO WA_NEW-LFGJA.
MOVE WA_EKBE-GJAHR TO WA_NEW-GJAHR.
Read table it_EKKN INTO WA_EKKN with key ebeln = wa_EKBE-EBELN
ebelp = wa_EKBE-EBELP.
MOVE WA_EKKN-AUFNR TO WA_NEW-AUFNR.
MOVE WA_EKKN-ANLN1 TO WA_NEW-ANLN1.
MOVE WA_EKKN-ANLN2 TO WA_NEW-ANLN2.
Read table it_EKKO into wa_ekko with key ebeln = wa_ekbe-ebeln.
MOVE WA_EKKO-EBELN TO WA_NEW-EBELN.
MOVE WA_EKKO-BEDAT TO WA_NEW-BEDAT.
Read table it_LFA1 INTO WA_LFA1 with key lifnr = wa_ekko-LIFNR .
MOVE WA_LFA1-LIFNR to WA_NEW-LIFNR.
MOVE WA_LFA1-NAME1 TO WA_NEW-NAME1.
Read table it_EKPO INTO WA_EKPO with key ebeln = wa_EKbe-EBELN
ebelp = wa_ekbe-ebelp.
MOVE WA_EKPO-WERKS TO WA_NEW-WERKS.
MOVE WA_EKPO-MATNR TO WA_NEW-MATNR.
MOVE WA_EKPO-TXZ01 TO WA_NEW-TXZ01.
MOVE WA_EKPO-MEINS TO WA_NEW-MEINS.
MOVE WA_EKPO-MENGE TO WA_NEW-MENGE.
MOVE WA_EKPO-NETPR TO WA_NEW-NETPR.
MOVE WA_EKPO-EBELP TO WA_NEW-EBELP.
READ TABLE it_anla INTO wa_anla WITH KEY anln1 = wa_ekkn-anln1.
MOVE WA_ANLA-ANLKL TO WA_NEW-ANLKL.
READ TABLE it_auaa INTO wa_auaa WITH KEY anln1 = wa_ekkn-anln1.
MOVE WA_AUAA-BELNR1 TO WA_NEW-BELNR1.
append WA_NEW to IT_NEW.
CLEAR: WA_new, WA_ekko.
endloop.
ENDIF.
ENDIF.
ENDFORM. " DATAFETCH
*&---------------------------------------------------------------------*
*& Form FIELCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELCAT .
* ----------------WERKS
WA_FCAT-COL_POS = '1'.
WA_FCAT-FIELDNAME = 'WERKS'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'PLANT NO'.
WA_FCAT-OUTPUTLEN = '9'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- BELNR
WA_FCAT-COL_POS = '2'.
WA_FCAT-FIELDNAME = 'BELNR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MATERIAL DOC'.
WA_FCAT-OUTPUTLEN = '13'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- BEDAT
WA_FCAT-COL_POS = '3'.
WA_FCAT-FIELDNAME = 'BEDAT'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'POSTING DATE'.
WA_FCAT-OUTPUTLEN = '13'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- LIFNR
WA_FCAT-COL_POS = '4'.
WA_FCAT-FIELDNAME = 'LIFNR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'VENDOR NO'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- NAME1
WA_FCAT-COL_POS = '5'.
WA_FCAT-FIELDNAME = 'NAME1'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'VENDOR NAME'.
WA_FCAT-OUTPUTLEN = '40'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- MATNR
WA_FCAT-COL_POS = '6'.
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MATERIAL NO'.
WA_FCAT-OUTPUTLEN = '20'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- TXZ01
WA_FCAT-COL_POS = '7'.
WA_FCAT-FIELDNAME = 'TXZ01'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MATERIAL DESCRIPTION'.
WA_FCAT-OUTPUTLEN = '40'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- MEINS
WA_FCAT-COL_POS = '8'.
WA_FCAT-FIELDNAME = 'MEINS'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'UNIT MEASURE'.
WA_FCAT-OUTPUTLEN = '13'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- MENGE
WA_FCAT-COL_POS = '9'.
WA_FCAT-FIELDNAME = 'MENGE'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'P.O. QTY'.
WA_FCAT-OUTPUTLEN = '9'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- NETPR
WA_FCAT-COL_POS = '10'.
WA_FCAT-FIELDNAME = 'NETPR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'NET PRICE'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- GJAHR
WA_FCAT-COL_POS = '11'.
WA_FCAT-FIELDNAME = 'GJAHR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'DOC YEAR'.
WA_FCAT-OUTPUTLEN = '9'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- LFGJA
WA_FCAT-COL_POS = '12'.
WA_FCAT-FIELDNAME = 'LFGJA'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'FISCAL YEAR'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- BWART
WA_FCAT-COL_POS = '13'.
WA_FCAT-FIELDNAME = 'BWART'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MOVEMENT TYPE'.
WA_FCAT-OUTPUTLEN = '15'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*-------------------EBELN
WA_FCAT-COL_POS = '14'.
WA_FCAT-FIELDNAME = 'EBELN'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'P.O. NO'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- EBELP
WA_FCAT-COL_POS = '15'.
WA_FCAT-FIELDNAME = 'EBELP'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'ITEM NO'.
WA_FCAT-OUTPUTLEN = '9'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- AUFNR
WA_FCAT-COL_POS = '16'.
WA_FCAT-FIELDNAME = 'AUFNR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'INTERNAL ORDER'.
WA_FCAT-OUTPUTLEN = '15'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- ANLN1
WA_FCAT-COL_POS = '17'.
WA_FCAT-FIELDNAME = 'ANLN1'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MAIN ASSET NO'.
WA_FCAT-OUTPUTLEN = '20'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
**------------------- ANLN2
WA_FCAT-COL_POS = '18'.
WA_FCAT-FIELDNAME = 'ANLN2'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'SUBASSET NO'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- BELNR
WA_FCAT-COL_POS = '19'.
WA_FCAT-FIELDNAME = 'BELNR1'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'SETTLE DOC NO'.
WA_FCAT-OUTPUTLEN = '15'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*-------------------ANLKL
WA_FCAT-COL_POS = '20'.
WA_FCAT-FIELDNAME = 'ANLKL'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'ASSET CLASS'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
ENDFORM. " FIELCAT
*&---------------------------------------------------------------------*
*& Form GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZCAPEX_REPORT'
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = IT_NEW
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " GRID
--------------------------------------------------------
i need one more favour from you all,
now i am taking main asset number from Table EKKN
i want the (fixed setteled) main asset number in my report from ANLA table
for which i can take condition from table BSIS field BSCHL ie posting key =70
now what should i do?
to get fixed final main asset number in my report
please reply
thank you,
in adavance
ā2013 Jun 10 3:00 PM
Hi Nilesh,
If you are trying to join BSIS and ANLA tables then check how they are associated via t-code SQVI. Sample for you is,
If your requirement is something else do let us know.
BR,
Ankit.
ā2013 Jun 11 4:24 PM
thanks for reply,
but i need the rest all fields in my report
specially (AUAA-BELNR ---Number of a settlement document ) this one.
the auaa is cluster table .so, i cant take it in SQVI
ā2013 Jun 13 7:52 AM
hello abaper's
i need to add the below fields in my code
Table ANEK & Fields name ANLU1 & ANLU2
Table ANEP field BELNR(accounting document no).
can anyone please suggest me, i am new in apab
thank you
ā2013 Jun 13 9:06 AM
I have done the below changes for the nesessory changes
the changes i made are in bold letters
pls somebody help mi out in this code
-------------------------------
*&---------------------------------------------------------------------*
*& Report ZCAPEX_REPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZCAPEX_REPORT.
TYPE-POOLS: SLIS.
*&---------------------------------------------------------------------*
*& TABLE
*&---------------------------------------------------------------------*
TABLES : ekpo, ekko, lfa1, ekkn, ekbe, anla, auaa, anek, anep .
*&---------------------------------------------------------------------*
*& TYEPS
*&---------------------------------------------------------------------*
TYPES: BEGIN OF TP_EKKO,
EBELN TYPE EKKO-EBELN, "Purchasing Document Number
BEDAT TYPE EKKO-BEDAT, "Purchasing Document Date
LIFNR TYPE EKKO-LIFNR, "Vendor Account Number
END OF TP_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF TP_EKKO INITIAL SIZE 0 .
DATA: WA_EKKO TYPE TP_EKKO.
TYPES: BEGIN OF TP_EKPO,
EBELN TYPE EKPO-EBELN, "Purchasing Document Number
EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document
MATNR TYPE EKPO-MATNR, "material number
TXZ01 TYPE EKPO-TXZ01, "material description
MENGE TYPE EKPO-MENGE, "Purchase Order Quantity
NETPR TYPE EKPO-NETPR, "Net Price in Purchasing Document (in Document Currency)
WERKS TYPE EKPO-WERKS, "Plant Number
MEINS TYPE EKPO-MEINS, "Purchase Order Unit of Measure
KNTTP TYPE EKPO-KNTTP, "Account Assignment Category
END OF TP_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF TP_EKPO INITIAL SIZE 0.
DATA: WA_EKPO TYPE TP_EKPO.
TYPES: BEGIN OF TP_LFA1,
NAME1 TYPE LFA1-NAME1, "Vendor name
LIFNR TYPE LFA1-LIFNR, "Vendor Account Number
END OF TP_LFA1.
DATA: IT_LFA1 TYPE STANDARD TABLE OF TP_LFA1 INITIAL SIZE 0 .
DATA: WA_LFA1 TYPE TP_LFA1.
TYPES: BEGIN OF TP_EKBE,
EBELN TYPE EKBE-EBELN, "Purchasing Document Number
EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document
BELNR TYPE EKBE-BELNR, "Number of Material Document
BWART TYPE EKBE-BWART, "Movement Type (Inventory Management)
LFGJA TYPE EKBE-LFGJA, "Fiscal Year of a Reference Document
GJAHR TYPE EKBE-GJAHR, "Material Document Year
END OF TP_EKBE.
DATA: IT_EKBE TYPE STANDARD TABLE OF TP_EKBE INITIAL SIZE 0.
DATA: WA_EKBE TYPE TP_EKBE.
TYPES: BEGIN OF TP_EKKN,
AUFNR TYPE EKKN-AUFNR, "Order Number
ANLN1 TYPE EKKN-ANLN1, "Main Asset Number
ANLN2 TYPE EKKN-ANLN2, "Asset Subnumber
EBELN TYPE EKKN-EBELN, "Purchasing Document Number
EBELp TYPE EKKN-EBELp,
END OF TP_EKKN.
DATA: IT_EKKN TYPE STANDARD TABLE OF TP_EKKN INITIAL SIZE 0 .
DATA: WA_EKKN TYPE TP_EKKN.
TYPES: BEGIN OF TP_ANLA,
ANLKL TYPE ANLA-ANLKL, "Asset class
ANLN1 TYPE ANLA-ANLN1, "Main Asset Number
AIBN1 TYPE ANLA-AIBN1, "Original asset that was transferred
END OF TP_ANLA.
DATA: IT_ANLA TYPE STANDARD TABLE OF TP_ANLA INITIAL SIZE 0.
DATA: WA_ANLA TYPE TP_ANLA.
TYPES: BEGIN OF TP_AUAA,
BELNR1 TYPE AUAA-BELNR, "Number of a settlement document
ANLN1 TYPE AUAA-ANLN1, "Main Asset Number
END OF TP_AUAA.
DATA: IT_AUAA TYPE STANDARD TABLE OF TP_AUAA INITIAL SIZE 0.
DATA: WA_AUAA TYPE TP_AUAA.
TYPES: BEGIN OF TP_ANEK,
ANLU1 TYPE ANEK-ANLU1, "Asset number acquiring/retiring asset in transfer
ANLU2 TYPE ANEK-ANLU2, "Subnumber of receiving/sending asset in transfer
EBELN TYPE ANEK-EBELN,
EBELP TYPE ANEK-EBELP,
ANLN1 TYPE ANEK-ANLN1,
BUKRS TYPE ANEk-BUKRS,
GJAHR TYPE ANEk-GJAHR,
LNRAN TYPE ANEk-LNRAN,
END OF TP_ANEK.
DATA: IT_ANEK TYPE STANDARD TABLE OF TP_ANEK INITIAL SIZE 0.
DATA: WA_ANEK TYPE TP_ANEK.
TYPES: BEGIN OF TP_ANEP,
BELNR2 TYPE ANEP-BELNR, "Accounting Document Number
ANLN1 TYPE ANEP-ANLN1, "Main Asset Number
BUKRS TYPE ANEP-BUKRS,
GJAHR TYPE ANEP-GJAHR,
LNRAN TYPE ANEP-LNRAN,
END OF TP_ANEP.
DATA: IT_ANEP TYPE STANDARD TABLE OF TP_ANEP INITIAL SIZE 0.
DATA: WA_ANEP TYPE TP_ANEP.
TYPES: BEGIN OF TP_NEW,
EBELN TYPE EKKO-EBELN,
BEDAT TYPE EKKO-BEDAT,
LIFNR TYPE EKKO-LIFNR,
MATNR TYPE EKPO-MATNR,
TXZ01 TYPE EKPO-TXZ01,
MENGE TYPE EKPO-MENGE,
NETPR TYPE EKPO-NETPR,
WERKS TYPE EKPO-WERKS,
EBELP TYPE EKPO-EBELP,
MEINS TYPE EKPO-MEINS,
NAME1 TYPE LFA1-NAME1,
BELNR TYPE EKBE-BELNR,
BWART TYPE EKBE-BWART,
LFGJA TYPE EKBE-LFGJA,
GJAHR TYPE EKBE-GJAHR,
AUFNR TYPE EKKN-AUFNR,
ANLN1 TYPE EKKN-ANLN1,
ANLN2 TYPE EKKN-ANLN2,
ANLKL TYPE ANLA-ANLKL,
AIBN1 TYPE ANLA-AIBN1,
ANLU1 TYPE ANEK-ANLU1,
ANLU2 TYPE ANEK-ANLU2,
BELNR2 TYPE ANEP-BELNR,
BELNR1 TYPE AUAA-BELNR,
END OF TP_NEW.
DATA: IT_NEW TYPE STANDARD TABLE OF TP_NEW INITIAL SIZE 0.
DATA: WA_NEW TYPE TP_NEW.
DATA : IT_FCAT TYPE slis_t_fieldcat_alv.
DATA : WA_FCAT LIKE LINE OF IT_FCAT.
*&---------------------------------------------------------------------*
*& LAYOUT
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE title101.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN. "Purchase Order
SELECT-OPTIONS: S_BEDAT FOR EKKO-BEDAT. "Purchasing Document Date
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
title101 = 'Input Parameters'.
*&---------------------------------------------------------------------*
*& MAIN PROGRAM
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM DATAFETCH.
PERFORM FIELCAT.
PERFORM GRID.
*&---------------------------------------------------------------------*
*& TOP OF PAGE
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
WRITE : 30 'CAPEX STATUS REPORT'
INVERSE OFF.
WRITE: SY-ULINE .
*&---------------------------------------------------------------------*
*& Form DATAFETCH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATAFETCH .
SELECT EBELN
BEDAT
LIFNR
FROM EKKO
INTO TABLE IT_EKKO WHERE EBELN IN S_EBELN AND BEDAT IN S_BEDAT.
IF IT_EKKO IS NOT INITIAL.
SELECT NAME1
LIFNR
FROM LFA1
INTO TABLE IT_LFA1
FOR ALL ENTRIES IN IT_EKKO WHERE LIFNR EQ IT_EKKO-LIFNR.
SELECT EBELN
EBELP
MATNR
TXZ01
MENGE
NETPR
WERKS
MEINS
KNTTP
FROM EKPO
INTO TABLE IT_EKPO
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN EQ IT_EKKO-EBELN AND KNTTP = 'A'.
SELECT EBELN
EBELP
BELNR
BWART
LFGJA
GJAHR
FROM EKBE
INTO TABLE IT_EKBE
FOR ALL ENTRIES IN IT_EKPO WHERE EBELN EQ IT_EKPO-EBELN AND EBELP EQ IT_EKPO-EBELP.
SELECT AUFNR
ANLN1
ANLN2
EBELN
ebelp
FROM EKKN
INTO TABLE IT_EKKN
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN EQ IT_EKKO-EBELN .
SELECT ANLU1
ANLU2
EBELN
EBELP
ANLN1
BUKRS
GJAHR
LNRAN
FROM ANEK
INTO TABLE IT_ANEK
FOR ALL ENTRIES IN IT_EKKO WHERE EBELN EQ IT_EKKO-EBELN." AND EBELP EQ IT_EKBE-EBELP AND
SELECT BELNR
ANLN1
BUKRS
GJAHR
LNRAN
FROM ANEP
INTO TABLE IT_ANEP
FOR ALL ENTRIES IN IT_ANEK WHERE ANLN1 EQ IT_ANEk-ANLN1 and BUKRS EQ IT_ANEk-BUKRS and GJAHR EQ IT_ANEk-GJAHR and LNRAN EQ IT_ANEk-LNRAN.
IF IT_EKKN IS NOT INITIAL.
SELECT ANLKL
ANLN1
AIBN1
FROM ANLA
INTO TABLE IT_ANLA
FOR ALL ENTRIES IN IT_EKKN WHERE ANLN1 EQ IT_EKKN-ANLN1.
SELECT BELNR
ANLN1
FROM AUAA
INTO TABLE IT_AUAA
FOR ALL ENTRIES IN IT_EKKN WHERE ANLN1 EQ IT_EKKN-ANLN1.
Loop at it_EKbe INTO WA_EKbe.
MOVE WA_EKBE-BELNR TO WA_NEW-BELNR.
MOVE WA_EKBE-BWART TO WA_NEW-BWART.
MOVE WA_EKBE-LFGJA TO WA_NEW-LFGJA.
MOVE WA_EKBE-GJAHR TO WA_NEW-GJAHR.
Read table it_EKKN INTO WA_EKKN with key ebeln = wa_EKBE-EBELN
ebelp = wa_EKBE-EBELP.
MOVE WA_EKKN-AUFNR TO WA_NEW-AUFNR.
MOVE WA_EKKN-ANLN1 TO WA_NEW-ANLN1.
MOVE WA_EKKN-ANLN2 TO WA_NEW-ANLN2.
Read table it_EKKO into wa_ekko with key ebeln = wa_ekbe-ebeln.
MOVE WA_EKKO-EBELN TO WA_NEW-EBELN.
MOVE WA_EKKO-BEDAT TO WA_NEW-BEDAT.
Read table it_LFA1 INTO WA_LFA1 with key lifnr = wa_ekko-LIFNR .
MOVE WA_LFA1-LIFNR to WA_NEW-LIFNR.
MOVE WA_LFA1-NAME1 TO WA_NEW-NAME1.
Read table it_EKPO INTO WA_EKPO with key ebeln = wa_EKbe-EBELN
ebelp = wa_ekbe-ebelp.
MOVE WA_EKPO-WERKS TO WA_NEW-WERKS.
MOVE WA_EKPO-MATNR TO WA_NEW-MATNR.
MOVE WA_EKPO-TXZ01 TO WA_NEW-TXZ01.
MOVE WA_EKPO-MEINS TO WA_NEW-MEINS.
MOVE WA_EKPO-MENGE TO WA_NEW-MENGE.
MOVE WA_EKPO-NETPR TO WA_NEW-NETPR.
MOVE WA_EKPO-EBELP TO WA_NEW-EBELP.
READ TABLE it_anla INTO wa_anla WITH KEY anln1 = wa_ekkn-anln1.
MOVE WA_ANLA-ANLKL TO WA_NEW-ANLKL.
MOVE WA_ANLA-AIBN1 TO WA_NEW-AIBN1.
READ TABLE it_auaa INTO wa_auaa WITH KEY anln1 = wa_ekkn-anln1.
MOVE WA_AUAA-BELNR1 TO WA_NEW-BELNR1.
READ TABLE it_anek INTO wa_anek WITH KEY anln1 = wa_ekkn-anln1.
MOVE WA_ANEk-ANLU1 TO WA_NEW-ANLU1.
MOVE WA_ANEK-ANLU2 TO WA_NEW-ANLU2.
READ TABLE it_anep INTO wa_anep WITH KEY anln1 = wa_ekkn-anln1.
MOVE WA_ANEP-BELNR2 TO WA_NEW-BELNR2.
append WA_NEW to IT_NEW.
CLEAR: WA_new, WA_ekko.
endloop.
ENDIF.
ENDIF.
ENDFORM. " DATAFETCH
*&---------------------------------------------------------------------*
*& Form FIELCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELCAT .
* ----------------WERKS
WA_FCAT-COL_POS = '1'.
WA_FCAT-FIELDNAME = 'WERKS'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'PLANT NO'.
WA_FCAT-OUTPUTLEN = '9'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- BELNR
WA_FCAT-COL_POS = '2'.
WA_FCAT-FIELDNAME = 'BELNR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MATERIAL DOC'.
WA_FCAT-OUTPUTLEN = '13'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- BEDAT
WA_FCAT-COL_POS = '3'.
WA_FCAT-FIELDNAME = 'BEDAT'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'POSTING DATE'.
WA_FCAT-OUTPUTLEN = '13'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- LIFNR
WA_FCAT-COL_POS = '4'.
WA_FCAT-FIELDNAME = 'LIFNR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'VENDOR NO'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- NAME1
WA_FCAT-COL_POS = '5'.
WA_FCAT-FIELDNAME = 'NAME1'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'VENDOR NAME'.
WA_FCAT-OUTPUTLEN = '40'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- MATNR
WA_FCAT-COL_POS = '6'.
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MATERIAL NO'.
WA_FCAT-OUTPUTLEN = '20'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- TXZ01
WA_FCAT-COL_POS = '7'.
WA_FCAT-FIELDNAME = 'TXZ01'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MATERIAL DESCRIPTION'.
WA_FCAT-OUTPUTLEN = '40'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- MEINS
WA_FCAT-COL_POS = '8'.
WA_FCAT-FIELDNAME = 'MEINS'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'UNIT MEASURE'.
WA_FCAT-OUTPUTLEN = '13'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- MENGE
WA_FCAT-COL_POS = '9'.
WA_FCAT-FIELDNAME = 'MENGE'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'P.O. QTY'.
WA_FCAT-OUTPUTLEN = '9'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- NETPR
WA_FCAT-COL_POS = '10'.
WA_FCAT-FIELDNAME = 'NETPR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'NET PRICE'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- GJAHR
WA_FCAT-COL_POS = '11'.
WA_FCAT-FIELDNAME = 'GJAHR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'DOC YEAR'.
WA_FCAT-OUTPUTLEN = '9'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- LFGJA
WA_FCAT-COL_POS = '12'.
WA_FCAT-FIELDNAME = 'LFGJA'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'FISCAL YEAR'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- BWART
WA_FCAT-COL_POS = '13'.
WA_FCAT-FIELDNAME = 'BWART'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MOVEMENT TYPE'.
WA_FCAT-OUTPUTLEN = '15'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*-------------------EBELN
WA_FCAT-COL_POS = '14'.
WA_FCAT-FIELDNAME = 'EBELN'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'P.O. NO'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- EBELP
WA_FCAT-COL_POS = '15'.
WA_FCAT-FIELDNAME = 'EBELP'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'ITEM NO'.
WA_FCAT-OUTPUTLEN = '9'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- AUFNR
WA_FCAT-COL_POS = '16'.
WA_FCAT-FIELDNAME = 'AUFNR'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'INTERNAL ORDER'.
WA_FCAT-OUTPUTLEN = '15'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- ANLN1 "change
WA_FCAT-COL_POS = '17'.
WA_FCAT-FIELDNAME = 'ANLA1'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'MAIN ASSET NO'.
WA_FCAT-OUTPUTLEN = '17'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
**------------------- ANLN2 "change
WA_FCAT-COL_POS = '18'.
WA_FCAT-FIELDNAME = 'ANLN2'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'SUB ASSET NO'.
WA_FCAT-OUTPUTLEN = '15'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------- BELNR
WA_FCAT-COL_POS = '19'.
WA_FCAT-FIELDNAME = 'BELNR1'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'SETTLE DOC NO'.
WA_FCAT-OUTPUTLEN = '15'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*-------------------ANLKL
WA_FCAT-COL_POS = '20'.
WA_FCAT-FIELDNAME = 'ANLKL'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'ASSET CLASS'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*-------------------ANLU1
WA_FCAT-COL_POS = '21'.
WA_FCAT-FIELDNAME = 'ANLU1'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'ASSET 1'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*-------------------ANLU2
WA_FCAT-COL_POS = '22'.
WA_FCAT-FIELDNAME = 'ANLU2'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'ASSET 2'.
WA_FCAT-OUTPUTLEN = '12'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
*------------------BELNR2
WA_FCAT-COL_POS = '23'.
WA_FCAT-FIELDNAME = 'BELNR2'.
WA_FCAT-TABNAME = 'IT_NEW'.
WA_FCAT-SELTEXT_L = 'ACC DOC NO'.
WA_FCAT-OUTPUTLEN = '15'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
ENDFORM. " FIELCAT
*&---------------------------------------------------------------------*
*& Form GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZCAPEX_REPORT'
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = IT_NEW
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " GRID