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

Login

Login to view more content!!!





Lost Password?
No account yet? Register

Registered Access

Poll

What area of ABAP are you interested in?
 
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

Statistics

Contribution Activity
Utilities: 39
Tips and Tricks: 337
Sample Code: 170
Total Contributions: 561

Member Activity
Members: 6342 since 2/1/2007!
New: 1 since yesterday!
Visitors: 1240423
We have 1 guest online

Newest Members

Welcome our newest members:

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