Continuation in Smartforms

Hi all,
Im facing a problem in smartforms.
firstly i have a page1 defined. it contains "include texts" that run into some 4 pages.
and then i have a page 2 defined in which i have a table which also has the potential to run into 3 or 4 pages. but this is not happening so. the reason being that
1) my first page is defined in a Main Window and only Main Windows have the potential for text overflow.
2) since first page is Main Window my second page has to be a secondary window, otherwise the table in the second window will not be displayed.
so its kind of a deadlock situation with no way out for me.
can anybody suggest some way out??
PS: 1) i have defined a command in page 1 which points to second page.
       2) my page 2 is displayed but data is not overflowing from the table into subsequent pages..
pls help
pk

Hi,
No need to use two pages, try the following.
In the first page Main Window,
First display include text,
Second ve a page break to the same page,
Finally place the table.
Now after printing the include text, u ll navigate to the new page where all the data from ur table continues to next page without ending abruptly.
Regards,
Prabhu

Similar Messages

  • Unable to print text in continuity in smartform

    Hi
    I i am not able to print the whole text in the smartform , it prints half of the text in one line and half in the second .
    I want to print it in continuity , how do i go about it ?
    The code i wrote is as follows:
    CLEAR: ls_object, itab_note, wa_note.
    UNPACK contract-recnnr TO contract-recnnr.
    CONCATENATE contract-bukrs contract-recnnr INTO ls_object-instid.
    ls_object-typeid = 'BUS1505'.
    ls_object-catid  = 'BO'.                "constant
    CLEAR: ls_relopt, lt_relopt.
    ls_relopt-sign   = 'I'.
    ls_relopt-option = 'EQ'.
    ls_relopt-low    = 'NOTE'.
    APPEND ls_relopt TO lt_relopt.
    TRY.
    CALL METHOD cl_binary_relation=>read_links_of_binrels
    EXPORTING
    is_object           = ls_object
    it_relation_options = lt_relopt
    ip_role             = 'GOSAPPLOBJ'
    ip_no_buffer        = 'X'
    IMPORTING
    et_links            = lt_link.
    CATCH cx_obl_parameter_error.
    CATCH cx_obl_internal_error.
    CATCH cx_obl_model_error.
    ENDTRY.
    SORT lt_link DESCENDING BY utctime.
    DATA: wf_clause(7) TYPE c.
    DATA: itab_lines  TYPE so_text255 OCCURS 0 WITH HEADER LINE.
    DATA: wf_crlfch(10).
    CALL FUNCTION 'SRET_BINARY_TO_TEXT'
    EXPORTING
    xbuffer    = wc_crlf
    laiso      = '00'
    IMPORTING
    textbuffer = wf_crlfch
    EXCEPTIONS
    failed     = 1
    OTHERS     = 2.
    **FIND first note
    IF lt_link IS NOT INITIAL.
    LOOP AT lt_link INTO ls_link.
    read content of note
    ld_doc_id = ls_link-instid_b.
    CALL FUNCTION 'SO_DOCUMENT_READ_API1'
    EXPORTING
    document_id                = ld_doc_id
    IMPORTING
    document_data              = doc_data
    TABLES
    object_content             = t_notecontent
    EXCEPTIONS
    document_id_not_exist      = 1
    operation_no_authorization = 2
    x_error                    = 3
    OTHERS                     = 4.
    wa_note-title = doc_data-obj_descr.
    wa_note-createdby = doc_data-creat_name.
    wa_note-createddate = doc_data-creat_date.
      Check if the line begins with 'Clause:' (any case).
    wf_clause = wa_note-title(7).
    TRANSLATE wf_clause TO UPPER CASE.
    IF wf_clause EQ 'CLAUSE:'.
        Lease Notes with Clauses
    wa_note-clauses = 'X'.
    ELSE.
        Lease Notes without Clauses
    wa_note-clauses = ' '.
    ENDIF.
    LOOP AT t_notecontent INTO notecontent.
    REFRESH itab_lines.
    TRANSLATE notecontent-line USING wf_crlfch.
    SPLIT notecontent-line AT '
    ' INTO TABLE itab_lines.

    hi Sweta,
    The window size can be the problem
    please increase the size of the window and see how many character more is coming in the first line.
    Then adjust accordingly.
    There is one more option which you can try , create another character format of smaller font and try.
    Regards,
    Avi............

  • Continuation of line item data to next page in SmartForm

    Hi,
    Currently i had a requirement in SmartForm. Iam displaying the line items from bseg table in main window and totals of credit and debit in the total window which comes under the main window.
    If the line items are more and it continues to next page i want to display the total window and created by window only after all the line items.
    Please try to send ASAP.

    You can print total by reading page numbers.
    Ex: IF <current page> EQ < next page number>
      Print total.
         ENDIF
    Regards,
    Sairam

  • Smartforms -Page Skipping Problem in Continue Sheet Printing.....

    Hi Gurus,
    I face problem with multiple page printing in dot matrix printer for purchase order printing.
    Here are the details about my requirement
    Our client Purchase order pre-printed Paper size Width 303 mm Height 203 mm and continued sheet. I have created a z layout zpoprint for the above size and assigned it in smarforms and select DINA4 transverse in printer. Whenever we printing 2nd page it starts printing after 5 cm. My friends asked me to create a customized page format in server properties in printer. Is there any other way to overcome this issue? Anybody face this problem kindly reply to me. 
    By
    SP. Manavalan

    Hi
    Though you can double check the page layouts of both pages of your smartform, also keep in consideration that using a dot matrix printer to get the output of smartforms will have some impact of the positioning of the print as dot matrix printers are mechanical in nature(wheels are moving!).
    Whereas, in laser printers, the whole data is taken, formatted and then sent to print.
    Regards
    Raj

  • Smartforms + continuously printing on sheet

    Hi Guys.
    I have a Smarform of Transfer Order Label. I use my own page format with size 210mm*99mm (It's exact 1/3 of standard A4 Sheet).
    When the user print some TO at once ( Print Smartform within a loop statement ), each one is printed on a separate A4-sheet.
    Is there any way to make them to be printed continuously on the sheet, I mean 3 Labels on each A4 Sheet?
    Thank in advance.

    Now I'm remembering:  Once I hade to print bank checks on preprinted forms, with smartforms.  The preprinted forms where punched with 4 checks on each page.
    What I did was:
    - I created a page with the size of a form (4 checks).
    - I created a main window with the size of 4 checks.
    - I made a loop inside the smartform
    - Inside them I created a Template.  I draw the check with the template.  So, for me every check is a big and complex line drawed with the template.
    It was printed with a laser printer.  Since you can for example print only 1 check you can left with a 3 blank check page, or 2, or 1.  But after this page the next ones are has always with 4 checks space.  Then I put a parameter asking the user for the number of available check spaces on the first sheet.  After that I completed the internal table with blank checks, to force a page break.
    Finally we changed the printer feed to manual and we had to change the page size setting of the printer to automatic, or undefined, or something like it.  Before we did it the first page was taken as an invalid page because the printer notes that the page was shorter than it expected.
    With all this work we left the circuit working.  I don't know if it's the same for you, but may be some of this can work for you or at least give you an idea.
    Hope it helps!

  • Printing same smartform with different set of records continuously.

    Hi SDNer,
    Suppose a table contain Studet info like the following one:
    ID   Name    Sub1       Sub2     Sub3
    1    xxx        sb11       sb12     sb13
    2    yyy        sb21       sb22     sb23
    3    zzz        sb31       sb32     sb33
    Think that the smartform contain only a single page(Suppose smartform of student result).In the Selection screen User can put the range of ID.When User put 1-3 the smartform print 3 pages---1st for the student with id 1,2nd for student with id 2 and 3rd for student with id 3.when user put the input 1-2 the smartform print 2 pages.I need your help to accomplish such a scenario.
    Thanks in advance.
    Regards,
    Sarbajit.

    Hi,
    As per user's selection criteria you need fetch data in your driver program and need to store it in an internal table. The same internal table you need to pass to smartform. to handle your requirement of displaying one student record per page you need to use COMMAND node (with some condition). Using this you can force your smartform for page-break.
    I hope this will help you to start and explore further.
    Regards,
    Sambaran Ray

  • Smartform printing on Dot Matrix printer for continuous stationery

    Hi Friends,
    I'm throwing my smartform print output on printer using local printer .Now the problem is as i have designed the SF using A4 page size , the output on Dot matrix is my output (WHICH IS 1/3rd OF a PAGE) + rest of empty space which is actually wasting pages.
    Settings in SPAD are as follows:
    Output device : Lp01
    Device type : SWIN
    and page format : LINE_21
    Format Type : LINE_21
    What i want is a restricted output .please let me know the possible solutions and do i need to load the driver for my printer in SAP as well (Printer is  : wipro WEP 800 DX)
    Thanks and Regards,
    Sachin Soni

    Hi,
    Change the page settings in the form
    -> under the form attributes you can find the page format there you can set up your required format
    Thanks,
    Nethaji.

  • Smartforms - To print on continuous stationary

    Hi! Experts,
    Help me to Print on Continuous Pre-Printed stationary.
    Now im able to Print the First page perfectly, and those data are not printing on its particular location(as its a pre-printed stationary) on the second page.
    In main window i have used Tables to Print the columns. and now after it reaches the end of main window, its not printing on the correct position where it needs to print on the second page,  instead its printing from starting(i,e from line.no: 1)  of the second page but i need it to print on the line.No - 10.
    Kindly help me.
    Thanks and Regards,
    Nagulan

    Hi ,
    Which page format u are using . U have to use the page format equal to the dimensions of your page .   Ask your basis person to create a page format matching dimensions of your paper .
    and if u are already using the page format according to the dimensions of ur paper then in the properties of the printer change the page format to  type  fanfold .
    This will sove urv pblm .
    Regards

  • Flow of control in smartforms while continuation of text

    hi, I am working on smartforms. on the first page there is a main table in the main window. the main table's header has 4 row lines. the control is first printing the 3rd row line as the conditions are not met for the first 2 row lines. While printing the 3rd rowline the main window area is complete so the next page is started and there, above the rest portion of the 3rd row line I am finding the 4th rowline.
    can anyone please explain me the control flow in this type of case.
    Thanks in advance

    Hello Sangram,
    Did you created the Next page and assign it to first page ?
    Normally if internal table is having the data of suppose 4 line item and if the 3 line item is printed in 1st page then accordingly next page is trigger printing the remaining data.
    If you have done the below steps then please ignore that :
    1. Create the Next page same as First page .
    2 In General Attribute of First page Select the Next Page As your "NEXT PAGE.
    Let me know if it doesn't work.
    Thanks
    Romit Raina

  • Thick continuous line in smartform output

    Hello Experts,
    I need to print a thick continuous line in a smart form output. I have to print this after/before specific data that is going to be printed through a template.
    can any one through some light on me regarding this?
    Regards,
    Usha.

    hi usha,
    There are four options in template tab LOWER FRAME, UPPER FRAME, RIGHT FRAME, LEFT FRAME using these u can get the solution for this thread.
    select that particular frame in template and click on specific option.
    regards,
    sujatha.

  • SMARTFORM: PROBLEM WITH PRINTING SAME HEADER IN PAGES FOR A NON-FINISH LIST

    Hi, guys!
    I hope you can help me as well as many other times.
    I have a Smartform which contains a header,body and a footer in a page.
    This is a form for a report, which we have a column header and the positions. the problem is that if a current account haven't finish in that list (see the example)
    ASD
    ASDASDASDASD
    ASDASDASDASD
    MY REPORT
    ACCOUNT      | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |                <-- COLUMN HEADER
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |12.12            |
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123123.23    |
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123.1233      |
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |21222.23      |
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123.23          |
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |1212.12        |
    PAGE 1
    in the next page, we don't want to repeat the columns header. just only continue printing the lines...
    ASD
    ASDASDASDASD
    ASDASDASDASD
    MY REPORT
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123.1233      |
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |21222.23      |
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123.23          |
    123123123     | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |1212.12        |
    PAGE 2
    Has anyone encourage this issue? What can I do? remember is a smartform.
    please help us!!
    thanx

    Guys.
    Remember that the columns header won't be printed only if the lines per account continues. I mean, the column header printing depends on the number of lines that are being printed.
    If at the end of a previous page the list (for example the positions that belong to this account) still continues for an account, then in the next page the column header musn't be printed, just only continue printing the rest of the positions. As you notice this case would be found in any number of pages during the rest of the report.
    I'm agree with all your solutions but this only functionin some cases for the first page.
    I look forward to hearing from you.
    If I'm clear now, please help me!
    Thanks guys!

  • In SMARTFORMS when openee a Text Node,   Giving a Short Dump

    Hi
    I am getting Short Dump in SMARTFORMS Transaction, when ever I opened a Text Node and made some changes in it.
    With out opening a Text Node I can able to change and activate the SmartForm.
    But if I open a Text Node I can able to make changes in the Text Node but later if i click on any other Node, it is giving a Short Dump.
    But all other systems in my office are working fine.
    I have tried the Utilities->Settings-> and changed the editor also. 
    I have also Installed the SAPGUI once again for this Issue. But still I am getting the same problem.
    Can anyone Please help me on this Issue.
    I am sending the error enalysis of the Short Dump.
    Error analysis
        Short text of error message:
        Control Framework : Error processing control
        Long text of error message:
         Diagnosis
             An error occurred when the system tried to process the commands
             from the Automation Queue on the presentation server.
             There are several possible reasons for this:
             - The installation of the SAP GUI on the presentation server is
             faulty or obsolete.
             - There is an error in the application program
             - There is an error in the SAPGUI or an integrated control
         Procedure
             1. Make sure that you have imported the appropriate Support
             Package, the current kernel, and GUI patch for the release of your
             system
             2. Check whether the error occurs locally on one or a few PCs, or
             generally on all PCs. Note whether the error only occurs for some
             users, for example because of a specific Customizing setting.
             If it only occurs locally, this suggests an installation problem
             with the PC. Check the installation; if necessary, reinstall the
             software. In the dump, search for the SY-MSGLI field, since it may
             point to the cause of the error.
             3. Activate the Automation Trace (in accordance with SAP Note
             158985).
             4.Start the transaction and continue until the screen immediately
             before the dump.
             5. From the System -> Utilities menu, choose Autom. Queue,
             Synchronous Processing.
             The status bar of the GUI displays the text:
                "Automation synchron flush mode on"
             6. If you now proceed with the application, the short dump will
             display the ABAP call that caused the error; the Automation Trace
             will contain the error on the presentation server.
             7. If necessary, load the short dump and trace files on to
             sapservX, so that SAP can analyze them.
        Technical information about the message:
        Message class....... "CNDP"
        Number.............. 006
    Thanks in Advance.

    Hi
    I think dump is because of SAP GUI. If you are ECC 6.0 then install SAP GUI 710 with patch level  2 or more and check
    Regards
    Shiva

  • Printing Dunning Letters using Smartforms

    Hi all,
    I have a requirement wherein I need to print dunning letters using smartforms; the dunning data are extracted in program SAPF150D2;I modified the subroutine OFI_DUN_ACT to call function module FI_PRINT_DUNNING_NOTICE_SMARTF.
    Now I need to extract the dunning data in program SAPF150D2 to be imported to my new form using GET_SF_DUNN_DATA, my question is where do I code the calling of FM GET_SFG_DUNN_DATA? I'm a little bit confused on the step by step process of the dunning data extraction to printing of the form... Thanks...

    In the INITIALIZATION of the Smartforms, after the call to  GET_SF_DUNN_DATA, you have a many informations back, of which the record of MHNK and an internal table of MHND, which you can use to select other informations from database.
    So fill or enrich your own internal table in the initialization.
    I enclose thereafter a sample to help you
    * Load data
      CALL FUNCTION 'GET_SF_DUNN_DATA'
           EXPORTING
                is_sfparam          = is_sfparam
           IMPORTING
                es_mhnk             = mhnk
                es_t001             = t001
                es_knb5             = knb5
                es_lfb5             = lfb5
                es_t047             = t047
                es_t047c            = t047c
                es_t047i            = t047i
                es_t056z            = t056z
                es_f150d            = f150d
                es_fsabe            = fsabe
                es_adrnr            = adrnr
                es_uadrnr           = uadrnr
                es_adrs             = adrs
                es_uadrs            = uadrs
                es_t047b            = t047b
                eb_testprint        = testprint
                e_langu             = langu
                e_lang2             = lang2
                es_f150d_esr        = f150d_esr
                es_paymi            = paymi
                es_paymo            = paymo
           TABLES
                t_mhnd              = th_mhnd
           EXCEPTIONS
                no_parameters_found = 1
                OTHERS              = 2.
    IF sy-subrc <> 0.
      sy-msgid = 'FM'.
      sy-msgty = 'E'.
      sy-msgno = 461.
      RAISE others.
    ENDIF.
    h_t040a-text1 = space.
    show_interest = space.
    LOOP AT th_mhnd INTO mhnd WHERE xzins = ' '.
      show_interest = 'X'.
      EXIT.
    ENDLOOP.
    * Load user information
    DATA: usr21 LIKE usr21, addr3_sel LIKE addr3_sel.
    CLEAR: usr21, addr3_sel, addr3_val, adr6.
    * Charger fiche profil
    SELECT SINGLE * FROM usr21 WHERE bname = sy-uname.
    * Récupérer l'adresse
    MOVE-CORRESPONDING usr21 TO addr3_sel.
    CALL FUNCTION 'ADDR_PERS_COMP_GET'
         EXPORTING
              address_pers_in_comp_selection = addr3_sel
         IMPORTING
              address_pers_in_comp_value     = addr3_val
         EXCEPTIONS
              OTHERS                         = 1.
    * load SMTP address
    CLEAR adr6.
    SELECT SINGLE * FROM adr6
      WHERE addrnumber = usr21-addrnumber
        AND persnumber = usr21-persnumber.
    * date format
    SET COUNTRY adrs-land1.
    * Group similar posts
    DATA: xbseg TYPE bseg,
          xbkpf TYPE bkpf,
          xpost TYPE th_outtab.
    REFRESH: t_post, t_cumul_waers.
    LOOP AT th_mhnd INTO mhnd.
    * Select lines to use
      IF mhnk-gmvdt IS INITIAL.
        IF mhnd-xzalb <> space OR mhnd-mansp <> space.
          CONTINUE.
        ELSEIF t047b-xpost NE 'X' AND mhnd-xfael <> 'X'.
          CONTINUE.
        ENDIF.
      ENDIF.
    * Map data
      CLEAR xpost.
      MOVE-CORRESPONDING mhnd TO xpost.
    * Load text from bseg
      SELECT SINGLE sgtxt INTO xpost-sgtxt FROM bseg
        WHERE bukrs EQ mhnd-bbukrs AND belnr EQ mhnd-belnr
          AND gjahr EQ mhnd-gjahr  AND buzei EQ mhnd-buzei.
      PERFORM edit_text CHANGING xpost-zuonr mhnd-xblnr xpost-sgtxt.
    * if "Payment difference" get the date of original document
      IF mhnd-bschl = '06'.
        SELECT SINGLE bldat INTO xpost-bldat
          FROM bkpf
          WHERE bukrs = mhnd-bukrs
            AND belnr = mhnd-rebzg
            AND gjahr = mhnd-rebzj.
      ENDIF.
    * Collect posts to print
      COLLECT xpost INTO t_post.
    * Collect amount per currency
      MOVE-CORRESPONDING xpost TO cumul.
      COLLECT cumul INTO t_cumul_waers.
    ENDLOOP.
    * Load customer information
    SELECT SINGLE * FROM kna1 INTO kna1
      WHERE kunnr = mhnk-kunnr.
    SELECT SINGLE * FROM knb1 INTO knb1
      WHERE bukrs = mhnk-bukrs
        AND kunnr = mhnk-kunnr.
    * Convert date to text
    PERFORM convert_date USING control_parameters-langu mhnk-laufd
      CHANGING text_date.
    PERFORM convert_date USING control_parameters-langu mhnk-prndt_before
      CHANGING text_prev.
    PERFORM convert_date USING control_parameters-langu mhnk-grdat
      CHANGING text_extr.
    Regards

  • Smartforms - Extra Blank Page in DUPLEX mode

    Hello Friends,
    I am printing my smartforms in DUPLEX page mode. Its printing fine but i am getting an extra blank page.
    Searched the forum but no luck.
    I have defined 3 pages Page1, PAGE_INST,Page2. I need to print instructions(say) on back of each page.
    I had set page1 to duplex mode 'D' and next page to blank.
    My pages flow is in the following way:
    page1>Page INST>Page2
    Page 1 & 2 have main windows and have a command to print PAGE_INST.
    Page_INST Does not has main window.
    Page1 : next Page 2.
    Page INST : Next page is Page 2.
    Page2 : is a continuation of page 1 next window is blank(or page 2)
    Its printing fine in Duplex but always there is a blank sheet in the print out at last page.
    Can someone help me how to avoid the last blank page.
    Thanks

    HI Hari,
    How to avoid a blank page at end of the page?
    Regards,
    Sravanthi

  • Smartforms :Multiple forms 2 be printed in single print prog,PDF too

    Hello Smartforms Gurus
    I need to print 4 forms (Export Invoice, packing List, Enclosure to Packing list, Case marking) within a single print prog .
    User will execute this prog and it should print all the 4 forms and then by clicking on a button(Archive) there
    it should download a single pdf file containing all 4 forms .
    At present my following program directly download this form(only Export Invoice) to a pdf file but doesnt leave options to go to Print or Print Preview .
    Plz look into my code , and  suggest.
    Thnx
    Moni
    *Printing of Export Invoice, Packing List,Enclosure to Packing List &  *
    *Case Marking in one SMART FORMS Layout                                *
    REPORT ZSD_REP_MULTI_PRINT.
    TABLES :
        vbak,
        vbap,
        vbpa,
        vbfa,
        VBRK,
        VBRP,
        LIKP,
        LIPS,
        KONV,
        objk,
        tvko,
        ser01,
        sadr,
        equi,
        makt,
        mast,
        t005t,
        kna1,
        t001w,
        T001,
        ADRC,
        sscrfields,
        zpp_plcmi,      "Packing list history For Conf: Item data
        zplh,           "PACKING LIST HISTORY : HEADER DATA
        zpli.           "PACKING LIST HISTORY : ITEM DATA
    DATA: FM_NAME  TYPE RS38L_FNAM,
          P_E_DEVTYPE TYPE RSPOPTYPE,
          P_JOB_OUTPUT_INFO TYPE SSFCRESCL OCCURS 2000 WITH HEADER LINE,
          P_OUTPUT_OPTIONS TYPE SSFCOMPOP OCCURS 0 WITH HEADER LINE,
          P_CONTROL_PARAMETERS TYPE SSFCTRLOP OCCURS 0 WITH HEADER LINE ,
          P_DOC  LIKE DOCS OCCURS 2000 WITH HEADER LINE,
          P_LINES LIKE TLINE OCCURS 200,
          P_BIN_FILESIZE TYPE I,
          P_LANGUAGE TYPE SFLANGU,
          P_BIN_FILE TYPE XSTRING,
          <i>OK_CODE LIKE SY-UCOMM.</i>
    DATA: T_ITEM   TYPE  ZSD_TABL_LITEM,
          WA_ITEM  TYPE  ZSD_STRUCT_LITEM,
          T_ADRS   LIKE  ZSD_STRUCT_ADRS  OCCURS 0 WITH HEADER LINE,
          MSLINES  LIKE  TLINE OCCURS 1 WITH HEADER LINE,
          TIDNO    LIKE STXL-TDID,
          TNAME    LIKE STXL-TDNAME,
          TOBJT    LIKE STXL-TDOBJECT,
          SSORD    LIKE VBAK-VBELN,
          TOT      LIKE VBAK-NETWR,
          WORD     LIKE SPELL.
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    PARAMETERS: P_DELNO LIKE  LIKP-VBELN OBLIGATORY,
                P_INVNO LIKE  VBRK-VBELN OBLIGATORY,
                P_DATE  LIKE  SY-DATUM.
    SELECTION-SCREEN END   OF BLOCK blk1.
    AT SELECTION-SCREEN.
      CLEAR T_ADRS.
      REFRESH T_ITEM.
      T_ADRS-INVNO = P_INVNO.
      T_ADRS-INVDAT = P_DATE.
      SELECT SINGLE VBELV INTO  VBFA-VBELV
                             FROM  VBFA
                             WHERE VBELN = P_DELNO
                               AND VBTYP_N = 'J'  .
      SSORD = VBFA-VBELV.
    *Exporter's  Address
      SELECT SINGLE BUKRS_VF INTO  VBAK-BUKRS_VF
                             FROM  VBAK
                             WHERE VBELN = VBFA-VBELV.
      SELECT SINGLE   ADRNR
                      INTO T001-ADRNR
                      FROM T001
                      WHERE BUKRS = VBAK-BUKRS_VF.
      SELECT SINGLE NAME1 STREET CITY1 POST_CODE1 COUNTRY
             INTO (T_ADRS-NAME1,T_ADRS-STREET,T_ADRS-CITY1,
                   T_ADRS-POST_CODE1, ADRC-COUNTRY)
             FROM  ADRC
             WHERE ADDRNUMBER EQ T001-ADRNR.
      SELECT SINGLE LANDX
                    INTO T_ADRS-COUNTRY
                    FROM T005T
                    WHERE     SPRAS = 'EN'
                          AND LAND1 = ADRC-COUNTRY.
    **BUYERS NO & DATE
    SELECT SINGLE BSTNK BSTDK INTO  (T_ADRS-BSTNK,T_ADRS-BSTDK)
                         FROM  VBAK
                         WHERE VBELN = VBFA-VBELV.
    *Consignee Address & Buyer Other Than Consignee
      SELECT SINGLE KUNNR KUNAG INTO (LIKP-KUNNR, LIKP-KUNAG)
                                FROM LIKP WHERE VBELN = P_DELNO.
      IF LIKP-KUNNR = LIKP-KUNAG.
        SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
                  INTO (T_ADRS-CNAME1, T_ADRS-CNAME2, T_ADRS-CSTREET,
                        T_ADRS-CCITY,  T_ADRS-CPCODE, T_ADRS-CREGIO,
                        T_ADRS-CTELF1, KNA1-ADRNR)
                  FROM  KNA1
                  WHERE KUNNR = LIKP-KUNNR.
        SELECT SINGLE COUNTRY INTO  ADRC-COUNTRY
                              FROM  ADRC
                              WHERE ADDRNUMBER EQ KNA1-ADRNR.
        SELECT SINGLE LANDX
                    INTO T_ADRS-CCOUNTRY
                    FROM T005T
                    WHERE     SPRAS = 'EN'
                          AND LAND1 = ADRC-COUNTRY.
        T_ADRS-ONAME1   =  T_ADRS-CNAME1 .
        T_ADRS-ONAME2   =  T_ADRS-CNAME2 .
        T_ADRS-OSTREET  =  T_ADRS-CSTREET .
        T_ADRS-OCITY    =  T_ADRS-CCITY.
        T_ADRS-OPCODE   =  T_ADRS-CPCODE .
        T_ADRS-OREGIO   =  T_ADRS-CREGIO.
        T_ADRS-OTELF1   =  T_ADRS-CTELF1 .
        T_ADRS-OCOUNTRY =  T_ADRS-CCOUNTRY.
      ELSE.
        SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
                  INTO (T_ADRS-CNAME1, T_ADRS-CNAME2, T_ADRS-CSTREET,
                        T_ADRS-CCITY,  T_ADRS-CPCODE, T_ADRS-CREGIO,
                        T_ADRS-CTELF1, KNA1-ADRNR)
                  FROM  KNA1
                  WHERE KUNNR = LIKP-KUNNR.
        SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
                              FROM  ADRC
                              WHERE ADDRNUMBER EQ KNA1-ADRNR.
        SELECT SINGLE LANDX
                    INTO T_ADRS-CCOUNTRY
                    FROM T005T
                    WHERE     SPRAS = 'EN'
                          AND LAND1 = ADRC-COUNTRY.
    *Buyer Other than Consignee
        SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
                   INTO (T_ADRS-ONAME1, T_ADRS-ONAME2, T_ADRS-OSTREET,
                         T_ADRS-OCITY,  T_ADRS-OPCODE, T_ADRS-OREGIO,
                         T_ADRS-OTELF1, KNA1-ADRNR)
                   FROM  KNA1
                   WHERE KUNNR = LIKP-KUNAG.
        SELECT SINGLE COUNTRY INTO  ADRC-COUNTRY
                              FROM  ADRC
                              WHERE ADDRNUMBER EQ KNA1-ADRNR.
        SELECT SINGLE LANDX
                    INTO T_ADRS-OCOUNTRY
                    FROM T005T
                    WHERE     SPRAS = 'EN'
                          AND LAND1 = ADRC-COUNTRY.
      ENDIF.
    *Other's Ref
      TIDNO = 'Z071'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-OREF = mslines-tdline(25).
        EXIT.
      ENDLOOP.
    *Buyer's Order No  Ref
      TIDNO = 'Z023'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-BUYER = mslines-tdline(25).
        EXIT.
      ENDLOOP.
    *Exporter Ref
      TIDNO = 'Z072'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-XPREF = mslines-tdline(25).
        EXIT.
      ENDLOOP.
    *Pre-Carraige By
      TIDNO = 'Z074'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-PCRG = mslines-tdline(25).
        EXIT.
      ENDLOOP.
    *Place Of reciept by Pre-Carraige
      TIDNO = 'Z073'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-PLPCRG = mslines-tdline(25).
        EXIT.
      ENDLOOP.
    *Vessel/Flight No
      TIDNO = 'Z075'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-VFNO = mslines-tdline(25).
        EXIT.
      ENDLOOP.
    *Port Of Loading
      TIDNO = 'Z077'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-PLOAD = mslines-tdline(25).
        EXIT.
      ENDLOOP.
    *Port Of Discharge
      TIDNO = 'Z076'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-PDISG = mslines-tdline(25).
        EXIT.
      ENDLOOP.
    *Final Destination
      TIDNO = 'Z070'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-FDEST = mslines-tdline(25).
        EXIT.
      ENDLOOP.
    *Terms Of Delivery & Payment
      TIDNO = 'Z080'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-TERMS = mslines-tdline(50).
        EXIT.
      ENDLOOP.
    APPEND T_ADRS.
    *BODY SECTION FOR LINE ITEMS
      SELECT POSNR KWMENG VRKME WAERK
             INTO  (VBAP-POSNR, VBAP-KWMENG, VBAP-VRKME, VBAP-WAERK)
             FROM  VBAP
             WHERE VBELN = SSORD.
    *Mark/Case No
        TIDNO = '0002'.
        CONCATENATE SSORD
                    VBAP-POSNR
        INTO        TNAME.
        TOBJT = 'VBBP'.
        PERFORM FINDTEXT.
        LOOP AT MSLINES.
          WA_ITEM-MARKNO = mslines-tdline(40).
          EXIT.
        ENDLOOP.
    *Packing Type
        TIDNO = '0003'.
        CONCATENATE SSORD
                    VBAP-POSNR
        INTO        TNAME.
        TOBJT = 'VBBP'.
        PERFORM FINDTEXT.
        LOOP AT MSLINES.
          WA_ITEM-PACKTYP = mslines-tdline(40).
          EXIT.
        ENDLOOP.
    *Goods Description
        TIDNO = '0001'.
        CONCATENATE SSORD
                    VBAP-POSNR
        INTO        TNAME.
        TOBJT = 'VBBP'.
        PERFORM FINDTEXT.
        LOOP AT MSLINES.
          WA_ITEM-PACKTYP = mslines-tdline(40).
          EXIT.
        ENDLOOP.
    *Goods Quantity
        WA_ITEM-QTY = VBAP-KWMENG.
        WA_ITEM-VRKME = VBAP-VRKME.
    *Goods Rate
        SELECT SINGLE KNUMV INTO VBAK-KNUMV FROM VBAK WHERE VBELN = SSORD.
        SELECT SINGLE KBETR WAERS
                      INTO  (WA_ITEM-RATE, WA_ITEM-WAERS)
                      FROM  KONV
                      WHERE KNUMV = VBAK-KNUMV
                        AND KPOSN = VBAP-POSNR
                        AND KSCHL = 'PR00'.
    *Goods Amount
        WA_ITEM-AMOUNT = WA_ITEM-QTY * WA_ITEM-RATE.
        WA_ITEM-WAERK = VBAP-WAERK.
        TOT = TOT + WA_ITEM-AMOUNT.
        APPEND WA_ITEM TO T_ITEM.
      ENDSELECT.
      T_ADRS-TOT = TOT.
      CALL FUNCTION 'SPELL_AMOUNT'
       EXPORTING
         AMOUNT          = TOT
         CURRENCY        = VBAP-WAERK
      FILLER          = ' '
         LANGUAGE        = SY-LANGU
       IMPORTING
         IN_WORDS        = WORD
       EXCEPTIONS
         NOT_FOUND       = 1
         TOO_LARGE       = 2
         OTHERS          = 3
      IF SY-SUBRC <> 0.
           MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      T_ADRS-TOT_WORDS = WORD-WORD.
      APPEND T_ADRS.
    START-OF-SELECTION.
    <b>  SET PF-STATUS '1000'.</b>
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          FORMNAME                 = 'Z_SD_REP_MULTI_PRINT'
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
       IMPORTING
          FM_NAME                  = FM_NAME
    EXCEPTIONS
       NO_FORM                  = 1
       NO_FUNCTION_MODULE       = 2
       OTHERS                   = 3
      IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      P_LANGUAGE = 'EN'.
      CALL   FUNCTION 'SSF_GET_DEVICE_TYPE'
        EXPORTING
          I_LANGUAGE    = P_LANGUAGE
          I_APPLICATION = 'SAPDEFAULT'
        IMPORTING
          E_DEVTYPE     = P_E_DEVTYPE.
      P_OUTPUT_OPTIONS-XSFCMODE = 'X'.
      P_OUTPUT_OPTIONS-XSF = SPACE.
      P_OUTPUT_OPTIONS-XDFCMODE = 'X'.
      P_OUTPUT_OPTIONS-XDF = SPACE.
      P_OUTPUT_OPTIONS-TDPRINTER = P_E_DEVTYPE.
      P_OUTPUT_OPTIONS-TDDEST = 'LOCL'.
      APPEND P_OUTPUT_OPTIONS.
      P_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
      P_CONTROL_PARAMETERS-GETOTF = 'X'.
      P_CONTROL_PARAMETERS-NO_CLOSE = SPACE.
      APPEND  P_CONTROL_PARAMETERS.
      CALL FUNCTION FM_NAME
       EXPORTING
      ARCHIVE_INDEX              =
      ARCHIVE_INDEX_TAB          =
      ARCHIVE_PARAMETERS         =
        CONTROL_PARAMETERS         = P_CONTROL_PARAMETERS
      MAIL_APPL_OBJ              =
      MAIL_RECIPIENT             =
      MAIL_SENDER                =
        OUTPUT_OPTIONS             = P_OUTPUT_OPTIONS
        USER_SETTINGS              = 'X'
      IMPORTING
      DOCUMENT_OUTPUT_INFO       =
        JOB_OUTPUT_INFO            = P_JOB_OUTPUT_INFO
      JOB_OUTPUT_OPTIONS         =
      TABLES
        T_ADRS                     = T_ADRS
        T_ITEM                     = T_ITEM
    EXCEPTIONS
       FORMATTING_ERROR           = 1
       INTERNAL_ERROR             = 2
       SEND_ERROR                 = 3
       USER_CANCELED              = 4
       OTHERS                     = 5
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    <b>AT USER-COMMAND.
    OK_CODE = SY-UCOMM.
    CASE OK_CODE.
    WHEN 'ARCHIVE'.</b>
    CALL FUNCTION 'CONVERT_OTF_2_PDF'
      EXPORTING
        USE_OTF_MC_CMD               = 'X'
      ARCHIVE_INDEX                =
    IMPORTING
        BIN_FILESIZE                 = P_BIN_FILESIZE
    TABLES
        OTF                          = P_JOB_OUTPUT_INFO-OTFDATA
        DOCTAB_ARCHIVE               = P_DOC
        LINES                        = P_LINES
    EXCEPTIONS
       ERR_CONV_NOT_POSSIBLE        = 1
       ERR_OTF_MC_NOENDMARKER       = 2
       OTHERS                       = 3.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
       BIN_FILESIZE                  = P_BIN_FILESIZE
      CODEPAGE                      = ' '
       FILENAME                      = 'C:\sd.pdf'
       FILETYPE                      = 'BIN'
       MODE                          = ''
      WK1_N_FORMAT                  = ' '
      WK1_N_SIZE                    = ' '
      WK1_T_FORMAT                  = ' '
      WK1_T_SIZE                    = ' '
      COL_SELECT                    = ' '
      COL_SELECTMASK                = ' '
      NO_AUTH_CHECK                 = ' '
    IMPORTING
        FILELENGTH                    = P_BIN_FILESIZE
      TABLES
        DATA_TAB                      = P_LINES
      FIELDNAMES                    =
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_WRITE_ERROR              = 2
      INVALID_FILESIZE              = 3
      INVALID_TYPE                  = 4
      NO_BATCH                      = 5
      UNKNOWN_ERROR                 = 6
      INVALID_TABLE_WIDTH           = 7
      GUI_REFUSE_FILETRANSFER       = 8
      CUSTOMER_ERROR                = 9
      NO_AUTHORITY                  = 10
      OTHERS                        = 11
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    <b>ENDCASE.</b>
    *&      Form  FINDTEXT
          text
    FORM FINDTEXT.
      REFRESH mslines.
      CALL FUNCTION 'READ_TEXT'
        EXPORTING
          client                  = sy-mandt
          id                      = tidno
          language                = sy-langu
          name                    = tname
          object                  = tobjt
        TABLES
          lines                   = mslines
        EXCEPTIONS
          id                      = 1
          language                = 2
          name                    = 3
          not_found               = 4
          object                  = 5
          reference_check         = 6
          wrong_access_to_archive = 7
          OTHERS                  = 8.
      DELETE mslines WHERE tdline IS INITIAL.
    ENDFORM.                    "FINDTEXT
    Message was edited by: md monirujjaman
    Message was edited by: md monirujjaman
    Message was edited by: md monirujjaman

    Hello,
    You cannot get continuous page numbers, But you will be able to merge all the 4 form outputs into one PDF file.
    In yesterdays example you called one form, then converted OTF data into PDF data and downloaded on Presentation server.
    In this case, after you call first form, you get the OTF data. Push this OTF data into a MAIN Internal table ( Same type as of OTF dada Int TAB ). Then Call second form. Then you get second set of OTF data. This second set of OTF data may be appended to the MAIN Internal table and the follw same procedure for the rest of the forms. In the end you will have one Internal table which holds OTF data of all the 4 forms.
    Now convert the OTD data to PDF Data by the FM and Download one file which has output of all the 4 forms.
    I hope my explanation is quite clear.
    Regarding your second question, the Archive and Print and archive buttons on the PRINT PREVIEW screen works for Spool archiving which is to be enabled by customizing. If you wish to archive the output as PDF, you may have to do it in program.
    I am NOT accessible on YAHOO.
    Plz let me know if you are stuck.
    Regards, Murugesh AS

Maybe you are looking for

  • How to ''give'' error for this case of an EXTERNAL TABLE?

    Our external table routine works fine: -- We have a csv file with 2 cols. -- When we create the table referring the csv it works fine. -- Even if the csv has more the 2 cols, the ET command only takes the 2 cols and it works fine. -- Now, users are s

  • How can I add a decimal in a string?

    Hi, I try to make a function to insert a decimal point after the 3rd position in a string if length of that string is >= 4 I try as belows: If LENGTH(str) >= 4 THEN rdstr := SUBSTR(str, 3); ldstr := TRIM(TRAILING rdstr FROM str); str := CONCAT(CONCAT

  • How to modify existing idoc

    Hi all, My requirement is all ready existing idoc is their add to the new segments.Where is see the existing idoc and  how modified it. requirement: Invoice is created in R/3 the outbound idoc is created. The idoc details contain the PO Order Number,

  • Questions/comments on "How to Use BC4J HTML Field Renderers"

    BTW thanks for getting this HOWTO on custom renderers up. Good stuff. Probably one of the first things someone should read after getting past the first BC4J-JSP tutorial. But after having just read it, I have some questions and comments. What would b

  • Does SunOS support WinZip32 ??

    Hi friends,, A password protected zip file created in windows OS needs to be transferred to a different environment which has SunOS . Please confirm how to unzip this transferred file in SunOS. If possible please let us know the procedure... Also con