Purchase order Price History Print Problem

Respected Members,
When i am executing the tcode ME1P then it is showing suppose seven records and as soon as i click on print icon ,one spool request is getting generate.
When i am seeing that spool request it is showing seven pages ie each page with single record.
My question is that i want all records should come on single page.
It should not take single page for single record.
How to do that i am not getting.
Would you all please help me out to solve this issue.
Thanks

Hi,
Following report is the sample report for PO Histroy Report.
REPORT  YMS_POHISTROY  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
Thanks,
Sankar M

Similar Messages

  • Purchase Order Price and Invoice verification price

    Hi All,
    In which report we can get purchase order price and Invoice verification price in SAP standard.
    Thank in Advance........
    Regards,
    Sanjay

    Hello,
    Check ME80FN transaction and select change view on the output screen and select Purchase order history.
    Regards,
    Shailesh

  • Previous Purchase Order Price

    While creating Purchase order, if i need to see the Previous Purchase order Price for the material, From where i have to see?

    Hi
    Prompt the last Purchase Order Price for the Material
    If you want the system to take the price from the last Purchase Order, then do not maintain the conditions in the info record because it has precedence over the last PO. This means that the net price field in the info record should be left blank.
    Even though no price was maintained, the info record will still keep track of the Order price history.
    To check the Order price history, go into the material info record and click Environment -> Order price history
    Regards
    Anand

  • Order price history

    HI,
       IN Order Price History report  theer eis one column variance how that vaue is calculated,
    for ex
    NET PRICE             VARIANCE
    350                           
    304                              13.1-
                                                         HOW THESE *13.1* IS CALCULATED.
                                                             THKS.

    Hi,
    The variance which display in the Order price history is depends on the Material master price & the PO price.
    Check for your purchase order price & the same in Material master accounting 1 view.If there is any difference between the 2 then the variance will be come into picture.
    It also considers the frequent change in PO price & also compare with the Purchase info record updation.
    rgds
    gsc

  • Purchase order price change report

    Hello
    How to retieve the purchase order price change report ? do we have any standard report for it or any table which gives these data?
    kindl

    HI
    Have you activate version management at your end for PO,i think this will help you to track changes of PO for qty,price etc.
    [http://wiki.sdn.sap.com/wiki/display/ERPLO/Version+Management]
    Regards
    Kailas Ugale

  • Error in the purchase order price.

    Hi
    Can you show me the standard procedure to correct a price difference between the PO and the invoice for the following cases. 
    The PO was created in September/2010 with a price of 15.
    The GR was conducted in September/2010 with the same price.
    The invoice is from November/2010 with a price of 24. 
    I wanted to cancel the receipt, or the period is closed. On the other hand it handles no price difference account.
    How can I fix this? 
    Thank you for your help

    Hi,
    Check price control of the material , it must be V, so the system valuates goods receipts with the purchase order price only . And as you have sufficient stock in invoiced quantity, the differences between the order price and the invoice price are debited to the stock account.
    If no sufficient stock available  in invoiced quantity or quantity is consumed or issued already before invoicing, then the difference between the order price and the invoice price is only posted  an u201CExpenses/Revenue from price differencesu201D account
    Regards,
    Biju K

  • Purchase order emailed or printed or faxed to vendor

    Hi Team,
    There is a requirement to have Purchase Orderu2018s emailed to the vendor ,if there is no email then it should be printed or Faxed to the vendor.
    The Purchase Order email need to be generated automatically using output determination.Where if no email address is held in SAP, the Purchase Order should be printed or faxed and sent to the vendor  (Order should be email, fax or print)
    can anyone guide me the steps for configuring the above requirement.
    Thanks

    hi..
    Message type for PO
    Go to
    SPRO- > MM -> Puchasing- > Purchase Order ->Forms for Messages ->Assign Form and Output Program for Purchase Order
    Generally for mailing its MAIL output type..
    open this and assign the programs name(if created) and form name(if created by ABAP otherwise standard program name will be there) for any particular output type which you want to use for your PO output
    here set ur communication medium..whether u want to communicate with vendor through fax, mail, or different modes are there..
    After that go to me21n. then Goto menu and messages..
    here in the output column assing your output type and ente the communication method button...assign output device there..
    It will work..
    And if you using own defind output type then you have to do lot of congig like defien message type and message determination schema....
    hope it works.
    thanks...

  • Purchase requsition and Purchase order Price Changes

    Hi All,
    When purchase requsition(XXXXXXXX) is converted in to a purchase order through ME 59N(YYYYYYYYYY),after converting in to a purchase order i will change the purchase order price to a new value.
    How can i track the price changes for a purchase order that is converted from a purchase requsition.(i know i can see the changes to a PO,under item changes for PO)
    Is this data is stored in any table?
    with regards,
    Amogh

    Hi,
    this change is not captured, because the price is being changed at the point of the PO creation and so there will be no record in the header or item changes option (the system does not see anything as being changed because this is a creation of a new PO).
    The price from the requisition is merely a suggestion and it is not meant to be a purchase price anyway (it is designed to be used to value the requisition for the  release strategy).
    I know that you can configure the system to pass this req "price" to the PO, but it is not the same price and so you will not find the type of controls that you would expect.
    In many cases a simple ABAP is written that reads POs that have a reference requisition and the ABAP compares the prices and reports on those that exceed a tolerance (either hard coded in the program or held on a new table in SAP).
    None of this is standard SAP but it is something that many people create to handle the situation where the user enters the requisition at a deliberately low value to get it through the release strategy.
    Steve B

  • Last purchase order price

    Hi All
    On which table will I be able to find the last purchase order price for a material
    Vishnu

    Hello, Vishnu
    Table name: EINE (Purchasing Info Record: Purchasing Organization Data)
    in the above table you can find the last PO price for that material. And the Conditions (Item) values are stored in the table: KONP (table name for Conditions (Item).
    Suggestion: The last PO document (i mean PO, which contains the price of the material in the PO line item) is updated in the Purchase Info record.(this you can see in the Info record display through t.code: ME13)
    Reward, if it helps,
    Regards,
    Srin.K
    Edited by: sapsrin on Feb 12, 2008 5:51 AM

  • Purchase order price determination

    Hi Gurus.
    Please help on below Inquiries
    In Purchase order, how is the net price determined?
    Is it from the agreement? the info record? RFQ? Is there a sequence for this?
    If there is, where is this configured?
    Thanks!

    Hi,
    Purchase order price determination takes place with help of  Access Sequences and Schema Group of Vendor.
    You can go for pricing manually or automatic. If you need pricing automatic you have to go for use of Access Sequences and Schema Group of Vendor. You can customize your pricing procedure according to your requirement such as like Domestic, Import and Stock transport.
    For the above individually you have to configure Pricing Procedure and the following steps are:
    SPRO->MM->Purchasing->Conditions->Define Price determination process
    1. Define Condition Table:
    2.Define Access Sequence,
    3.Define Condition Type,
    4.Define Calculating Schema,
    5.Assign Calculation Schema, Access Sequence and Condition Type,
    6.Define Schema Group Of Vendor,
    7. Define Schema Group Of Purchasing Organization,
    8.Assign Schema Group Of Vendor to Purchasing Organization,
    9.Assignment of Schema Group Of Vendor ,Schema Group Purchasing Organization and Calculation Schema.
    10. Assign Vendor to Schema Group of Vendor (XK02)
    11.Maintain Condition record (MEK1)
    after above steps, you can go for create PO in ME21N.
    In the case of Import PO, you have to activate Import PO.
    SPRO->Materials Management -> Purchasing -> Foreign Trade/Customs ->Control Foreign Trade Data in MM and SD Documents ->>>>>>
    Regards,
    Biju K

  • Purchase order price roundedoff in Print out

    Hi
    In purchase order material price is 0.068 USD but in Purchase order print view
    It shows rounded off as 0.07USD
    how to change it as 0.068 in PO print view
    Thanks

    Hello,
    Please check up the ABAPer to see the logica incorporate in PO FORM.
    If necessary you need to incorporate the logic into the FORM.
    Regards,
    Ravi

  • Purchase Order price problem

    Hi experts, i have the system customized so a purchase order needs to have a purchase requisition linked to it, for example i have the purchase requisition 300000015 with material 1000, qty 10 and price per unit 10 USD,
    when i make the purchase order and link the PR 300000015 i get the material, qty, etc, but it lets me change the price, i need to make the price on the PO not changeable unless its a 5% difference, how can i do that? thanks in advance.

    Hi,
    In PR the Price will be picked from the Material master.
    But in PO the price will not pick from the Material master, it will be always different.
    If you adapt the PR to convert to PO system will not pick the Price from PR to PO, but you need to input the net price or system will pick from the Old PO or Info record.But here if the Price is different than the Material price system will issue a warning message number 06207 which is because of variance in tolerance keys which is configured in PO " PE".
    If you want to adopt the material price you can set this Message number 06207 from warning to Error message, so that system will not allow you to input the price other than material price.
    But this is not good practice as PO has other conditions which should consider like discounts, frieght etc..
    rgds
    Chidanand

  • Purchase order price.

    We have 1 purchase order created. In purchase order there only 1 line item without  material no. Item category is K. In the po print preview   there is no price  i can view for tax and for total value. Price is entered in the po is manual. Goods of the po is also done.
    Is this pricing procedure problem or printing form problem how I can find it.

    HI,
    For Item category K is consignment.
    here we do not maintain price in PO Price comes from purchasing Info record.
    So please change the logic for  item category K and First FInd info record No from EKPO table
    then go to EINE table with Info record  record no (along with plant and P.org) and get the price
    So It has nothing to do with Pricing procedure
    Edited by: redriver on Nov 25, 2011 5:03 AM

  • Purchase Order: Price adopition

    Hi all,
    I need help on the customizing of SAP MM.
    Problem: I need to copy the price of the Purchase Requisition on the field price of the Purchase Order
    I have seen that in the transaction SPRO in Material Management - Purchasing - Environment Data - Define Default Values for Buyers there is a pop up. If I choose Settings for Default Values there are some tabs.
    In the tab Price Adoption I can only copy the price of the last purchase order and not the price of the purchase request related at the order that I'm creating.
    How can I copy the price (of any position) of the Purchase Request?
    I need this beacause the price of the Purchase Request is the price that is authorized.
    Thanks,
    Best Regards
    Andrea

    Hi Andrea,
    The price on the PR may or may not be the purchase price. The price on the PR is called the "Valuation Price", which is taken from the Material Master (Accounting View 1).
    The price for the PO is taken from the Purchasing Information Record, if Purch Org and/or Plant level prices exists (otherwise, from the last PO price for the material).
    To fulfill your need, you will need to maintain the Purchasing Information Record (ME12) for the material and vendor concerned. Here, you will maintain the price that matches the valuation price. Please note that prices can be maintained both at Purch Org level and Plant level (based on your price control settings in IMG).
    Let me know if this helped.
    Mewan

  • Purchase Order: Ship to location problem - Please help

    Hi All,
    I have come across a problem when publishing Purchase orders where the PO header ship to address differs to a seperate PO line ship to address.
    I have written the following Choose statement to try and show separate ship to locations for each separate PO line.
    <?for-each:G_LINES?>
    <?choose:?>
    <?when:number(//G_HEADERS/POH_SHIP_TO_LOCATION) = number(//G_SHIPMENTS/PLL_SHIP_TO_LOCATION)?>
    <?POL_LINE_NUM?> <?C_ITEM_DESC?> <?LINE_NOTE?>
    <?end when?>
    <?otherwise:?>
    <?POL_LINE_NUM?> <?C_ITEM_DESC?> <?LINE_NOTE?>
    SHIP TO: <?ADDRESS_LINE1?>
    <?ADDRESS_LINE2?>
    <?end otherwise?>
    <?end choose?>
    <?end for each?>
    my logic is that if the header ship to ID is = to the line items ship to ID then just show some basic PO line info.
    Otherwise if the numbers differ then show the individual lines info along with the additional Ship to address which is in ADDRESS_LINE1, ADDRESS_LINE2 etc.
    And repeat this condition for how ever many PO lines exist for the overall purchase order.
    However, when i publish this the "otherwise" condition never gets checked if the first PO line is TRUE and vis versa if the first PO line is false.
    So if the first PO line is true then every single PO line will just show the When condition even if the separate PO lines ship to ID differs to the POH_ship to id.
    any idea why the otherwise condition wont fall true for the 2nd 3rd or however many PO lines there are if the first PO line is flagged as true?
    I hope this makes sense. Many thanks for any help.
    Greg

    I have a PO that we are using that has basically the same requirements. If the line address is different (any of them) then the header prints a message to "see below" and the address line contains the shipping information.
    The way I have done this was to create a variable and compare to see of any of the lines were different when the header was read. Then check the var when the line is processed. The template is quite long as we have many fields that dynamically display/or not so I will post a truncated version below and also please note that on this form we simply gave up using the Oracle's "fantastic" MSWORD plug-in and had to use pure a XML-FO template. However, I think the portions/logic you need should be transferable into MSWORD if you are careful.
    If snipit of code is not enough let me know and I can try to paste the entire thing after my marathon meeting today <ugh!>.
    --------start code-----------
    <xsl:for-each select=".//G_HEADERS">
    <xsl:variable name="SAME_SHIP_TO_ADDRESS_USED" select="count(.//PLL_SHIP_ADDRESS_LINE1[. != current()/POH_SHIP_ADDRESS_LINE1]) = 0" />
    ...(lots of header stuff goes here)
    <xsl:for-each select=".//G_SHIPMENTS">
    <xsl:if test="$SAME_SHIP_TO_ADDRESS_USED" xdofo:ctx="3">
    <fo:block xdofo:xliff-note="if:shipline, eif, if:shipline, ifCountShip>1, PLL_SHIP_ADDRESS_LINE1" padding-bottom="0.0pt" text-align="start" orphans="2" widows="2" padding-top="0.0pt" end-indent="0.0pt" linefeed-treatment="preserve" start-indent="0.0pt" height="0pt">
    <fo:inline height="7.0pt" font-family="Arial" white-space-collapse="false" font-size="7.0pt">Address at top of page</fo:inline>
    </fo:block>
    </xsl:if>
    <xsl:if test="not($SAME_SHIP_TO_ADDRESS_USED)" xdofo:ctx="3">
    <fo:block padding-bottom="0.0pt" text-align="start" orphans="2" widows="2" padding-top="0.0pt" end-indent="0.0pt" linefeed-treatment="preserve" start-indent="0.0pt" height="0pt">
    <fo:inline height="7.0pt" font-family="Arial" white-space-collapse="false" font-size="7.0pt">
    <xsl:value-of select="PLL_SHIP_ADDRESS_LINE1" xdofo:field-name="PLL_SHIP_ADDRESS_LINE1"/>
    </fo:inline>
    </fo:block>
    ...(lots more address fields here!)
    </xsl:if>
    </xsl:for-each>
    </xsl:for-each>
    ------------end code------------
    Good luck,
    Scott

Maybe you are looking for