Layout change in invoice suitable for taking printout in A-4

Address is larger than the space provided in the pre- printed stationary invoice provided by our client, how to adjust the font, that fits for print out sheet of A- 4 size.kindly tell me how to adjust the size of layout. is there any need for ABAPer, to work on re-sizing of the layout of the slip, which is suitable for taking printout ?
regards,
g.v.shivakkumar

Hello,
          Do you mean to say that you want to shift between landscape and portrait formats of A4?
          If so find this solution.The solution is simple , go to Pages and windows and double click on the page. In the second Tab strip named "Outbound options" select "Portrait" or "Landscape" format. The page type is selected as DINA4 for A4 sized paper.
Reward Points.
Tej..

Similar Messages

  • Layout change in sales order or billing suitable for taking printout in A-4

    Address is larger than the space provided in the pre- printed stationary billing slip or sales oreder provided by our client, how to adjust the font, that fits for print out sheet of A- 4 size.kindly tell me how to adjust the size of layout. is there any need for ABAPer, to work on re-sizing of the layout of the slip, which is suitable for taking printout ?
    kindly sugggest how to dot this layout adjustements.
    regards,
    g.v.shivakkumar

    this will done by abaper.. goto se 41.. there abaper will write code ...
    ramki

  • What Changes should i do for taking material number in MM01.

    Hi ,
    I am recording Material Master 'MM01'. In that Material Number is not taking numeric values. Automatically its generating one number for one record. But I want to give my own number to that material. what changes I need to do. I want to use that recording in BDC program.
    Plz..give me the solution.

    That is due to functional settings. Here the internal and external no ranges are defined on the basis of material types.
    Just go through spro tcode logistics general->material master->material types---> define number ranges for each material type. Here you can see a table control just check whether any material type is there with external check box as checked. Now at the time of recording just enter that material types which allows you to give a external material no( inside the defined range). Or just ask your functional.

  • How can i connect a printer through PLSQL for taking printouts

    Hi,
    I want to take a printout of the specified file through PLSQL. Pls give u'r idea.
    Thanks
    Suresh

    Dear Suresh
    Can you please be specific about your doubt.
    What kind of file you want to take a printout. you mean to say any script file or the output of a select statement or something else.
    please state clearly what is your requirement
    Cheers
    Prakash Eranki

  • Change Invoicing address for number of PO's

    Hi
    We have a requirement to change the invoicing address for all PO's existing in the system.
    How can we achieve it? 
    Please help.

    Hi, 
    There is no invoicing party mentioned in PO header.
    Company procures raw material from one comapny code to another c.code.
    c.code is coming as delivery address not invoicing address.
    The invoicing address mentioned is of Customer.
    There is the requirement that invoicing address has been changed and all po that were subjected to send to previous address need to get updated with new invoicing address.
    I know that address is getting updated from adrnr field in adrc table but dont know how to change for mass po's.
    Please help.

  • Can you change the units used for size and position in layout editor?

    Hello,
    In Aperture 3.4, does anyone know if you can change the units used for size and position in layout editor?  The page is set in inches, but the image size and position are given in centimetres and I would prefer to work all in inches to create custom layouts.  I can't see any way to change this.  If anyone knows how it would be much appreciated.  Thanks!

    Aperture uses the unit settings defined in the System Preferences.  Set the "Measurement Units" in the "Region" tab of the "Language & Text" preferences to "US"; the Aperture will display the Size & Position in inches, if it is the "Book" layout manager you are asking about.
    Merry Christmas!
    Léonie

  • Layout change for S_ALR_87012143/1099 Listings report

    Hi Experts,
    is it possible to change layout of report S_ALR_87012143 - RFKQSU20 by some means other then abap code change?
    We need to add Vendor master related data (such as PO BOX , City etc to the output ) when report is being extracted as excelsheet. This sheet should later be used to submit to 1099 Express.
    Are there any other alternative provided by SAP for S_ALR_87012143 - RFKQSU20 ?
    Any help would be appreciated?
    Thanks a lot!!!!

    Hello,
    As far as I know, all the relveant information required by you are
    available for report RFIDYYWT.
    In main screen of report RFIDYYWT:
    -> go to'output control' section-> 'tax per business partner'->
    click on 'configuration'-> from menu, click 'settings'-> 'layout'->
    'change'-> select the fields from the right box and add it to
    the left box-> click 'copy'.
    BR,
    Raquel

  • Price Change in Framework Order for services, with Invoicing Plan

    Hi All,
    I create a F.O for a single item with Acct assignment"K" and Item Cat"D". The FO has two service masters with a common cost centre, with different tax codes. E.g.One with N2(19%) and the other with V0(0%). This FO is created with a periodic Invoicing plan.
    When I run MRIS for the first month, the invoice is posted with the correct values.For the second month when I change the prices randomly for the services at the service level, the invoice is posted with wrong values.
    But when I change the prices proportionately,e.g. for Serv1. from 100 to 200,300,400.. and for Serv.2. from 10 to 20,30,40.. respectively, the Invoices are calculated correctly.
    Could you please reply the reason for such a system behaviour and also the possible solution or the OSS notes for this issue. I am working in version 4.7.
    Thanks,
    Suresh Natarajan.

    Hi Steve,
    1) The invoice is calculated at a random value and I couldn't make out the proportions.
    2) Yes, the invoicing plan is Periodic with the Invoicing date as the last day of the month.The order is valid for 2 years(01.01.2007 TO 31.12.2009) and therefore in the invoicing plan of the PO, there will be invoices till 31.12.2009 with the Invoice Block. At the end of everymonth, the block will be removed for processing the Invoice(MRIS).During this time, if there is any change in the prices, we can change it and remove the Invoice Block and save the PO. Here when we change the prices randomly and execute the MRIS, it is throwing wrong values(i.e.the tax calculated is wrong)
    Thanks,
    Suresh.

  • Javascript event for Dynamic Layout change

    I'm using javascript to create a customization for a client and I ran into the following problem:
    - My code runs by replacing the window.load event, it always run when a page is loaded but it doesn't run when the dynamic layout changes.
    Does anyone know which event I can customize so that it runs always??
    The dynamic layout change is driven by the following internal code, but I can't make my code run after it:
    sendGetAppletCmd('ServiceRequestEditForm.SR Type','OMTGT=ServiceRequestEditForm&OMTHD=ServiceRequestNewNav&OMRET0=ServiceRequestHomepage&OCTYPE=','-','DefaultServiceRequestInsert','ServiceRequestNewForm','ServiceRequestEditForm','\/OnDemand\/user\/DefServiceRequestInsert');

    For the benefit of others:
    parent.document.onfocus did the trick.

  • Layout change and save for ALV report

    Hi,
    I ahve created R3 report in which report has been displayed using ALV grid, I am able to change the layout as I can see the layout -> change option in settings menu, but save and choose option is disabled.
    Please advise how to enable layoutr save and choose option for ALV grid.
    Thanks,
    Piyush

    Hi,
    According to sap help you need authorization to save Layout
    [ALV -Layout|http://help.sap.com/saphelp_sm32/helpdata/en/82/839d37664e4d45e10000009b38f8cf/content.htm]
    To save layouts for all users, you need the authorization S_ALV_LAYO with activity 23 as of Release 4.6C. You can only go to the layout administration if you have this authorization.
    You must maintain the authorization object S_ALV_LAYO using the user administration.
    If you would like to use or save the Excel view in your layout, you also require the additional authorization S_BDS_DS with activity 01,02,03,06,30; CLASSNAME ALVLAYOUTTEMPLATES and CLASSTYPE OT.
    Furthermore, there are applications that have their own authorization checks installed.
    In some ALV lists, you can only save user-specific layouts. In these cases, the indicator "user-specific" is active , on a grey background and unable to be changed. This is related to the parameter I_SAVE. This controls which options you have to save the layout.
    To be able to define default layouts, the parameter I_DEFAULT must have the value 'X'.
    Notes 409190 and 601803 also provide further information on authorizations.

  • How to retrieve the Sapscript layout changes for a particular Transport request in development server after this Transport request so many requests created  ?

    Dear Abapers,
    I request the Abapers kindly reply for this blog
    I want to retrieve the sapscript layout changes for a particular transport request in development server after that many transport request created and moved to quality ? 
    I checked in SE03 transaction the transport request was there.  But I want to retrieve the existing transport request which is not moved to Quality?
    Is it possible to retrieve the existing transport request in development which is not moved to quality ?
    Like how we retrieving the programs using versions in development server,  In the same way I want to retrieve the sapscript layout in development server ?
    Thanks & Regards
    Muzeebur Rahiman.S

    Hi,
    There is no version management for SapScript or Smartforms .
    When you write "transport request in development which is not moved to quality" - was the transport ever released and exported from the development system? If yes, and if the "Transport files" are still available in "Transport directory" (or if the transport files were backed up and could be retrieved), the transport could be imported again. If the TR was not exported, you are out of luck, I believe...
    I would not recommend you do it on your own even if you happen to have enough authorizations (consult with Basis and/or Transport Admin, if you have one in your organization). I would not recommend that it's imported on a development system or QA system, even if the transport contains no other objects - only the SapScript form in question. Import it on a "sand-box" that gets overwritten by system copy from time to time... Once the transport is imported, you should have the old version of SapScript in that system and could analyse the changes and perform manual merge.
    cheers
    Jānis

  • Does Mac OS make PDFs suitable for going to Press?

    For some years I've been producing a series of small, relatively simple booklets (4x5", 44pp, text & scanned line-art graphics). I've been putting them together in PageMaker (v.5—yes, in OS 9), and making PDFs to go to press with Acrobat (v.5). Now I can't use PageMaker for the latest one, because it's in Japanese, which PM can't handle; so I'm trying Pages. Seems to work okay, but I'm wondering about the PDF part: Does Mac OS X's "Print to PDF" function make a PDF suitable for going to press, like the "Press" setting in Acrobat—i.e. with full-resolution graphics, etc.? (I know Mac OS's PDFs embed the fonts in the document, so that part would seem to be covered.) Anyone know if there's anything to worry about there? Anything special I need to do?
    TIA,
    Andrew Main

    Can you post a screen snap and specification of your newsletter
    What I'm working on is a reprint of the Japanese version of the Thanksgiving Address for The Tracking Project, a fine organization run by a friend of mine. The Thanksgiving Address is an ancient Mohawk prayer/invocation, thanking all the elements of the world around us for their contributions to our lives. The original version takes a week to recite (and an elder who died a decade ago may have been the last man who remembered the whole thing); this is a much abbreviated version for international distribution. We produced the first edition, in the original Mohawk and English, in 1993. A year or two later, one of John's associates in Germany said he'd like to do a German version, so we did that. And so on. We just put out an Italian version, making ten different languages, each with the original Mohawk. See below the cover and one spread from the original English version, and samples from the Hawaiian and the Japanese version, which I'm working on now.
    I did the original English/Mohawk version in PageMaker in 1993, and every version since except the Japanese, as PageMaker doesn't handle Japanese. All the others are in the Latin alphabet, though the Hawaiian required a specially modified Palatino font (with accented letters in ASCII slots) which luckily someone at the University of Hawaii had made up in the pre-Unicode days. In the 90s I was sending PageMaker 5 files to the printer, which fortunately they could open and work onto the press; only in recent years have I come across an old copy of Acrobat and learned how to distill the PageMaker files into press-ready PDFs.
    For the original Japanese version in 1999, I took the usual layout in PageMaker, with the Mohawk text but the space for the other text blank, had it printed out at a service bureau on fine paper, then made up the Japanese text in AppleWorks, had it printed, then pasted the Japanese text blocks onto the PageMaker printout, and took it to the printer, who fortunately still had a camera to photograph it. I've been in graphic arts since the 60s, and was an expert paste-up man (pretty good on the corner print shop black-and-white camera too, as well as the IBM Selectric Composer), worked on (among others) the Whole Earth Catalog in the 70s and Stereophile magazine in the 80s.
    But now it's time to reprint the Japanese version, and the translator wants to make changes, so I figured it was finally time to try updating my work into the current computer world. I have no need of InDesign (nor money to buy it—or do you have to rent it now?). I first thought of using Libre/OpenOffice (wish they'd get that straightened out) for future file compatibility, and from what I knew it seemed to have all the details I needed for this simple job. But, as a Mac user exclusively since I got my first computer in 1988, I found the program opaque, and when I early ran into a situation where a command I needed wasn't on the menu the manual said it was on, I gave up and went to Pages, which I have used a little, though there's a lot about it I don't care for. It seems like a lot of effort has been put into the façade, but some pretty shoddy work behind it.
    But I've found it not very difficult to set up the Japanese Thanksgiving Address job in Pages, only I'm concerned if the printer can use it. Thus my query here. I'll be contacting the printer, and send them a sample PDF to see if it works for them. I hope I won't have to add crop marks, as from my initial look at the Manual, it seems Master Objects are only available on WP documents (which seems dumb)—which means I would have to manually add them on all 44 pages. Anyway it's a simple job, black only, so it should be workable.
    Apple has moved so far from their old base of professional print designers it would be safe to say it isn't going to do anything to fix the issues.
    Yes, 'tis a pity indeed. Now if you could do professional graphics on an iPad, there'd probably be a lot of time put into perfecting it. The Mac, though, and what it used to do, is old hat.
    Have you thought about running a 32 bit version of OSX that supports Pagemaker in emulation?
    I tried that once, back in the OS X 10.4 days, and it made my fans go wild. Anyway, the problem is that PageMaker can't work with Japanese—or I could just run it on my G3 PowerBook as I do for the other jobs.

  • How to update a large (over 4 million item) List(Of Byte) quickly by altering indexes contained in a Dictionary(Of Integer, Byte) where the Dictionaries keys are the indexes in the List(Of Byte) that need to be changed to the values for those indexes?

       I'm having some difficulty with transferring images from a UDP Client to a UDP Server. The issue is receiving the bytes necessary to update an original image sent from the Client to the Server and updating the Servers List(Of Byte) with the
    new bytes replacing bytes in that list. This is a simplex connection where the Sever receives and the Client sends to utilize the least amount of bandwidth for a "Remote Desktop" style application where the Server side needs image updates of whatever
    occurs on the Client desktop.
       So far I can tranfer images with no issue. The images can be be any image type (.Bmp, .Gif, .JPeg, .Png, etc). I was working with sending .JPeg's as they appear to be the smallest size image when a Bitmap is saved to a memory stream as type
    .JPeg. And then I am using GZip to compress that byte array again so it is much smaller. However on a loopback on my NIC the speed for sending a full size screen capture is not very fast as the Server updates fairly slowly unless the Clients screen capture
    Bitmap is reduced in size to about 1/3'd of the original size. Then about 12000 bytes or less are sent for each update.
       Due to .JPeg compression I suppose there is no way to get the difference in bytes between two .JPegs and only send those when something occurs on the desktop that alters the desktop screen capture image. Therefore I went to using .Bmp's as each
    .Bmp contains the same number of bytes in its array regardless of the image alterations on the desktop. So I suppose the difference in bytes from a second screen capture and an inital screen capture are what is different in the second image from the initial
    image.
       What I have done so far is save an initial Bitmap of a screen capture using a memory stream and saving as type .Bmp which takes less than 93 milliseconds for 4196406 bytes. Compressing that takes less than 118 milliseconds to 197325 bytes for
    the current windows on the desktop. When that is done PictureBox1 is updated from nothing to the captured image as the PictureBox's background image with image layout zoom and the PictureBox sized at 1/2 my screens width and 1/2 my screens height.
       Then I save a new Bitmap the same way which now contains different image information as the PictureBox is now displaying an image so its back color is no longer displayed (solid color Aqua) and the cursor has moved to a different location. The
    second Bitmap is also 4196406 in bytes and compressed it was 315473 bytes in size.
       I also just found code from this link Converting a Bitmap to a Byte Array (and Byte Array to Bitmap) which gets a byte array
    directly from a Bitmap and the size of that is 3148800 for whatever is full screen captured on my laptop. So I should be able to work with smaller byte arrays at some point.
       The issue I'm having is that once the Client sends an image of the desktop to the Server I only want to update the server with any differences occuring on the Clients desktop. So what I have done is compare the first screen captures bytes (stored
    in a List(Of Byte)) to the second screen captures bytes (stored in a List(Of Byte)) by using a For/Next for 0 to 4196405 where if a byte in the first screen captures List is not equal to a byte in the second screen captures List I add the index and byte of
    the second screen captures list to a Dictionary(Of Integer, Byte). The Dictionary then only contains the indexes and bytes that are different between the first screen capture and second screen capture. This takes about 125 milliseconds which I think is pretty
    fast for 4196406 byte comparison using a For/Next and adding all the different bytes and indexes for each byte to a Dictionary.
        The difference in Bytes between the inital screen capture and the second screen capture is 242587 as an example which changes of course. For that amount of bytes the Dictionary contains 242587 integers as indexes and 242587 bytes as different
    bytes totaling 485174 bytes for both arrays (keys, values).  Compressed the indexes go from 242587 to 43489 bytes and the values go from 242587 to 34982 bytes. Which means I will have to send 78, 481 bytes from the Client to the Server to update the display
    on the server. Quite smaller than the original 4196406 bytes of the second Bitmap saved to type .Bmp or the compressed size of that array which was 315473 bytes. Plus a few bytes I add as overhead so the server knows when an image array ends and how many packets
    were sent for the array so it can discard complete arrays if necessary since UDP is lossfull although probably not so much in current networks like it may originally have been when the internet started.
        In reality the data from the Client to the Server will mostly be the cursor as it moves and updating the Server image with only a few hundred bytes I would imagine at a time. Or when the cursor selects a Button for example and the Buttons
    color changes causing those differences in the original screen capture.
       But the problem is if I send the Dictionaries Indexes and Bytes to the Server then I need to update the original Bitmap List(Of Byte) on the server by removing the Bytes in the received informations Index locations array from the Servers Bitmap
    List(Of Byte) and replacing those Bytes with the Bytes in the received informations Byte array. This takes so long using a For/Next for however many indexes are in the received informations Index array to update the Bitmap List(Of Byte) on the server using
    "Bmp1Bytes.RemoveAt(Index As Integer)" followed by "Bmp1Bytes.Insert(Index As Integer, Item As Byte)" in the For/Next.
        I've tried various For/Next statements including using a new List(Of Byte) with If statements so If the the integer for the For/Next ='s the Key in a Dictionary(Of Integer, Byte) using a Counter to provide the Dictionaries Key value then
    the Dictionaries byte value will be added to the List(Of Byte) and the counter will increas by one Else the List(Of Byte) adds the original "Bmp1Bytes" byte at that index to the new List(Of Byte). This takes forever also.
       I also tried the same For/Next adding to a new Dictionary(Of Integer, Byte) but that takes forever too.
       I think I could use RemoveRange and AddRange to speed things up. But I don't know how to retrieve a contiguous range of indexes in the received indexes that need to be updated in the servers "Bmp1Bytes" List(Of Byte) from the received
    array of indexes and bytes which are in a Dictionary(Of Integer, Byte).  But I believe this would even be slower than some realistic method for replacing all Bytes in a List(Of Byte) when I have the indexes that need to be replaced and the bytes to replace
    them with.
       Even if I just used AddRange on a new List(Of Byte) to add ranges of bytes from the original "Bmp1Bytes" and the changes from the Dictionary(Of Integer, Byte) I think this would be rather slow. Although I don't know how to do that
    by getting contiguous ranges of indexes from the Dictionaries keys.
       So I was wondering if there is some method perhaps using Linq or IEnumerable which I've been unable to figure anything out which could do this.
       I do have some copy and pasted code which I don't understand how it works that I am using which I would guess could be altered for doing something like this but I can't find information that provides how the code works.  Or even if I did
    maybe I can't understand it. Like the code below which is extremely fast.
       Dim strArray() As String = Array.ConvertAll(Of Integer, String)(BmpComparisonDict.Keys.ToArray, Function(x) x.ToString())
    La vida loca

    Monkeyboy,
    That was quite a bit to read, but still a bit unclear. Could you put a specific list of goals/questions, asked in the smallest possible form?
    It seems like either you're making a program that monitors activity on your computer, or you're writing some kind of remote pc app.
    When you do get your bytes from using lockbits, keep in mind all the files header info would be lost. I think retaining the header info is worth the extra bytes.
    The other, thing: I'm not sure if you're taking 32bpp screen shots, but also keep in mind that the "whole desktop" is the final destination for blended graphics, if that makes sense. What I mean is that there is no need to capture an "alpha"
    channel for a desktop screenshot, as alpha would always be 255, this could save you 1 byte per pixel captured... Theres nothing "behind" the desktop, therefore no alpha, and every window shown above the desktop is already blended. I suggest using
    24Bpp for a full screen capture.
    Your X,Y information for the mouse could be stored as UINT16, this would save you a measly 2 bytes per location update/save.
    When you update your byte arrays, maybe you can turn the array into a stream and write to whatever index, however many bytes, that should prevent a "Shift" of bytes, and instead overwrite any bytes that "get in the way".
    ex
    Dim example As String = "This is an example."
    Dim insertString As String = "was"
    Dim insertBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(insertString)
    Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(example)
    Dim modifiedBytes As Byte() = {}
    Using ms As New System.IO.MemoryStream(bytes)
    ms.Position = 5
    ms.Write(insertBytes, 0, 3)
    modifiedBytes = ms.ToArray
    End Using
    Dim newString As String = System.Text.Encoding.ASCII.GetString(modifiedBytes)
    'Notice how below there isn't the word "is" anymore, and that there isn't a
    'space.
    'This demonstrates that you overwrite existing data, versus shifting everything to
    'the right.
    'Returns: This wasan example.
    MsgBox(newString)
    “If you want something you've never had, you need to do something you've never done.”
    Don't forget to mark
    helpful posts and answers
    ! Answer an interesting question? Write a
    new article
    about it! My Articles
    *This post does not reflect the opinion of Microsoft, or its employees.
    Well it's too much to read. I was really tired when I wrote it. Even the below is too much to read but perhaps gets the point across of what I would like to do which I think
    Joel Engineer may have answered but I'm not sure. As I'm still too tired to understand that yet and research what he said in order to figure it out yet.
    But maybe the code below can provide the concept of the operation with the comments in it. But seeing as how I'm still tired it may be confused.
    Option Strict On
    Imports System.Windows.Forms
    Imports System.IO
    Imports System.IO.Compression
    Imports System.Drawing.Imaging
    Imports System.Runtime.InteropServices
    Public Class Form1
    Dim Bmp1Bytes As New List(Of Byte)
    Dim Bmp1BytesCompressed As New List(Of Byte)
    Dim Bmp2Bytes As New List(Of Byte)
    Dim BmpComparisonDict As New Dictionary(Of Integer, Byte)
    Dim BmpDifferenceIndexesCompressed As New List(Of Byte)
    Dim BmpDifferenceBytesCompressed As New List(Of Byte)
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    SomeSub()
    End Sub
    Private Sub SomeSub()
    ' Pretend this code is in UDP Client app. A screen capture is performed of the desktop. Takes about 90 milliseconds.
    Bmp1Bytes.Clear()
    Using BMP1 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP1)
    g1.CopyFromScreen(0, 0, 0, 0, BMP1.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP1.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp1Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    Bmp1BytesCompressed.AddRange(Compress(Bmp1Bytes.ToArray))
    ' UDP Client app sends Bmp1BytesCompressed.ToArray to UDP Server which is the entire image of the desktop that the UDP
    ' Client is on. This image takes awhile to send since compressed it is about 177000 bytes from over 4000000 bytes.
    ' I will be using different code just to get the bytes from the actual Bitmap in the future. That is not important for now.
    ' Pretend the UDP Server has received the bytes, decompressed the array received into a List(Of Byte) and is displaying
    ' the image of the UDP Clients desktop in a PictureBox.
    ' Now the image on the UDP Clients desktop changes due to the mouse cursor moving as an example. Therefore a new Bitmap
    ' is created from a screen capture. This takes about 90 milliseconds.
    Bmp2Bytes.Clear()
    Using BMP2 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP2)
    g1.CopyFromScreen(0, 0, 0, 0, BMP2.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP2.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp2Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    ' Now I have the original images bytes in Bmp1Bytes and the new images bytes in Bmp2Bytes on the UDP Client. But I don't
    ' want to send all of the bytes in Bmp2Bytes to the UDP Server. Just the indexes of and the bytes that are different in
    ' Bmp2Bytes from Bmp1Bytes.
    ' This takes less than 100 milliseconds for what I've tested so far where over 500000 bytes in Bmp2Bytes are different
    ' than the bytes in Bmp1Bytes. Usually that amount would be much less. But during testing I was displaying the image
    ' from Bmp1 bytes in a PictureBox so a large amount of data would change between the first screen shot, the PictureBox
    ' then displaying an image on the same PC and then the second screen shot.
    BmpComparisonDict.Clear()
    For i = 0 To Bmp1Bytes.Count - 1
    If Bmp1Bytes(i) <> Bmp2Bytes(i) Then
    BmpComparisonDict.Add(i, Bmp2Bytes(i))
    End If
    Next
    ' So now I have all the difference bytes and their indexes from Bmp2Bytes in the BmpComparisonDict. So I compress
    ' the indexes into on List and the Bytes into another List.
    BmpDifferenceIndexesCompressed.Clear()
    BmpDifferenceBytesCompressed.Clear()
    BmpDifferenceIndexesCompressed.AddRange(Compress(BmpComparisonDict.Keys.SelectMany(Function(d) BitConverter.GetBytes(d)).ToArray()))
    BmpDifferenceBytesCompressed.AddRange(Compress(BmpComparisonDict.Values.ToArray))
    ' Now pretend the UDP Client has sent both those arrays to the UDP Server which has added both decompressed arrays
    ' to a Dictionary(Of Integer, Byte). And the server has the original image decompressed bytes received in a List
    ' called Bmp1Bytes also.
    ' This is where I am stuck. The UDP Server has the Dictionary. That part was fast. However there is no
    ' fast method I have found for creating a new List(Of Byte) where bytes in the originally received List(Of Byte) that
    ' do not have to be altered are placed into a new List(Of Byte) except for the indexes listed in the
    ' Dictionary(Of Integer, Byte) that need to be placed into the appropriate index locations of the new List(Of Byte).
    ' The below example for doing so is exceptionally slow. Pretend UpdateDictionary has all of the decompressed indexes
    ' and bytes received by the UDP Server for the update contained within it.
    Dim UpdateDictionary As New Dictionary(Of Integer, Byte)
    Dim UpdatedBytes As New List(Of Byte)
    Dim Counter As Integer = 0
    For i = 0 To Bmp1Bytes.Count - 1
    If i = UpdateDictionary.Keys(Counter) Then ' Provides the index contained in the Keys for the Dictionary
    UpdatedBytes.Add(UpdateDictionary.Values(Counter))
    Counter += 1
    If Counter > UpdateDictionary.Count - 1 Then Counter = 0
    Else
    UpdatedBytes.Add(Bmp1Bytes(i))
    End If
    Next
    ' So what I'm trying to do is find an extremely fast method for performing something similar to what the
    ' above operation performs.
    End Sub
    Private Function Compress(BytesToCompress() As Byte) As List(Of Byte)
    Dim BytesCompressed As New List(Of Byte)
    Using compressedStream = New MemoryStream()
    Using zipStream = New GZipStream(compressedStream, CompressionMode.Compress)
    zipStream.Write(BytesToCompress, 0, BytesToCompress.Count)
    zipStream.Close()
    BytesCompressed.AddRange(compressedStream.ToArray)
    End Using
    End Using
    Return BytesCompressed
    End Function
    Private Function Decompress(BytesToDecompress() As Byte) As List(Of Byte)
    Dim BytesDecompressed As New List(Of Byte)
    Using DecompressedStream = New MemoryStream()
    Using zipStream = New GZipStream(DecompressedStream, CompressionMode.Decompress)
    zipStream.Write(BytesToDecompress, 0, BytesToDecompress.Count)
    zipStream.Close()
    BytesDecompressed.AddRange(DecompressedStream.ToArray)
    End Using
    End Using
    Return BytesDecompressed
    End Function
    End Class
    La vida loca

  • Populating the table ISJPHIERARCHY (Invoice Summary for Japan)

    Hi All,
    I have a requirement, where  need to update the table ISJPHIERARCHY , which is the invoice summary for Japan table.
    Can you please let me know if there is  any BADI, Function module to updating this table at the time of Customer Creation.
    I am able to create a customer using the API CMD_EI_API=>maintain_bapi.
    However , I could not find a suitable method/badi to populate the invoice sumamry.
    <removed by moderator> any help will be highly appreciated <removed by moderator>.
    Thanks,
    Sandeep
    Edited by: Thomas Zloch on Aug 4, 2011 12:57 PM

    Hi Paul,
    Thank you so much for taking an interest.
    My problem might seem stupid to all the advanced users - but I had to start somewhere.
    After reading pretty much all the posts and help-files I’m more confused then ever …
    Well then, here we go.
    I attached my form and for better understanding what it will later look like a sample data file.
    I do appreciate and eagerly await any tips, hints, help, sample code and what ever I can get.
    Thanks again
    Jixin
    (just to be safe the second pdf should include the sample data ...)

  • Downpayment - invoice blocked for FI

    Hello SD experts,
    I have a problem in downpayment process when the amount of customer's advance payment is bigger than amount on final invoice. For example: customer paid 25.000 in advance, I posted downpayment and then final invoice is issued only for 23.000. So, we can say we should return to customer 2.000.
    Here is how we enter documents in SAP:
    1. Sales order for downpayment request is created (with billing plan). We put one item (for example service) with price 25.000.
    2. Downpayment request (invoice) is created.
    3. We post downpayment to FI (25.000).
    4. We create final invoice
    On final invoice additional item is automatically added by SAP. Additional item is downpayment settlement. By default both items get same price (value), that is 25.000.
    As I said, I want to charge customer only 23.000. So, I change the amount for first item from 25.000 to 23.000. As soon as I do this and save the document, it becomes blocked and accounting document is not created.
    It can't be released to FI because I get notice about difference between values of two items on invoice.
    My question is: Do we have the process correctly set up ? Are we entering documents in the right way ?
    Another thing – if I look at the printout, I think is ok. I have a line that says that amount to be paid is -2.000 (cusotmer paid more).
    In other cases, if received advance is same or smaller then the final amount, there aren't any problems with blocked invoices.
    Thank you for help,
    RJ

    HI CB,
    While posting a invoice by MIRO, if you come across the following message as block for payment than it is because of Three way matching. You can see three way matching status in purchase order status tab in transaction code ME23N and in purchase order history in item detail.
    Generally invoice is blocked for payment because of two issues:-
    u2022 Price difference: - Price in invoice is higher than purchase order (above tolerance limit).
    u2022 Quantity difference: - Quantity in MIRO is higher than MIGO (or good receipt).
    Once invoice is blocked for payment you need to release it for payment via transaction code MRBR. For next time while posting an invoice through MIRO you should post invoice within tolerance limit.
    You can display and change tolerance limit for invoice verification in customizing with help of transaction code OMR6.
    Regards,
    Anand

Maybe you are looking for