Print with 'Proof' on each page

Would like to print a booklet to send to a client with 'Proof' on each page. How to? Thanks.

I did this several years ago but do not remember using a layer. Somehow I was in a form that let me add any wording, size and format.
Any ideas on how I did that? Thank  you.

Similar Messages

  • How to print multiple footers for each page in RTF template xml report.

    Hi,
    How to print multiple footers for each page in RTF template xml report.
    i am able to print ( two sets ) ...
    up to last page ( one template ) and for last page ( another template).
    i want to change the footer information based on the group value printed in the report ( it might be 5 to 6) In every report run.. can you please check and let me know do we have any feasibility to achieve this.
    Thanks in advance.
    Regards,
    KAP.

    You can remove all other logic, like last page only contents (start@last-page:body), etc and section breaks if any you have inserted manually.
    Just have for-each@section logic.
    It would be difficult for me to guess what you have done without looking at your RTF or describing here.

  • How can I make a PDF file from each folders with layers, where each page is a each folder?

    How can I make a PDF file from each folders with layers, where each page is a each folder?

    I found an answer to my own question. A work around of sorts.
    Download Photoshop Elements 6 for Macintosh. With PSE6 I made a slide show with 550 images 1920x1200, without thumbs. I ran into one problem making the slide show. My images contained 4 images which had not ben created by Photoshop and could not be included in the slide show. Opening the images in Photoshop CS4 and re-saving them still did not make then acceptable. Not a big deal. I probably could have fixed the four images by stripping all EXIF data before opening them in Photoshop. BTW, PSE6 made the slide show in demo mode.
    I hope the bug in Photoshop CS4 will be fixed in Photoshop CS5.

  • ALV Display with header on each page.

    Hi experts,
    I had develop the report which output comes in ALV with heading. While printing the output, suppose there are 60 lines in output and 15 lines on each page so 4 page will print. Now i want the same heading will come on each page.
    Is it possible? if Yes how?
    Pls reply.
    Thanks,
    Abhishek.

    Hi,
    Write the heading in the top-of-page.
    You will have to register the event TOP-OF-PAGE and in the corresponding form write the header.
    Regards,
    Ankur Parab

  • Word document pdf printing with vertical and horizontal pages

    I have a Word document that has both vertical and horizontal formatted pages.  When I print to PDF, the I get a new pdf file whenever a page orientation change is found.  pages 1 to 7 are vertical, 8 to 12 are horizontal and 13 to 20 are vertical again.  If I print to a file named "out_to_PDF" I get 3 files named "out_to_PDF", "out_to_PDF2" and "out_to_PDF3", the first one with pages 1 to 7, the second one with pages 8 to 12 and the third one with the remaining pages.  Is there a way to get only one file with all the pages?
    I know I can merge the files later.  This file with 20 pages is no problem.  I have several 70+ page docs, with multiple changes between horizontal and vertical that will result in 20 or more separate pdf files.
    Any pointers?

    Word renders print jobs that change the orientation as separate print jobs. So, each print job becomes its own PDF.
    You can make an Automator workflow to combine PDFs. I’m not sure how it decides the order it combines them, so you’d have to experiment.
    This is built as an Application where you’d drop all of the PDFs onto the App icon and it will open the combined PDF where you can edit, name, and save.

  • Control printing with ALTERNATIVE in several pages

    Hello all, 
    I'm currently working on generating a PDF where each page needs to be conditional (ie user can print 1st & 2nd page, or 1st, 2nd & 3rd, or 1st & 3rd).  Altogether there are about 20 pages.
    The use of alternative + command with next page works great for the determining the print of the 2nd page, but I can't seem to get it to work the same for the printing of the 3rd page, etc.  I did notice that in order for the contents of the 2nd page to print, they HAVE to be placed in a secondary window, but I can't put the next page commands in a secondary window.  What I've tried is to have the secondary window first (with all the page content), then a main window (with alternatives & commands), but this doesn't seem to work.  (Also, listing main widow then secondary doesn't work.)
    When I add breakpoints, it seems as though the main window is never called.  (I can see the breakpoints in the F01 include, but they are never called.)
    Any ideas?
    Here's what I'm needing:
    Page 1
    - alternative 1 -> TRUE -> go to page 2
    - alternative 1 -> FALSE
    --alternative 2 -> TRUE -> go to page 3
    --alternative 2 -> FALSE
    ---alternative 3 -> TRUE -> go to page 4
    Page 2
    - alternative 1 -> TRUE ->go to page 3
    - alternative 1 -> FALSE
    --alternative 2 -> TRUE -> go to page 4
    --alternative 2 -> FALSE
    ---alternative 3 -> TRUE -> go to page 5
    Lisa
    Edited by: Lisa Mychalishyn on Feb 2, 2012 4:13 PM

    OK, here's the technique I used to make this work.
    I pass a table with pages to be printed (PAGETAB).  In the main window, I loop thru PAGETAB and use it's value to use the layout for that particular page (grouped into a folder, with conditions).  At the end of the main window, I check to see if this the last page to be printed, else I use Command to force a page break (otherwise, 2 forms may print on the same page). 
    Here's a sample of the code:
    Page
    Main window
    - program lines -> get total # lines in PAGETAB into V_TOTAL
    - loop @ PAGETAB
      -- program lines -> add 1 to V_LOOP
       -- folder 1 -> condition -> PAGETAB = "PAGE1"
        --- page 1 layout stuff
       --- alternative - if V_LOOP < V_TOTAL
    TRUE
    command -> go to next page -> Page
       -- folder 2 -> condition -> PAGETAB = "PAGE2"
         --- page 2 layout stuff
         --- alternative - if V_LOOP < V_TOTAL
    TRUE
    command -> go to next page = Page
    ... rest of pages
    Lisa

  • Dynamic table with header on each page

    Hi,
    I am new to livecycle forms. I am not sure if I am asking a silly question but this is what I need to achieve.
    I am designing a pdf form using livecycle designer. Need to build a dynamic table using data from xml. The challenge is I need to have a signature button on each page and the button will be below the table. So if there are for eg. 100 rows of data, then the table should be split into 5 pages of 20 rows each page (each page should have the table header) or based on page content and the button should be on the bottom of each page. Is it possible to achieve this? Also any example/suggestion on implementing signature using signature pad would be greatly appreciated.

    Hi,
    For individual objects, like the button that you want to appear on each page, you should place this on the Master Page. Position the button at the bottom of the page and then make sure that you size the Content Area, so that the button is OUTSIDE of the content area. This way objects on the design page will not overflow over the button. See here: http://assure.ly/g0Wx7r.
    If you are using a Table object for your data, then you can set it to repeat the Header row, see the Object palette.
    If you are using ADEP Designer 10 (latest version of Designer) AND your users will have Acrobat X/Reader X (eg version 10.1), then you could use Flash object for a signature field. See the example here: http://assure.ly/rqCuEn. See "Assure Dynamics Map with Signature" example. Again please note that you will need Acrobat X/Reader X to view this.
    Hope that helps,
    Niall

  • FIREFOX 26 changed the 'post crash' page with the list of windows and pages. It was a real HTML page with links for each page. Now it isn't (and blows)

    * You changed the page that comes up after a crash - the one which shows the windows and pages that were up before the
    crash.
    This used to be a real HTML page and it isn't any more. THis choice was pure isiocy consider how peopel used that page every day (try taking to your users for a change).
    The pages listed on that 'post crash page' used to be actual LINKS (you could right click them &
    manually open them in another tab - and most peope DID that every day). You could also (and I did this a lot) drag a second
    copy of the page, into a new tab (to keep track of all the pages I had not wanted to open)
    Now the pages are no longer links. You cannot right-click them.
    The thing in the probser is no longer a page that I can drag into a new tab.
    Roll the version back and throw this one in the bin...and have a good long talk with your developers about the definition of
    'STUPIDITIY'
    Then I try to type anything in the addres bar it is suppose to repoond with the history of old things I have types in the past, or
    search for what I type (and in some cases I think it tyes to convert it intoa URL). However it no longer does any of these
    things. When I type in the ADDRESS BAR ONLY, I do not get all of my letters to appear. I have to type into a notepad or
    into the search and to copy and paste to go to a URL. Nothing that is typed into the address bad responds normally at all
    anymore, and I am fairly certain there are no new addons on this machine at all. It does not matter which things I disable. It
    still does this. W of course points the finger back at a change to FIREFOX. I wich I could just sitct with one stable release
    forever but the MOZILLA folk thing it is best to force peopel awy from a working broswer release to a horrible one (due to it
    being out of date).
    FIREFOX 26.0 has 'issues' (ie new *features*/bugs)
    1) History is no longer accurate. My Proof? This machine is the primary one for the entire family (the only PC working). It is
    logged in with same user every time and never has its history cleared. It now January 7 so I ought to have a list of all of last
    months browing available to me.
    However, according to FIREFOX history, in all of December 2013, the entire family only went to 51 primary URL's. None of
    the official TV sites I use to get episodes are listed. None of the official movie sites I use are listed. The primary URL for
    ebay is not listed. Only 1 out of our 4 weather sites that I use (at least once a week) are listed. Only 1 of our 3 FINANCE
    sites is listed. There ought to be several; hundred root URLs listed.
    Please fix history as this change seriously "blows greasy chunks"
    PROBLEM (a stupid change in the new FIREFOX version)
    FOr a long time, after a crash you got a useful page (a real HTML page) which gave you a list of all of your last sessions
    'winwos and tabs' that were open when the browser crashed. there were certain ways of using this page that are no longer
    able to be done.
    The old method was wonderful as it had this behavior :
    *** The old method for displaying your 'Recovered Tabs' allowed you to :
    a) right click an individual item and open it in a tab without getting rid of that lovely window of your previous session of
    'recovered windows and tabs '.
    2) drag the URL for the entire window of 'recovered windows and tabs ' to a new tab (to make a second copy) so that you
    could select just a few of them to open as a group, and stil have the old list handy.
    You can no longer do either of these things. The 'recovered windows and tabs ' page no longer has links in it and can no longer be dragged, so you cant select a few of them to use, and keep the rest around for later. NOW - once you choose which pages to open the window is gone forever (can can't get a second copy).
    People used to make a copy of the page for later use (with a drag)
    we also used to open pages with a right click (which no longer functions
    This new method seriously blows big greasy chunks. A parge loss in function has occurred.
    Put things back as they were. 26 is full of terrible changes that NOBODY likes. It also has a lot of bugs (history is not reliable at all)

    (1) Firefox's built-in post-crash page has not been a real HTML page for a long time (for example, from the time of Firefox 22, see: [https://support.mozilla.org/en-US/questions/968212 Want to save LOTS of versions of "Restore Session.xht" from the "oops ..." page for later use]). If you had this working differently with Firefox 25, that might have been created by an extension.
    You can check to see whether extensions are disabled or need an update on the Add-ons page. Either:
    * Ctrl+Shift+a
    * orange Firefox button (or Tools menu) > Add-ons
    In the left column, click Extensions. The disabled extensions cluster toward the bottom of the list. To poll for updates, use the "gear" button above the list and choose Check for Updates.
    If you used the Reset feature (or Firefox automatically did a reset due to some problem during upgrading), you will need to reinstall missing extensions. The reset feature creates a folder on the desktop named Old Firefox Data. Do you have that folder? There may be data you can recover from it.
    (2) There are many ways for history to get cleared, both internal to Firefox and external. Could you double-check your Privacy settings?
    orange Firefox button (or Tools menu) > Options > Privacy
    * The "Firefox will" drop-down says Remember History: Firefox shouldn't be clearing history, but an add-on or external software could do it
    * The "Firefox will" drop-down says Use custom settings for history: inspect the "Clear history when Firefox closes" setting to make Firefox isn't set to clear history. Also check your add-ons and consider external software.
    Firefox normally accumulates months of history. However, some of Firefox's database sizes are based on disk space available. If your hard drive is very full, Firefox might reduce the amount of history stored.

  • Spool print with more than one page doesn't work

    Hi Experts,
    I need some help.
    I have following code in my report:
    SORT ta_ausgabe BY vstel vkorg_auft fkdat.
      NEW-PAGE PRINT ON .
       LOOP AT ta_ausgabe INTO wa_ausgabe.
         READ TABLE ts_vstel
           INTO wa_vstel
           WITH TABLE KEY spras = sy-langu
                          vstel = wa_ausgabe-vstel.
         READ TABLE ta_vkorg
           INTO wa_vkorg
           WITH KEY vkorg = wa_ausgabe-vkorg_auft.
         WRITE:  wa_ausgabe-vstel.
         WRITE:  wa_ausgabe-vkorg_auft.
         WRITE:  wa_ausgabe-fkdat.
         WRITE:  wa_ausgabe-matnr NO-ZERO LEFT-JUSTIFIED,
           AT 30 wa_ausgabe-maktx NO-ZERO LEFT-JUSTIFIED,
           AT 70 wa_ausgabe-fkimg NO-ZERO LEFT-JUSTIFIED, 
           AT 79 wa_ausgabe-vrkme NO-ZERO LEFT-JUSTIFIED.
         NEW-LINE.
       ENDLOOP.
       NEW-PAGE PRINT OFF.
       COMMIT WORK.
       v_spool_attach = sy-spono.
    As you see the information of the table TA_AUSGABE will be just prined into spool. When I have only information for one page everything
    work fine, but as soon there more information to be printed I cannt open my pdf file with the spool info anymore.
    What could be a reason?
    Please urgent
    BR
    Denis

    Hi Denis,
    The code works for me for printing more than 1 page.
    Pls try giving the spool id manually  in report RSTXPDFT4 and see whether it gets Multi pages in pdf and let me know if you have any issues.
    Rgds,
    K.S.

  • Ideas / Recommendations for Workgroup Printer with LOW Cost-per-page?

    (Like everyone else), we're printing more color than we anticipated.
    Our leasing company charges $0.09 per color page on our Xerox Workcenter 7545 copier.
    Color print is primarily used by a small group (6 individuals) who print about 3000 color pages per month.  I'm considering a smaller additional network laser just for that group - if a suitable one can be found.  (Does not need to be multi-function.)
    We'd probably purchase (vs. lease) in this case - but cost-per-page (toner cost) is an important consideration.
    Has anyone else done a similar recent study - and been happily surprised by the actual outcome?  Or - are your costs lower - but you've been unsatisfied by reliability, etc.?
    Thanks in advance!
    This topic first appeared in the Spiceworks Community

    I would greatly appreciate any feedback please!!! I thank you in advance!!!

  • How to print all images in each page

    hi
    this is indela. developing print option in flex. in a folder i have 100 images. when click on print its going only one images. but i want to send all images to printer without displaying. the no. of images change dynamically.
    please tell me how to do this one.
    Thanks in advance....

    Hi,
    Your best bet is to use a workbook template or else Excel to pdf option...Thanks

  • Printing with HP Officejet 7310 Automatic two sided and 2 pages on one sheet

    I am trying to print from power point slides with my HP Officejet 7310 with Automatic two sided printing capabilities and I would like to print 2 slides on each page.  Can this be acomplished and is so how?  Thanks

    Not necessarily the cleanest, but you can print to a new PDF file. In the printer properties, select the page size, and multi-up option. You might also find that on the pdf printer menu (at least I have that on my AA8.1.2). You may still have to select the paper size, since it is different from the original.

  • Each Item in Each Page

    Hello Experts,
    I am issuing the output of the shipment through VT02N. Both Print program and the form are customized(Z).
    The form contains two pages each with different layouts.
    <b>First page to print the item
    Second page is to print an Acknowledgement</b>
    My requirement is If the Shipment has the two items of two <b>different delivery address</b> then I have print the item in each page like
    Page 1 - Item 1
    Page 2 - Ackonwledgement
    Page 3 - Item 2
    Page 4 - Ackonwledgement and so on.
    SImilarly if the shippment has 5 items and with same Delivery address then I have print all the 5 items in the same page.
    I have tried with New-Page option but it is not solving my requirement.
    Hope the requirement is clear.
    Could anyone please suggest a solution for this Issue.
    Thanks in Advance.
    Vasanth

    Hello Goutham,
    This is my code:
    REPORT Z48V_RV56TD00.
    SET EXTENDED CHECK OFF.
    *---------------------------------------------------------------Tables
    TABLES: ADCP,                      "Zuordnung Person/Adresse
            ADR6,                      "SMTP-Nummern
            ADR7,                      "Remote-Mail-Adressen
            ADRP,                      "Personen
            LIKP,                      "Lieferung: Kopfdaten
            LIPS,                      "Lieferung: Positionsdaten
            MAKT,                      "
            T001,                      "Buchungskreise
            T005,                      "Länder
            T006A,                     "Maßeinheit
            THEAD,                     "SAPscript: Text-Header
            TVKO,
            TTXER,                     "Textverarbeitung: Text-Id-Gruppen
            TTXIT,                     "Texte zu Text-Id's
            SADR,                      "Adressverwaltung: Firmendaten
            STXH,                      "SAPscript Text-Datei Header
            USR21,                     "Zuord. Benutzer zu Adressschlussel
            VBDDL,                     "Druckview für Versandtermine
            VBPLA,                     "allgemeine Transportdaten
            Z48V_INCOTEXT        "spezielle Textbausteine zu Incoterms
            "z00_sd_vstel_dru
    INCLUDE VTTKDATA.                      "Shipment Header
    INCLUDE VTTSDATA.                      "Shipment Segment
    INCLUDE VTTPDATA.                      "Shipment Items
    INCLUDE VBPADATA.                                           "Partner
    INCLUDE VTFADATA.                                           "Flow
    INCLUDE SADRDATA.                                           "Address
    INCLUDE VTLFDATA.                      "Delivery Selection
    INCLUDE RVADTABL.                                           "Messages
    INCLUDE VSEDATA.                       "shipping units
    INCLUDE RV56ACOM.                      "I/O-Structure
    SET EXTENDED CHECK ON.
    *------------------------------------------------------------Constants
    CONSTANTS: NO(1)  VALUE SPACE,
               YES(1) VALUE 'X'.
    *----------------------------------------------------------Hilfsfelder
    DATA: XSCREEN(1)              TYPE C,
          RETCODE                 LIKE SY-SUBRC VALUE 0,
          THERE_WAS_OUTPUT(1)     TYPE C        VALUE SPACE,
          NEW_PAGE_WAS_ORDERED(1) TYPE C        VALUE SPACE.
    DATA:  BEGIN OF ITAB OCCURS 0,
              VPOBJKEY  LIKE  VBPLK-VPOBJKEY,
    * 001 vsm1kor 09.08.07 - sn OPL 1815
              KUNWE     LIKE  VTTS-KUNNZ,
    * 001 vsm1kor 09.08.07 - sn OPL 1815
              BRGEW     LIKE  VBPLK-BRGEW,
              LAENG     LIKE  VBPLK-LAENG,
              BREIT     LIKE  VBPLK-BREIT,
              HOEHE     LIKE  VBPLK-HOEHE,
              MEABM     LIKE  VBPLK-MEABM,
              VOLEH     LIKE  VBPLK-VOLEH,
              GEWEI     LIKE  VBPLK-GEWEI,
              GEWEI_MAX LIKE  VBPLK-GEWEI_MAX,
              VEBEZ     LIKE  VBPLK-VEBEZ,
              VSTEL     LIKE  VBPLK-VSTEL,
              VENUM     LIKE  VBPLK-VENUM,
              VHILM     LIKE  VBPLK-VHILM,
           END   OF ITAB.
    DATA: W-ITAB  LIKE ITAB.
    * 001 vsm1kor 09.08.07 - sn OPL 1815
    DATA: GV_KUNWE LIKE VTTS-KUNNZ.
    DATA: BEGIN OF G_T_KUNWE OCCURS 0,
            KUNWE LIKE VTTS-KUNNZ,
            TDNAME(10),
          END OF G_T_KUNWE.
    * 001 vsm1kor 09.08.07 - en OPL 1815
    DATA: TB_COLLI LIKE SLK-ANZPK.
    *DATA: tb_brgew LIKE vbplk-brgew.
    DATA: TB_ABMES(33).
    DATA: TB_LAENG(10).
    DATA: TB_BREIT(10).
    DATA: TB_HOEHE(10).
    DATA: TB_SAVE-GEWEI LIKE VBPLK-GEWEI.
    DATA: TB_VSTEL1 LIKE TVST-VSTEL.
    DATA: TB_VSTEL2 LIKE TVST-VSTEL.
    DATA: TB_VSTEL3 LIKE TVST-VSTEL.
    DATA: TB_ADRC1 LIKE ADRC.
    DATA: TB_ADRC2 LIKE ADRC.
    DATA: TB_ADRC3 LIKE ADRC.
    DATA: TB_TDNAME(10).
    DATA: TB_KZVST.
    DATA: TB_NETWR LIKE SLK-NETWR.
    DATA: TB_VOLUM TYPE P DECIMALS 3.
    DATA: BEGIN OF IT_VSTEL OCCURS 0,
            VSTEL LIKE XVTTP-VSTEL,
          END OF IT_VSTEL.
    DATA: TB_PSVON LIKE VBPLK-VENUM.
    DATA: TB_PSBIS LIKE VBPLK-VENUM.
    DATA: TB_VENUM(10).
    DATA: TB_KZSPD.
    DATA: TB_WETXT.
    DATA: TB_TABIX LIKE SY-TABIX.
    DATA: BEGIN OF W,
            LSNUM         LIKE LIKP-VBELN,
            LSANZPK       LIKE  SLK-ANZPK,
            VPOBJKEYALT   LIKE VBPLK-VPOBJKEY,
            SUM1          LIKE VBPLK-BRGEW,
            SUM2          LIKE VBPLK-BRGEW,
            SUM3          LIKE VBPLK-BRGEW,
            ELEMENT(30),
          END OF W.
    DATA: W_SPED LIKE ADDR1_VAL.
    DATA: G_TITLE_MEDI LIKE TSAD3T-TITLE_MEDI.
    *       FORM ENTRY                                                    *
    *       Called from the Output Controll program                       *
    *  -->  RETURN_CODE Status                                            *
    *  -->  US_SCREEN                                                     *
    FORM ENTRY USING RETURN_CODE LIKE SY-SUBRC                  "#EC CALLED
                     US_SCREEN   TYPE C.                        "#EC CALLED
      RETURN_CODE = 1.
      PERFORM DATA_INIT USING US_SCREEN.
      PERFORM GET_DATA.
      CHECK RETCODE EQ 0.
      PERFORM OPEN_FORM USING US_SCREEN.
      CHECK RETCODE EQ 0.
      LOOP AT G_T_KUNWE.
    *    IF SY-TABIX EQ 1.
          PERFORM PRINT_DOCUMENT.
          CHECK RETCODE EQ 0.
    *    ELSE.
    *      PERFORM START_FORM.
    *      CHECK RETCODE EQ 0.
    *      PERFORM PRINT_DOCUMENT.
    *      CHECK RETCODE EQ 0.
    *      PERFORM END_FORM.
    *      CHECK RETCODE EQ 0.
    *    ENDIF.
      ENDLOOP.
      PERFORM CLOSE_FORM.
      CHECK RETCODE EQ 0.
      RETURN_CODE = 0.
    ENDFORM.
    *       FORM data_init                                               *
    FORM DATA_INIT USING VALUE(US_SCREEN) TYPE C.
      XSCREEN = US_SCREEN.
      CLEAR:
        RETCODE,
        THERE_WAS_OUTPUT,
        NEW_PAGE_WAS_ORDERED.
    ENDFORM.
    *       FORM GET_DATA                                                 *
    FORM GET_DATA.
      DATA LANGUAGE LIKE NAST-SPRAS.
      DATA SHIPMENT_NUMBER LIKE VTTK-TKNUM.
      LANGUAGE = NAST-SPRAS.
      SHIPMENT_NUMBER = NAST-OBJKY.
      CALL FUNCTION 'RV_SHIPMENT_PRINT_VIEW'
           EXPORTING
                SHIPMENT_NUMBER     = SHIPMENT_NUMBER
                OPTION_TVTK         = 'X'  "Shipmenttype J/N
                OPTION_TTDS         = 'X'  "Disposition J/N
                LANGUAGE            = LANGUAGE
                OPTION_ITEMS        = 'X'  "Transport Items J/N
                OPTION_SEGMENTS     = 'X'  "Transport Segments J/N
                OPTION_PARTNERS     = 'X'  "Partners J/N
                OPTION_SALES_ORDERS = 'X'  "Sales orders J/N
                OPTION_EXPORT_DATA  = 'X'  "Export data J/N
                OPTION_PACKAGES     = 'X'  "Packages J/N
                OPTION_FLOW         = ' '  "Flow J/N
                OPTION_NO_REFRESH   = ' '  "Refresh Tables J/N
           IMPORTING
                F_VTTKVB            = VTTKVB  "Shipment Header
                F_TVTK              = TVTK  "Shipmenttype
                F_TVTKT             = TVTKT  "Description Shipmenttype
                F_TTDS              = TTDS  "Disposition
                F_TTDST             = TTDST  "Description Disposition
                F_VBPLA             = VBPLA  "Packages
           TABLES
                F_VTTP              = XVTTP  "Shipment Items
                F_TRLK              = SLK  "Delivery
                F_TRLP              = SLP  "Delivery Item
                F_VTTS              = XVTTS  "Shipment Segments
                F_VTSP              = XVTSP  "Segments/Items
                F_VBPA              = XVBPA  "Partner
                F_VBADR             = XVBADR  "Address
                F_VTFA              = XVTFA  "Flow
                F_VBPLK             = XVBPLK  "Shipment Unit Header
                F_VBPLP             = XVBPLP  "Shipment Unit
                F_VBPLS             = XVBPLS  "Shipment Unit Sum
           EXCEPTIONS
                NOT_FOUND           = 1.
      IF SY-SUBRC NE 0.
        SYST-MSGID = 'VW'.
        SYST-MSGNO = '010'.
        SYST-MSGTY = 'E'.
        SYST-MSGV1 = DBVTTK-TKNUM.
        SYST-MSGV2 = SY-SUBRC.
        RETCODE    = 1.
        PERFORM PROTOCOL_UPDATE.
      ENDIF.
      CHECK RETCODE EQ 0.
    * SORT SEGMENTS BY CORRECT ORDER (I.E. TSRFO)
      SORT XVTTS BY TSRFO.
    * CONVERT UNITS IN DELIVERIES AND DELIVERY-ITEMS
    * TO BE CONFORM TO VTTK-UNITS:
      LOOP AT SLK.
    * 001 vsm1kor 09.08.07 - sn OPL 1815
        G_T_KUNWE-KUNWE = SLK-KUNWE.
        G_T_KUNWE-TDNAME = SLK-TDNAME.
        APPEND G_T_KUNWE.
    * 001 vsm1kor 09.08.07 - en OPL 1815
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
             EXPORTING
                  INPUT    = SLK-BTGEW
                  UNIT_IN  = SLK-GEWEI
                  UNIT_OUT = VTTKVB-DTMEG
             IMPORTING
                  OUTPUT   = SLK-BTGEW.
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
             EXPORTING
                  INPUT    = SLK-NTGEW
                  UNIT_IN  = SLK-GEWEI
                  UNIT_OUT = VTTKVB-DTMEG
             IMPORTING
                  OUTPUT   = SLK-NTGEW.
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
             EXPORTING
                  INPUT    = SLK-VOLUM
                  UNIT_IN  = SLK-VOLEH
                  UNIT_OUT = VTTKVB-DTMEV
             IMPORTING
                  OUTPUT   = SLK-VOLUM.
        SLK-GEWEI = VTTKVB-DTMEG.
        SLK-VOLEH = VTTKVB-DTMEV.
        MODIFY SLK.
        ADD SLK-NETWR TO TB_NETWR.
      ENDLOOP.
    * 001 vsm1kor 09.08.07 - sn OPL 1815
      IF NOT G_T_KUNWE[] IS INITIAL.
        SORT G_T_KUNWE.
        DELETE ADJACENT DUPLICATES FROM G_T_KUNWE COMPARING KUNWE.
      ENDIF.
    * 001 vsm1kor 09.08.07 - en OPL 1815
      LOOP AT SLP.
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
             EXPORTING
                  INPUT    = SLP-BRGEW
                  UNIT_IN  = SLP-GEWEI
                  UNIT_OUT = VTTKVB-DTMEG
             IMPORTING
                  OUTPUT   = SLP-BRGEW.
        CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
             EXPORTING
                  INPUT    = SLP-NTGEW
                  UNIT_IN  = SLP-GEWEI
                  UNIT_OUT = VTTKVB-DTMEG
             IMPORTING
                  OUTPUT   = SLP-NTGEW.
        SLP-GEWEI = VTTKVB-DTMEG.
        MODIFY SLP.
      ENDLOOP.
      PERFORM GET_ERFASSER.
      LOOP AT XVBPLK.
        "SELECT SINGLE * FROM z00_sd_vstel_dru WHERE vstel = xvbplk-vstel.
        "IF sy-subrc = 0 AND  NOT z00_sd_vstel_dru-vstel_d IS INITIAL.
        "  it_vstel-vstel = z00_sd_vstel_dru-vstel_d.
        "ELSE.
        IT_VSTEL-VSTEL = XVBPLK-VSTEL.
        "ENDIF.
        XVBPLK-VSTEL = IT_VSTEL-VSTEL.
        MODIFY XVBPLK.
        COLLECT IT_VSTEL.
      ENDLOOP.
      SORT IT_VSTEL BY VSTEL.
      TB_TDNAME = VTTKVB-TKNUM.
      PERFORM ERMITTELN_SPED_ADRESSE.
      SELECT SINGLE       * FROM  TVKO INTO TVKO
             WHERE  VKORG  = SLK-VKORG.
      CLEAR: T001W.
      SELECT SINGLE * FROM T001W WHERE WERKS = SLK-WERKS.
      CLEAR: T001.
      SELECT SINGLE * FROM T001 WHERE BUKRS = TTDS-BUKRS.
    * Ermitteln Text Ausfuhrkontrollmeldung
      CLEAR: T005, TB_KZVST.
      SELECT SINGLE * FROM T005 WHERE LAND1 = SLK-LAND1.
      IF SY-SUBRC = 0 AND T005-XEGLD = ''.
        TB_KZVST = 'X'.
      ENDIF.
    ENDFORM.
    *       FORM PRINT_DOCUMENT                                           *
    FORM PRINT_DOCUMENT.
    * Ermitteln und ausgeben der Beladstelle
      PERFORM AUSGEBEN_BELADESTELLE.
    * Ausgeben der Empfaenger und Kundenadresse
      PERFORM AUSGEBEN_EMPF_KUNDE.
    * Ausgeben Rechnungsempfänger
      PERFORM AUSGEBEN_RE.
    * Ausgeben der Verpackungsdaten
      PERFORM AUSGEBEN_VERPACKUNG.
    * Ausgeben der Versandbedigungen
      PERFORM AUSGEBEN_VERSANDBEDINGUNG.
    * Ausgeben des Versendervermerks
      PERFORM AUSGEBEN_VERSENDERVERMERK.
    * Ausgeben der Ausfuhrkontrollmeldung
      W-ELEMENT = 'AUSFUHRKONTROLLMELDUNG'.
      PERFORM WRITE_ELEMENT.
    * Ausgeben der Anlagen
      W-ELEMENT = 'ANLAGEN'.
      PERFORM WRITE_ELEMENT.
    * Ausgeben des Uebernahmetextes
      IF TTDS-BUKRS EQ '1060'.
        W-ELEMENT = 'UEBERNAHMETEXT'.
        PERFORM WRITE_ELEMENT.
      ENDIF.
    * Ausgeben Luftfrachterklärung                              I1.2
      IF VTTKVB-VSART = '05'        "Luftfracht
      OR VTTKVB-VSART = '17'.       "Luftfrachtsammelverkehr
        W-ELEMENT = 'LUFTFRACHTERKL'.
        PERFORM WRITE_ELEMENT.
      ENDIF.
    * Ausgeben Kopftext
      W-ELEMENT = 'TEXT'.
      PERFORM WRITE_ELEMENT.
    ENDFORM.
    *       FORM OPEN_FORM                                                *
    *  -->  VALUE(US_SCREEN)  Output on screen                            *
    *                         ' ' = printer                               *
    *                         'X' = screen                                *
    FORM OPEN_FORM USING VALUE(US_SCREEN) TYPE C.
      DATA US_COUNTRY LIKE T005-LAND1.
      PERFORM GET_SENDER_COUNTRY USING US_COUNTRY.
      CHECK RETCODE EQ 0.
      INCLUDE RVADOPFO.
    ENDFORM.
    *       FORM Get_Sender_Country
    *       Determines the country of the transport-disposition-unit      *
    FORM GET_SENDER_COUNTRY USING SENDER_COUNTRY LIKE T005-LAND1.
    * data:
    *   l_addr1_sel like addr1_sel.
      DATA: L_VBADR LIKE VBADR.
      DATA: L_VBPA  LIKE VBPA.
      LOOP AT XVBPA WHERE VBELN = NAST-OBJKY AND
                          PARVW = NAST-PARVW.
        SENDER_COUNTRY = XVBPA-LAND1.
        EXIT.
      ENDLOOP.
      IF SY-SUBRC IS INITIAL  AND  SENDER_COUNTRY IS INITIAL.
        L_VBPA = XVBPA.
        CALL FUNCTION 'VIEW_VBADR'
             EXPORTING
                  INPUT         = L_VBPA
                  PARTNERNUMMER = NAST-PARNR
             IMPORTING
                  ADRESSE       = L_VBADR.
        SENDER_COUNTRY = L_VBADR-LAND1.
      ENDIF.
    ENDFORM.
    *       FORM CLOSE_FORM                                               *
    FORM CLOSE_FORM.
      CALL FUNCTION 'CLOSE_FORM'
           EXCEPTIONS
                OTHERS = 1.
      IF SY-SUBRC NE 0.
        RETCODE = SY-SUBRC.
        PERFORM PROTOCOL_UPDATE.
      ENDIF.
      SET COUNTRY SPACE.
    ENDFORM.
    *       FORM PROTOCOL_UPDATE                                          *
    *       The messages are collected for the processing protocol.       *
    FORM PROTOCOL_UPDATE.
      IF XSCREEN = SPACE.
        CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
             EXPORTING
                  MSG_ARBGB = SYST-MSGID
                  MSG_NR    = SYST-MSGNO
                  MSG_TY    = SYST-MSGTY
                  MSG_V1    = SYST-MSGV1
                  MSG_V2    = SYST-MSGV2
                  MSG_V3    = SYST-MSGV3
                  MSG_V4    = SYST-MSGV4.
      ELSE.
        MESSAGE ID SYST-MSGID TYPE 'I' NUMBER SYST-MSGNO
                WITH SYST-MSGV1 SYST-MSGV2 SYST-MSGV3 SYST-MSGV4.
      ENDIF.
    ENDFORM.
    *       FORM get_erfasser                                             *
    FORM GET_ERFASSER.
    * Lesen der Adressnummer zum Benutzer
      SELECT SINGLE * FROM USR21 WHERE BNAME = VTTKVB-ERNAM.
      IF SY-SUBRC <> 0.
        SELECT * FROM ADR7 WHERE UNAME = VTTKVB-ERNAM
                           AND   DATE_FROM <= SY-DATUM
                           ORDER BY CONSNUMBER DESCENDING.
          EXIT.
        ENDSELECT.
        CHECK SY-SUBRC = 0.
        USR21-BNAME      = ADR7-UNAME.
        USR21-PERSNUMBER = ADR7-PERSNUMBER.
        USR21-ADDRNUMBER = ADR7-ADDRNUMBER.
      ENDIF.
    * Lesen allgemeine Adressedaten Benutzer
      SELECT * FROM ADRP WHERE PERSNUMBER = USR21-PERSNUMBER
                         AND   DATE_FROM  <= SY-DATUM
                         ORDER BY DATE_FROM DESCENDING.
        EXIT.
      ENDSELECT.
      CHECK SY-SUBRC = 0.
    * Lesen weiter Adressdaten Benutzer
      SELECT * FROM ADCP WHERE PERSNUMBER = USR21-PERSNUMBER
                         AND   DATE_FROM  <= SY-DATUM
                         AND   COMP_PERS  = 'C'
                         ORDER BY DATE_FROM DESCENDING.
        EXIT.
      ENDSELECT.
      CHECK SY-SUBRC = 0.
    * Lesen Email-Adresse
      SELECT * FROM ADR6 WHERE ADDRNUMBER = USR21-ADDRNUMBER
                         AND   PERSNUMBER = USR21-PERSNUMBER
                         AND   DATE_FROM  <= SY-DATUM
                         ORDER BY DATE_FROM DESCENDING.
        EXIT.
      ENDSELECT.
    ENDFORM.                               " GET_ERFASSER
    *&      Form  AUSGEBEN_BELADESTELLE
    FORM AUSGEBEN_BELADESTELLE.
      FIELD-SYMBOLS: <F>.
      DATA: TB_FIELD(20).
      CLEAR: TB_VSTEL1, TB_VSTEL2, TB_VSTEL3,
             TB_ADRC1,  TB_ADRC2,  TB_ADRC3.
      LOOP AT IT_VSTEL.
        IF SY-TABIX > 3.
          EXIT.
        ENDIF.
        TB_FIELD = 'TB_VSTEL'.
        TB_FIELD+8(1) = SY-TABIX.
        ASSIGN (TB_FIELD) TO <F>.
        <F> = IT_VSTEL-VSTEL.
        SELECT SINGLE * FROM TVST WHERE VSTEL = IT_VSTEL-VSTEL.
        CHECK SY-SUBRC = 0.
        TB_FIELD = 'TB_ADRC'.
        TB_FIELD+7(1) = SY-TABIX.
        ASSIGN (TB_FIELD) TO <F>.
        SELECT * FROM ADRC INTO <F>
                           WHERE ADDRNUMBER =  TVST-ADRNR
                           AND   DATE_FROM  <= SY-DATUM
                           AND   DATE_TO    >= SY-DATUM
                           ORDER BY DATE_FROM DESCENDING.
          EXIT.
        ENDSELECT.
      ENDLOOP.
    *>>> INS BO88WA2 Ansteuerung Ausgabeschacht
      W-ELEMENT = 'SCHACHT_STEUERN'.
      PERFORM WRITE_ELEMENT.
    *<<< INS BO88WA2
      SELECT  SINGLE * FROM STXH
          WHERE TDNAME      = VTTKVB-TKNUM
          AND   TDOBJECT    = 'VTTK'
          AND   TDID        = 'CM13'.
      IF SY-SUBRC = 0.
        W-ELEMENT = 'BELADESTELLE1'.
      ELSE.
        W-ELEMENT = 'BELADESTELLE2'.
      ENDIF.
      PERFORM WRITE_ELEMENT.
    ENDFORM.                               " AUSGEBEN_BELADESTELLE
    *&      Form  ERMITTELN_SPED_ADRESSE
    FORM ERMITTELN_SPED_ADRESSE.
      CLEAR: LFA1, TB_KZSPD.
    *>  SELECT SINGLE * FROM lfa1 WHERE lifnr = vttkvb-tdlnr.
    * Pruefen Spediteur-Adresse in Text
      SELECT SINGLE * FROM  STXH WHERE  TDOBJECT  = 'VTTK'
                                 AND    TDNAME    = TB_TDNAME
                                 AND    TDID      = '0003'
                                 AND    TDSPRAS   = NAST-SPRAS.
      IF SY-SUBRC = 0.
        TB_KZSPD = 'X'.
        EXIT.
      ENDIF.
      DATA:
        ADDR_SEL      LIKE ADDR1_SEL,
        W_SADR        LIKE SADR
      SELECT SINGLE ADRNR FROM  VTPA INTO ADDR_SEL-ADDRNUMBER
             WHERE  VBELN  = VTTKVB-TKNUM
             AND    POSNR  = SPACE
             AND    PARVW  = 'SP'.
      CHECK SY-SUBRC = 0.
      CALL FUNCTION 'ADDR_GET'
           EXPORTING
                ADDRESS_SELECTION       = ADDR_SEL
    *           ADDRESS_GROUP           =
    *           READ_SADR_ONLY          = ' '
    *           READ_TEXTS              = ' '
           IMPORTING
                ADDRESS_VALUE           = W_SPED
    *           ADDRESS_ADDITIONAL_INFO =
    *           RETURNCODE              =
    *           ADDRESS_TEXT            =
                SADR                    = W_SADR
    *      TABLES
    *           ADDRESS_GROUPS          =
    *           ERROR_TABLE             =
    *           VERSIONS                =
          EXCEPTIONS
               PARAMETER_ERROR         = 1
               ADDRESS_NOT_EXIST       = 2
               VERSION_NOT_EXIST       = 3
               INTERNAL_ERROR          = 4
               OTHERS                  = 5.
      BREAK BO88WA2.
      CLEAR G_TITLE_MEDI.
      IF NOT W_SPED-TITLE IS INITIAL.
        SELECT  SINGLE TITLE_MEDI
          INTO  G_TITLE_MEDI
          FROM  TSAD3T
          WHERE LANGU EQ NAST-SPRAS
            AND TITLE EQ W_SPED-TITLE.
      ENDIF.
    ENDFORM.                               " ERMITTELN_SPED_ADRESSE
    *&      Form  UMRECHNEN
    FORM UMRECHNEN USING P_IWERT
                         P_OWERT
                         P_IMEIN LIKE T006-MSEHI
                         P_OMEIN LIKE T006-MSEHI.
      CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
           EXPORTING
                INPUT                = P_IWERT
                UNIT_IN              = P_IMEIN
                UNIT_OUT             = P_OMEIN
           IMPORTING
                OUTPUT               = P_OWERT
           EXCEPTIONS
                CONVERSION_NOT_FOUND = 1
                DIVISION_BY_ZERO     = 2
                INPUT_INVALID        = 3
                OUTPUT_INVALID       = 4
                OVERFLOW             = 5
                TYPE_INVALID         = 6
                UNITS_MISSING        = 7
                UNIT_IN_NOT_FOUND    = 8
                UNIT_OUT_NOT_FOUND   = 9
                OTHERS               = 10.
    ENDFORM.                                                    " UMRECHNEN
    *&      Form  AUSGEBEN_EMPF_KUNDE
    FORM AUSGEBEN_EMPF_KUNDE.
      CLEAR: SLK.
    * 001 vsm1kor 09.08.07 - sm " OPL 1815
    *  READ TABLE SLK INDEX 1.
      READ TABLE SLK WITH KEY KUNWE = G_T_KUNWE-KUNWE.
    * 001 vsm1kor 09.08.07 - em " OPL 1815
      CLEAR: KNA1, TB_WETXT.
      SELECT SINGLE * FROM KNA1 WHERE KUNNR = SLK-KUNWE.
      SELECT SINGLE * FROM STXH WHERE TDOBJECT = 'VTTK'
             AND    TDNAME    = VTTKVB-TKNUM
             AND    TDID      = 'Z002'
             AND    TDSPRAS   = NAST-SPRAS.
      IF SY-SUBRC = 0.
        TB_WETXT = 'X'.
      ENDIF.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'ADRESSE_EMPF'.
      "IF slk-adrnr_ag <> slk-adrnr_we.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT = 'ADRESSE_KUNDE'.
      "ENDIF.
    ENDFORM.                               " AUSGEBEN_EMPF_KUNDE
    *&      Form  AUSGEBEN_VERPACKUNG
    FORM AUSGEBEN_VERPACKUNG.
      DATA:
        WA_ITAB_LAST TYPE ITAB.
      PERFORM GET_BFART_TEXT.                                   "BT82FE
      W-ELEMENT = 'ITEM_HEADER'.
      PERFORM WRITE_ELEMENT.
      BREAK BO88WA2.
      LOOP AT XVBPLK.      "Übetr. relevantes wegen Sortierfolge "BT82FE
        IF XVBPLK-UEVEL IS INITIAL.
          MOVE-CORRESPONDING XVBPLK TO ITAB.
    * 001 vsm1kor 09.08.07 - sn OPL 1815
          READ TABLE XVTTP WITH KEY VBELN  = XVBPLK-VPOBJKEY.
          IF SY-SUBRC EQ 0.
            ITAB-KUNWE = XVTTP-KUNWE.
          ENDIF.
    * 001 vsm1kor 09.08.07 - en OPL 1815
          APPEND ITAB.
        ENDIF.
      ENDLOOP.
      SORT ITAB BY VPOBJKEY KUNWE BRGEW LAENG BREIT HOEHE MEABM.
    * 001 vsm1kor 09.08.07 - en OPL 1815
      DELETE ITAB WHERE KUNWE NE G_T_KUNWE-KUNWE.
    * 001 vsm1kor 09.08.07 - en OPL 1815
    *  SORT itab by vhilm laeng breit hoehe meabm brgew .
      CLEAR W.
      CLEAR: TB_COLLI.
      LOOP AT ITAB.
        W-ITAB = ITAB.
        AT NEW   VPOBJKEY.           "Anzahl Packungen holen   "BT82FE
          PERFORM GET_ANZPACK.
        ENDAT.                                                  "BT82FE
    **--- AT NEW BO88WA2
    *    if wa_itab_last-vhilm ne itab-vhilm or
    *       wa_itab_last-laeng ne itab-laeng or
    *       wa_itab_last-breit ne itab-breit or
    *       wa_itab_last-hoehe ne itab-hoehe or
    *       wa_itab_last-brgew ne itab-brgew.
    *       perform get_anzpack.
    *    endif.
        PERFORM PRUEFEN_PACKELEMENT.
        CHECK SY-SUBRC = 0.
        PERFORM  GET_MATTEXT_UND_UMRECHNEN.
        ADD ITAB-BRGEW TO  W-SUM1.
        ADD ITAB-BRGEW TO  W-SUM2.
        ADD ITAB-BRGEW TO  W-SUM3.
    *    AT END OF brgew.
        AT END OF MEABM.
          TB_SAVE-GEWEI = ITAB-GEWEI.
          W-ELEMENT = 'ITEM_LINE'.
          PERFORM WRITE_ELEMENT.
          CLEAR: W-SUM1, W-SUM2.
        ENDAT.
        AT END OF VPOBJKEY.
          W-ELEMENT = 'LS_SUM'.
          PERFORM WRITE_ELEMENT.
          CLEAR:W-SUM1, W-SUM2.
        ENDAT.
    **--- Nächstes Record lesen
    *    ADD 1 TO l_index.
    *    READ TABLE l_t_verpdat INTO l_r_verpdat_next INDEX l_index.
    *    IF sy-subrc NE 0 OR
        AT LAST.
          W-ELEMENT = 'ITEM_SUM'.
          PERFORM WRITE_ELEMENT.
        ENDAT.
      ENDLOOP.
      REFRESH ITAB.
    ENDFORM.                               " AUSGEBEN_VERPACKUNG
    *&      Form  AUSGEBEN_VERSANDBEDINGUNG
    FORM AUSGEBEN_VERSANDBEDINGUNG.
      "TABLES: z00_sd_slvs.
    * Ermitteln Versandbedingung
      CLEAR: T173T.
      IF VTTKVB-VSART IS INITIAL.
        IF VTTKVB-VSART IS INITIAL AND NOT VTTKVB-ROUTE IS INITIAL.
          SELECT SINGLE * FROM TVRO WHERE ROUTE = VTTKVB-ROUTE.
          CHECK SY-SUBRC = 0.
          SELECT SINGLE * FROM T173T WHERE SPRAS = NAST-SPRAS
                                     AND   VSART = TVRO-VSART.
        ELSE.
          SELECT SINGLE * FROM T173T WHERE SPRAS = NAST-SPRAS
                                     AND   VSART = VTTKVB-VSART.
        ENDIF.
      ELSE.
        SELECT SINGLE * FROM T173T WHERE SPRAS = NAST-SPRAS
                                   AND   VSART = VTTKVB-VSART.
      ENDIF.
    * Ermitteln Versicherungstext abhaengig von Incoterm
      CLEAR: Z48V_INCOTEXT.
      SELECT SINGLE * FROM Z48V_INCOTEXT WHERE INCO1 = SLK-INCO1.
    * Ermitteln Versicherungswert
    *  CLEAR: z00_sd_slvs.
    *  SELECT * FROM z00_sd_slvs WHERE vswrt > tb_netwr
    *                            ORDER BY vswrt ASCENDING.
    *    EXIT.
    *  ENDSELECT.
    *  IF sy-subrc = 0.
    *    tb_netwr = z00_sd_slvs-vswrt.
    *  ENDIF.
      W-ELEMENT = 'VERSAND'.
      PERFORM WRITE_ELEMENT.
    ENDFORM.                               " AUSGEBEN_VERSANDBEDINGUNG
    *&      Form  AUSGEBEN_VERSENDERVERMERK
    FORM AUSGEBEN_VERSENDERVERMERK.
      IF SLK-LAND1_WE <> 'DE'.
        W-ELEMENT = 'VERSENDERVERMERK'.
        PERFORM WRITE_ELEMENT.
      ENDIF.
    ENDFORM.                    " AUSGEBEN_VERSENDERVERMERK
    *&      Form  AUSGEBEN_RE
    FORM AUSGEBEN_RE.
      SELECT SINGLE * FROM VBPA WHERE VBELN = SLK-VBELN
                                AND   POSNR = '000000'
                                AND   PARVW = 'RE'.
      IF SY-SUBRC = 0.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  ELEMENT = 'ADRESSE_RE'.
      ENDIF.
    ENDFORM.                    " AUSGEBEN_RE
    FORM  GET_MATTEXT_UND_UMRECHNEN.
      SELECT SINGLE * FROM MAKT WHERE MATNR = W-ITAB-VHILM
                                AND   SPRAS = SY-LANGU.
      PERFORM UMRECHNEN USING W-ITAB-BRGEW W-ITAB-BRGEW
                              W-ITAB-GEWEI_MAX 'KG'.
      PERFORM UMRECHNEN USING W-ITAB-LAENG W-ITAB-LAENG
                              W-ITAB-MEABM 'CM'.
      WRITE W-ITAB-LAENG  TO  TB_LAENG LEFT-JUSTIFIED DECIMALS 0.
      PERFORM UMRECHNEN USING W-ITAB-BREIT W-ITAB-BREIT
                              W-ITAB-MEABM 'CM'.
      WRITE W-ITAB-BREIT TO   TB_BREIT LEFT-JUSTIFIED DECIMALS 0.
      PERFORM UMRECHNEN USING W-ITAB-HOEHE W-ITAB-HOEHE
                              W-ITAB-MEABM 'CM'.
      WRITE W-ITAB-HOEHE TO   TB_HOEHE LEFT-JUSTIFIED DECIMALS 0.
      SELECT SINGLE * FROM T006A WHERE SPRAS = NAST-SPRAS
                                AND   MSEHI = W-ITAB-GEWEI_MAX.
      IF SY-SUBRC <> 0.
        T006A-MSEH6 = W-ITAB-GEWEI_MAX.
      ENDIF.
      CONCATENATE TB_LAENG TB_BREIT TB_HOEHE
                  INTO TB_ABMES SEPARATED BY 'x'.
      IF W-ITAB-VEBEZ CA ' '.
        IF SY-FDPOS <> 0.
          W-ITAB-VEBEZ = W-ITAB-VEBEZ(SY-FDPOS).
        ENDIF.
      ENDIF.
      READ TABLE IT_VSTEL WITH KEY VSTEL = W-ITAB-VSTEL.
    ENDFORM.
    FORM GET_ANZPACK.
      READ TABLE SLK WITH KEY VBELN = W-ITAB-VPOBJKEY.          "BT82FE
      CHECK SY-SUBRC = 0.                                       "BT82FE
      ADD SLK-ANZPK TO TB_COLLI.                                "BT82FE
      W-LSANZPK = SLK-ANZPK.                                    "BT82FE
      W-LSNUM = W-ITAB-VPOBJKEY+4(8).                           "BT82FE
    ENDFORM.
    *&      Form  PRUEFEN_PACKELEMENT
    FORM PRUEFEN_PACKELEMENT.
      TABLES: VBFA.
      SELECT * FROM VBFA WHERE VBELV   = W-ITAB-VPOBJKEY
                         AND   VBELN   = W-ITAB-VENUM
                         AND   VBTYP_N = 'X'.
        EXIT.
      ENDSELECT.
    ENDFORM.                    " PRUEFEN_PACKELEMENT
    FORM WRITE_ELEMENT.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT                  = W-ELEMENT
           EXCEPTIONS
                ELEMENT                  = 1
                FUNCTION                 = 2
                TYPE                     = 3
                UNOPENED                 = 4
                UNSTARTED                = 5
                WINDOW                   = 6
                BAD_PAGEFORMAT_FOR_PRINT = 7
                OTHERS                   = 8.
    ENDFORM.
    FORM GET_BFART_TEXT.                                        "BT82FE
      CALL FUNCTION 'SD_SHIPMENT_HEADER_DESCRIPTION'
           EXPORTING
                I_XVTTK                        = VTTKVB
    *           i_adrnr                        = vttk-adrnr
           CHANGING
                C_TXT_SHIPMENT_TYPE            = TVTKT-BEZEI
                C_TXT_PROCESSING_TYPE          = RV56A-TXT_ABFER
                C_TXT_PROCESS_CONTROL          = RV56A-TXT_ABWST
                 C_TXT_SERVICE_LEVEL            = RV56A-TXT_BFART.
    *            C_TXT_SHIPPING_TYPE            = RV56A-TXT_VSART
    *            C_TXT_SHIP_TYP_PREL            = RV56A-TXT_VSAVL
    *            C_TXT_SHIP_TYP_SUBS            = RV56A-TXT_VSANL
    *            C_TXT_LEG_INDICATOR            = RV56A-TXT_LAUFK
    *            C_TXT_SHIPPING_COND            = RV56A-TXT_VSBED
    *            C_TXT_ROUTE                    = VTTKD-TXROU
    *            C_TXT_CARRIER                  = VTTKD-TXDIL
    *            C_TXT_OVERALL_STATUS           = RV56A-TXT_STTRG
    *            C_ICON_OVERALL_STATUS          = RV56A-TRG_AMPEL
    *           C_TXT_FREIGHT_COST_RELEVANCE   = VTTK_TXT-FRKRL_TXT
    *           C_TXT_FREIGHT_CALC_STATUS      = VTTK_TXT-FBSTA_TXT
    *           C_TXT_FREIGHT_SETT_STATUS      = VTTK_TXT-ARSTA_TXT
    *           C_TXT_OVRL_FREIGHT_CALC_STATUS = VTTK_TXT-FBGST_TXT
    *           C_TXT_OVRL_FREIGHT_SETT_STATUS = VTTK_TXT-ARGST_TXT
    *           C_TXT_SPECIAL_PROCESSING       = VTTK_TXT-SDABW_TXT
    *           C_TXT_PRICING_PROCEDURE        = VTTK_TXT-KKALSM_TXT
    *            C_TXT_STATUS_PLANNED           = RV56A-TXT_STDIS
    *            C_TXT_STATUS_REGISTRATED       = RV56A-TXT_STREG
    *            C_TXT_STATUS_LOAD_START        = RV56A-TXT_STLBG
    *            C_TXT_STATUS_LOAD_END          = RV56A-TXT_STLAD
    *            C_TXT_STATUS_PROCESSING        = RV56A-TXT_STABF
    *            C_TXT_STATUS_SHIPM_START       = RV56A-TXT_STTBG
    *            C_TXT_STATUS_SHIPM_END         = RV56A-TXT_STTEN
    *           C_ROUTID                       = VTTK_TXT-ROUTID
    *            C_TXT_LEG_DET_TYPE             = RV56A-TXT_STERM
    *            C_TXT_ROUTE_STAGES             = RV56A-TXT_ROTSTA
    *            C_TXT_ADD_INFO_1               = VTADD01T-BEZEI
    *            C_TXT_ADD_INFO_2               = VTADD02T-BEZEI
    *            C_TXT_ADD_INFO_3               = VTADD03T-BEZEI
    *            C_TXT_ADD_INFO_4               = VTADD04T-BEZEI.
    ENDFORM.
    *&      Form  START_FORM
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM START_FORM.
      CALL FUNCTION 'START_FORM'
    * EXPORTING
    *   ARCHIVE_INDEX          =
    *   FORM                   = ' '
    *   LANGUAGE               = ' '
    *   STARTPAGE              = ' '
    *   PROGRAM                = ' '
    *   MAIL_APPL_OBJECT       =
    * IMPORTING
    *   LANGUAGE               =
    * EXCEPTIONS
    *   FORM                   = 1
    *   FORMAT                 = 2
    *   UNENDED                = 3
    *   UNOPENED               = 4
    *   UNUSED                 = 5
    *   SPOOL_ERROR            = 6
    *   OTHERS                 = 7
      IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " START_FORM
    *&      Form  END_FORM
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM END_FORM.
      CALL FUNCTION 'END_FORM'
    * IMPORTING
    *   RESULT                         =
    * EXCEPTIONS
    *   UNOPENED                       = 1
    *   BAD_PAGEFORMAT_FOR_PRINT       = 2
    *   SPOOL_ERROR                    = 3
    *   OTHERS                         = 4
      IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " END_FORM
    Regards,
    Vasanth
    Message was edited by:
            Vasanth M

  • Print group name on a page of Report

    I have sorted my data on my report, printing a group on each page of my report.
    On each page, i would like to print the name of the current group (easy) but also the name of the previous page group. How can i do that ?
    Using GroupName()...?

    duplicate - please do not post multiple times

  • Header to be displayed on each page(I cannot use TOP_OF_PAGE)

    hi all,
    I am writing a classical report. My output has two types of records. One is stored in internal table ITAB1 and other in ITAB2.
    ITAB1 and ITAB2 don't have same header. I need to first display the records in ITAB1 and later ITAB2.
    The problem here is both the tables have records exceeding one page. I need to print corresponding headers on each page.
    For Ex: If ITAB1 has records which cover two pages, then ITAB1 header needs to be printed on each page. After that ITAB2 header needs to be printed on each page.
    Can you please help.
    Thanks,
    Aravind

    Hi Aravind,
    You can try the following, declare a flag variable an set its value as 1. Now in event top-of-page check the value of the flag , if it is 1 write the heading for ITAB1 else write the heading for ITAB2.. Assume that the page length is 25 rows, that would invoke top-of-page after 25 rows. Now the output that you are displaying would be using the loop at itab1. write. endloop.
    After the loop is completed increment the flag by 1 and call new page. Now the flag contains 2 hence the heading for ITAB2 will be called.
    top-of-page.
    if flag = 1.
      write <heading1>
    else.
      write <heading2>
    endif.
    start-of-selection.
    loop at itab1.
    write <data from itab1>.
    endloop.
    flag = flag + 1.
    <invoke new page by NEW-PAGE command>
    loop at itab2.
      write <data from itab2>.
    endloop.
    Hope this helps.
    Regards,
    Sachin

Maybe you are looking for

  • Income Tax Calculations 2008

    Hi Friends, I have a Issue in Income Tax  calculation, for the month of September, the form 16 for a particular employee is a follows Form 16 summary Gross Salary                   783,399.00 Exemption U/S 10                 5,600.00 Balance         

  • Can I get 2 sets of headphones to work at the same time on my powerbook?

    For example, one USB set and one regular mini jack? I have played around in audio settings but don't see a way to do it. thanks

  • FMS on Mac OS X Server

    We use a big infrastructure on OS X Server, and actually we have some apps developed with FMS 2 run on a little test windows server. I hope we will be able to install FMS 3 on OS X Server to connect FMS apps to SSO, LDAP, SAN, to improve disponibilit

  • How I COULD CHECK files are storing in DMS server or DNS server.

    Hi, all, I am storing DMS files ie originals in DMS_C1_ST through Kpro, Because we have DNS server and DMS server. Now I m working in Production server, How I can check the DMS files is storing in DMS server or in DNS server. The DMS configuration is

  • E61 Sync via Bluetooth or WiFi?

    Using the Nokia PC Suite provided, I cannot seem to connect via Bluetooth. I CAN however connect from my PC to my e61 via Bluetooth, but cannot sync without the PC Suite software. Is there a solution to this problem? Is there any way of Syncing an e6