Shared Top Border

Enterprise Resource
Planning Portal

 

Advertise | Founder BLOG

ERPGenie.COM ABAP Tips and Tricks Database

THE ultimate
ERP website

 

Forums | Vote for us |

Google    Other Search Options

Home arrow Sample Code arrow ABAP Reports arrow Purchase Order History
Purchase Order History PDF Print E-mail
User Rating: / 0
PoorBest 
Written by Anon.   
Saturday, 20 January 2007
Purchase Order History Mass Display *  Purchase Order History Mass Display
 *
 *  You can request report by :
 *  1.  Change date
 *  2.  User Name
 *  3.  Purchase Order Number
 *  4.  Vendor Code
 *
 
REPORT ZPOCHANGE LINE-SIZE 132 NO STANDARD PAGE HEADING
                  LINE-COUNT 065(001)
                  MESSAGE-ID VR.
 
 TABLES: DD04T,
         CDHDR,
         CDPOS,
         DD03L,
         DD41V,
         T685T,
         VBPA,
         TPART,
         KONVC,
         EKKO.
 
 SELECT-OPTIONS: XUDATE FOR CDHDR-UDATE,
                 XNAME  FOR CDHDR-USERNAME,
                 XEBELN FOR EKKO-EBELN,
                 XLIFNR FOR EKKO-LIFNR.
 
 SELECTION-SCREEN SKIP.
 * TEXT-001 - Sorting Sequence
 
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
 PARAMETERS: SUDATE RADIOBUTTON GROUP R1,
             SNAME  RADIOBUTTON GROUP R1,
             SOBID  RADIOBUTTON GROUP R1.
 SELECTION-SCREEN END OF BLOCK BLK1.
 
 DATA: WFLAG,
       WCHANGENR LIKE CDHDR-CHANGENR.
 
 DATA: INDTEXT(60) TYPE C.
 
 DATA: BEGIN OF ICDHDR OCCURS 50.
         INCLUDE STRUCTURE CDHDR.
 DATA: END OF ICDHDR.
 
 DATA: BEGIN OF ICDSHW OCCURS 50.
         INCLUDE STRUCTURE CDSHW.
 DATA: END OF ICDSHW.
 
 DATA: BEGIN OF EKKEY,
         EBELN LIKE EKET-EBELN,
         EBELP LIKE EKET-EBELP,
         ETENR LIKE EKET-ETENR,
       END OF EKKEY.
 
 DATA: BEGIN OF ITAB OCCURS 50,
         BEGIN OF EKKEY,
           EBELN LIKE EKET-EBELN,
           EBELP LIKE EKET-EBELP,
           ETENR LIKE EKET-ETENR,
         END OF EKKEY,
         CHANGENR LIKE CDHDR-CHANGENR,
         UDATE    LIKE CDHDR-UDATE,
         UTIME    LIKE CDHDR-UTIME,
         USERNAME LIKE CDHDR-USERNAME,
         CHNGIND  LIKE CDSHW-CHNGIND,
         FTEXT    LIKE CDSHW-FTEXT,
         OUTLEN   LIKE CDSHW-OUTLEN,
         F_OLD    LIKE CDSHW-F_OLD,
         F_NEW    LIKE CDSHW-F_NEW,
       END OF ITAB.
 
 DATA: OLD_OBJECTID LIKE CDHDR-OBJECTID.
 
 FIELD-SYMBOLS: <F_OLD>, <F_NEW>.
 
 SELECT * FROM EKKO WHERE EBELN IN XEBELN AND
                          LIFNR IN XLIFNR.
   CLEAR CDHDR.
   CLEAR CDPOS.
   CDHDR-OBJECTCLAS = 'EINKBELEG'.
   CDHDR-OBJECTID   = EKKO-EBELN.
   PERFORM GETCHGDOCS.
 ENDSELECT.
 
 IF SUDATE = 'X'.
   SORT ITAB BY UDATE EKKEY-EBELN CHANGENR EKKEY-EBELP
                EKKEY-ETENR.
 ELSEIF SNAME = 'X'.
   SORT ITAB BY USERNAME EKKEY-EBELN CHANGENR EKKEY-EBELP
                EKKEY-ETENR.
 ELSE.
   SORT ITAB BY EKKEY-EBELN CHANGENR EKKEY-EBELP EKKEY-ETENR.
 ENDIF.
 
 LOOP AT ITAB.
   CLEAR: INDTEXT, EKKEY.
   CASE ITAB-CHNGIND.
     WHEN 'U'.
         INDTEXT(50) = ITAB-FTEXT.
         INDTEXT+51  = TEXT-020.
         CONDENSE INDTEXT.
     WHEN 'D'.
         INDTEXT = TEXT-021.
     WHEN 'E'.
         INDTEXT(5) = ITAB-FTEXT.
         INDTEXT+51 = TEXT-021.
         CONDENSE INDTEXT.
       WHEN 'I'.
         INDTEXT = TEXT-022.
     ENDCASE.
     RESERVE 4 LINES.
     IF WCHANGENR NE ITAB-CHANGENR.
       WCHANGENR = ITAB-CHANGENR.
       EKKEY = ITAB-EKKEY.
       WRITE:/ ITAB-UDATE UNDER 'Change Date',
               ITAB-UTIME UNDER 'Time',
               ITAB-USERNAME UNDER 'User Name',
               ITAB-EKKEY-EBELN UNDER 'PO No',
               ITAB-EKKEY-EBELP UNDER 'Item',
               ITAB-EKKEY-ETENR UNDER 'Sch No',
               INDTEXT     UNDER 'Changes'.
     ELSEIF ITAB-EKKEY NE EKKEY.
       WRITE:/ ITAB-EKKEY-EBELP UNDER 'Item',
               ITAB-EKKEY-ETENR UNDER 'Sch No',
               INDTEXT     UNDER 'Changes'.
     ENDIF.
 
     CASE ITAB-CHNGIND.
       WHEN 'U'.
         ASSIGN ITAB-F_OLD(ITAB-OUTLEN) TO <F_OLD>.
         ASSIGN ITAB-F_NEW(ITAB-OUTLEN) TO <F_NEW>.
         WRITE: / TEXT-023  UNDER 'Changes',
                  <F_OLD>.
         WRITE: / TEXT-024 UNDER 'Changes',
                  <F_NEW>.
       WHEN 'E'.
         ASSIGN ITAB-F_OLD(ITAB-OUTLEN) TO <F_OLD>.
         WRITE: TEXT-023 UNDER 'Changes',
                <F_OLD>.
     ENDCASE.
     SKIP.
 ENDLOOP.
 
 
 TOP-OF-PAGE.
 WRITE:/ SY-DATUM,SY-UZEIT,
        50 'P U R C H A S E  O R D E R   H I S T O R Y',
       120 'Page', SY-PAGNO.
 WRITE: / SY-REPID,
          60 'Purchase Orders Changes'.
 SKIP.
 ULINE.
 IF SUDATE = 'X'.
   WRITE:/001 'Change Date',
          014 'Time',
          024 'User Name',
          038 'PO No',
          050 'Item',
          057 'Sch No',
          065 'Changes'.
 ELSEIF SOBID = 'X'.
   WRITE:/001 'PO No',
          013 'Item',
          020 'Sch No',
          028 'Change Date',
          041 'Time',
          051 'User Name',
          065 'Changes'.
 ELSE.
   WRITE:/001 'User Name',
          015 'Change Date',
          028 'Time',
          038 'PO No',
          050 'Item',
          057 'Sch No',
          065 'Changes'.
 ENDIF.
 ULINE.
 
 FORM GETCHGDOCS.
   CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
        EXPORTING
             DATE_OF_CHANGE    = CDHDR-UDATE
             OBJECTCLASS       = CDHDR-OBJECTCLAS
             OBJECTID          = CDHDR-OBJECTID
             TIME_OF_CHANGE    = CDHDR-UTIME
             USERNAME          = CDHDR-USERNAME
        TABLES
             I_CDHDR           = ICDHDR
        EXCEPTIONS
             NO_POSITION_FOUND = 1
             OTHERS            = 2.
 
   CHECK SY-SUBRC EQ 0.
   DELETE ICDHDR WHERE CHANGE_IND EQ 'I'.
   CHECK NOT ICDHDR[] IS INITIAL.
   LOOP AT ICDHDR.
     CHECK ICDHDR-UDATE IN XUDATE.
     CHECK ICDHDR-USERNAME IN XNAME.
     CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
                  EXPORTING  CHANGENUMBER       = ICDHDR-CHANGENR
                  IMPORTING  HEADER             = CDHDR
                  TABLES     EDITPOS            = ICDSHW
                  EXCEPTIONS NO_POSITION_FOUND  = 1
                             OTHERS             = 2.
     CHECK SY-SUBRC EQ 0.
     LOOP AT ICDSHW.
       CHECK ICDSHW-TEXT_CASE EQ SPACE.
       MOVE-CORRESPONDING ICDSHW TO ITAB.
       MOVE-CORRESPONDING ICDHDR TO ITAB.
       MOVE ICDSHW-TABKEY+3 TO ITAB-EKKEY.
       APPEND ITAB.
     ENDLOOP.
   ENDLOOP.
 ENDFORM.
 *
 * END OF PROGRAM

 
< Prev   Next >

Google Search

Google Ads

Shared Bottom Border

Contact Us | Polls | Add URL | Contribute | Privacy | Terms | Feedback

Discussion Forum | BLOG | Consultants: Post your resume | Companies: Advertise on ERPGenie.COM | Post Job
Financials Consultant | Consultant Review | Gallia Consulting | Supply Chain Project | SAP Financials Forum
GenieHoldings.COM, Inc. | Genie Press | WorkflowGenie | ESAGenie | ERPTopSites | ABAP Tips and Tricks | SAP Solutions Database

EDIGenie | Searching Survivor