Smart form to download in PDF

Hello All,
I have created an smart forms for Shipping Instruction . As per Requirement the smart forms should be downloaded in PDF and Auto mail to Consignee.
Can some one Please provide me details with example how can this will possible.
Thanks in advance.
Swati Namdeo.

Hi,
For downloading,check this code.For mailing, check this link.I am explaining the mail concept here.
https://sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/8fd773b3-0301-0010-eabe-82149bcc292e
DATA: form_name TYPE rs38l_fnam.
DATA: wa_ctrlop TYPE ssfctrlop,
wa_outopt TYPE ssfcompop.
DATA: t_otfdata TYPE ssfcrescl,
t_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE.
DATA: w_filesize TYPE i.
DATA: w_bin_filesize TYPE i.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZSMARTFORM_SWAR'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = form_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.
wa_ctrlop-getotf = 'X'.
wa_ctrlop-no_dialog = 'X'.
wa_outopt-tdnoprev = 'X'.
CALL FUNCTION form_name
EXPORTING
control_parameters = wa_ctrlop
output_options = wa_outopt
user_settings = 'X'
mydate = p_date
reason = p_rea
IMPORTING
DOCUMENT_OUTPUT_INFO =
job_output_info = t_otfdata
JOB_OUTPUT_OPTIONS =
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.
t_otf[] = t_otfdata-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
ARCHIVE_INDEX = ' '
IMPORTING
bin_filesize = w_bin_filesize
TABLES
otf = t_otf
lines = t_pdf_tab
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 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.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
bin_filesize = w_bin_filesize
filename = 'd:     est.PDF'
filetype = 'BIN'
IMPORTING
filelength = w_filesize
TABLES
data_tab = t_pdf_tab
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
OTHERS = 10
IF sy-subrc <> 0.
MESSAGE i003(z00) WITH 'File not downloaded succesfully'.
ELSE.
MESSAGE i003(z00) WITH 'File Test.pdf downloaded succesfully '
'under D drive'.
ENDIF.

Similar Messages

  • I have Adobe Pro online monthly subscription. I need to know how to fill in and sign forms already downloaded as PDF's

    I have Adobe Pro online monthly subscription. I need to know how to fill in and sign forms already downloaded as PDF's

    Hi Schoolcoach1,
    Please see the following Help documents:
    Acrobat Help | Filling in PDF forms
    Acrobat Help | Signing PDFs with Adobe EchoSign Electronic Signature
    Please let us know if you have additional questions.
    Best,
    Sara

  • Smart form   out put  into PDF ????

    How to download into PDF file  after the execute Smart form out put ????

    hi,
    pls try this code.
    *& Report : ZPDF_FORMAT
    *& Description : Conversion of Purchase Order into PDF format
    *& used in the workflow (Do Not Change or Delete).
    REPORT zpdf .
    *& Tables used
    TABLES: nast, tsp01, t024, spop, lfa1, tnapr.
    *& Data declaration
    DATA: spoolno LIKE tsp01-rqident.
    DATA: rcode LIKE sy-subrc.
    *data: doc_auth like zoutput-ztag.
    DATA: cancel.
    DATA: pdf LIKE tline OCCURS 0 WITH HEADER LINE.
    DATA: numbytes TYPE i,
    pdfspoolid LIKE tsp01-rqident,
    jobname LIKE tbtcjob-jobname,
    jobcount LIKE tbtcjob-jobcount,
    is_otf.
    DATA: client LIKE tst01-dclient,
    name LIKE tst01-dname,
    objtype LIKE rststype-type,
    type LIKE rststype-type.
    DATA: dir_loc(3).
    DATA: t_docno LIKE vbak-vbeln..
    DATA: spoolreq1 LIKE tsp01sys.
    DATA: spoolreq LIKE rsporq OCCURS 0 WITH HEADER LINE.
    DATA: t_frgke LIKE ekko-frgke.
    DATA: okcode(10),
    flag,
    t_ekgrp LIKE ekko-ekgrp,
    t_lifnr LIKE ekko-lifnr,
    s_mail.
    Data Declartion for mailing system - Start.
    DATA: objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE.
    DATA: objhead LIKE solisti1 OCCURS 0 WITH HEADER LINE.
    DATA: objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE.
    DATA: objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE.
    DATA: reclist1 LIKE somlreci1 OCCURS 500 WITH HEADER LINE.
    DATA: reclist LIKE somlreci1 OCCURS 500 WITH HEADER LINE.
    DATA: itab LIKE somlreci1 OCCURS 50 WITH HEADER LINE."RKU 220802
    DATA: doc_chng LIKE sodocchgi1.
    DATA: BEGIN OF bdcdata OCCURS 0.
    INCLUDE STRUCTURE bdcdata.
    DATA: END OF bdcdata.
    DATA: tab_lines LIKE sy-tabix.
    DATA: verkf LIKE ekko-verkf.
    DATA: bemail(250), vemail(250).
    Data acceptance
    SELECTION-SCREEN BEGIN OF BLOCK blk0_input WITH FRAME .
    PARAMETERS: docno LIKE ekko-ebeln OBLIGATORY LOWER CASE.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK blk0_input.
    Initialisation
    *initialization.
    Screen Parameters Validation
    *at selection-screen.
    AT SELECTION-SCREEN.
    SELECT SINGLE frgke INTO t_frgke FROM ekko
    WHERE ebeln = docno
    AND frgke = 'R'.
    IF sy-subrc <> 0.
    MESSAGE 'DOCUMENT NOT RELEASED' TYPE 'E'.
    ENDIF.
    Execution Part
    START-OF-SELECTION.
    For PO related operation
    Dislay Buyer Group, Name and Email id
    SELECT SINGLE
    ekgrp
    lifnr
    verkf
    INTO (t_ekgrp, t_lifnr, verkf)
    FROM ekko
    WHERE ekko~mandt = sy-mandt
    AND ebeln = docno.
    IF sy-subrc = 0.
    SELECT SINGLE * FROM lfa1
    WHERE lfa1~mandt = sy-mandt
    AND lifnr = t_lifnr.
    ENDIF.
    Get message status from NAST or assign msg status NAST stru
    Pass the message status and get spool data
    PERFORM check_output_create_spool.
    IF rcode NE 0.
    IF rcode = 9.
    message s185 with text-e04.
    ELSE.
    message s185 with text-e01.
    ENDIF.
    EXIT.
    ENDIF.
    find the spool
    PERFORM find_spool_request_id.
    IF sy-subrc <> 0.
    message s185 with text-003.
    EXIT.
    ENDIF.
    READ TABLE spoolreq
    WITH KEY rq0name = nast-dsnam
    rq1name = 'LP01'
    rqclient = '800'
    rq2name = sy-uname
    rqowner = sy-uname.
    IF sy-subrc <> 0.
    CASE sy-subrc.
    WHEN 1.
    message s185 with text-e03.
    WHEN OTHERS.
    message s185 with text-e02.
    ENDCASE.
    EXIT.
    ENDIF.
    spoolno = spoolreq-rqident.
    Convert SPOOL job to PDF
    PERFORM convert_spool_to_pdf.
    Send through mail
    PERFORM assign_data_4_mail.
    PERFORM send_mail_with_attachment.
    Delete created spool request
    spoolreq1-rqident = spoolno.
    PERFORM delete_spool_job.
    *& Form check_output_create_spool
    text
    --> p1 text
    <-- p2 text
    FORM check_output_create_spool.
    SELECT SINGLE * FROM nast WHERE objky = docno
    AND kappl = 'EF'
    AND kschl = 'NEU'
    AND aktiv = space
    AND nacha = '1'.
    IF sy-subrc EQ 0.
    COUNT = COUNT + 1.
    PERFORM mssage_status_field_value.
    nast-vsztp = '4'.
    PERFORM einzelnachricht_dialog(rsnast00) USING rcode.
    ELSE.
    CLEAR nast-uhrvr.
    CLEAR nast-cmfpnr.
    CLEAR nast-datvr.
    PERFORM mssage_status_field_value.
    nast-vsztp = '4'.
    PERFORM einzelnachricht_dialog(rsnast00) USING rcode.
    else.
    rcode = 9.
    ENDIF.
    ENDFORM. " check_output_create_spool
    *& Form mssage_status_field_value
    text
    --> p1 text
    <-- p2 text
    FORM mssage_status_field_value .
    nast-mandt = '800'.
    nast-kappl = 'EF'.
    nast-kschl = 'NEU'.
    nast-objky = docno.
    nast-ldest = 'LP01'.
    nast-anzal = 1.
    nast-dimme = 'X'.
    nast-delet = 'X'.
    nast-nacha = '1'.
    nast-vsztp = '2'.
    nast-spras = 'E'.
    nast-vstat = '0'.
    nast-manue = 'X'.
    nast-erdat = sy-datum.
    nast-eruhr = sy-uzeit.
    nast-usnam = sy-uname.
    nast-tdreceiver = sy-uname.
    concatenate sy-uzeit+2(4) 'PDF' into nast-dsnam.
    ENDFORM. " mssage_status_field_value
    *& Form find_spool_request_id
    text
    --> p1 text
    <-- p2 text
    FORM find_spool_request_id.
    CALL FUNCTION 'RSPO_FIND_SPOOL_REQUESTS'
    EXPORTING
    allclients = '800'
    authority = ' '
    datatype = '*'
    has_output_requests = '*'
    rq0name = nast-dsnam "'*'
    rq1name = '*'
    rq2name = '*'
    rqdest = 'LP01'
    rqident = 0
    rqowner = sy-uname
    TABLES
    spoolrequests = spoolreq
    EXCEPTIONS
    no_permission = 1
    OTHERS = 2.
    ENDFORM. " find_spool_request_id
    *& Form convert_spool_to_pdf
    text
    --> p1 text
    <-- p2 text
    FORM convert_spool_to_pdf.
    SELECT SINGLE * FROM tsp01 WHERE rqident = spoolno.
    IF sy-subrc <> 0.
    WRITE: / 'Spool order does not exist'
    COLOR COL_NEGATIVE.
    EXIT.
    ENDIF.
    client = tsp01-rqclient.
    name = tsp01-rqo1name.
    CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
    EXPORTING
    authority = 'SP01'
    client = client
    name = name
    part = 1
    IMPORTING
    type = type
    objtype = objtype
    EXCEPTIONS
    fb_error = 1
    fb_rsts_other = 2
    no_object = 3
    no_permission = 4.
    IF objtype(3) = 'OTF'.
    is_otf = 'X'.
    ELSE.
    is_otf = space.
    ENDIF.
    IF is_otf = 'X'.
    CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
    EXPORTING
    src_spoolid = spoolno
    no_dialog = ' '
    IMPORTING
    pdf_bytecount = numbytes
    pdf_spoolid = pdfspoolid
    btc_jobname = jobname
    btc_jobcount = jobcount
    TABLES
    pdf = pdf
    EXCEPTIONS
    err_no_otf_spooljob = 1
    err_no_spooljob = 2
    err_no_permission = 3
    err_conv_not_possible = 4
    err_bad_dstdevice = 5
    user_cancelled = 6
    err_spoolerror = 7
    err_temseerror = 8
    err_btcjob_open_failed = 9
    err_btcjob_submit_failed = 10
    err_btcjob_close_failed = 11.
    if sy-subrc <> 0.
    case sy-subrc.
    when 1.
    write: / text-001 color col_positive.
    when 2.
    write: / text-002 color col_negative.
    exit.
    when 3.
    write: / text-003 color col_negative.
    exit.
    when 4.
    write: / text-004 color col_negative.
    exit.
    when others.
    write: / text-005 color col_negative.
    exit.
    endcase.
    endif.
    ELSE.
    CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
    EXPORTING
    src_spoolid = spoolno
    no_dialog = ' '
    DST_DEVICE =
    PDF_DESTINATION =
    IMPORTING
    pdf_bytecount = numbytes
    pdf_spoolid = pdfspoolid
    LIST_PAGECOUNT =
    btc_jobname = jobname
    btc_jobcount = jobcount
    TABLES
    pdf = pdf
    EXCEPTIONS
    err_no_abap_spooljob = 1
    err_no_spooljob = 2
    err_no_permission = 3
    err_conv_not_possible = 4
    err_bad_destdevice = 5
    user_cancelled = 6
    err_spoolerror = 7
    err_temseerror = 8
    err_btcjob_open_failed = 9
    err_btcjob_submit_failed = 10
    err_btcjob_close_failed = 11.
    case sy-subrc.
    when 0.
    *write: / 'Funktion CONVERT_ABAPSPOOLJOB_2_PDF erfolgreich
    *(successful)'.
    color col_positive.
    when 1.
    write: / text-001 color col_positive.
    when 2.
    write: / text-002 color col_negative.
    exit.
    when 3.
    write: / text-003 color col_negative.
    exit.
    when 4.
    write: / text-004 color col_negative.
    exit.
    when others.
    write: / text-005 color col_negative.
    exit.
    endcase.
    ENDIF.
    ENDFORM. " convert_spool_to_pdf
    *& Form delete_spool_job
    text
    --> p1 text
    <-- p2 text
    FORM delete_spool_job .
    CALL FUNCTION 'RSPO_IDELETE_SPOOLREQ'
    EXPORTING
    spoolreq = spoolreq1
    IMPORTING
    RC =
    STATUS =
    EXCEPTIONS
    error = 1
    OTHERS = 2
    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. " delete_spool_job
    *& Form ASSIGN_DATA_4_MAIL
    text
    --> p1 text
    <-- p2 text
    FORM assign_data_4_mail .
    Text content of the mail
    move 'Purchase order: ' to objtxt.
    append objtxt.
    move verkf to objtxt.
    append objtxt.
    move lfa1-name1 to objtxt.
    append objtxt.
    concatenate lfa1-ort01 lfa1-pstlz
    into objtxt separated by space.
    append objtxt.
    clear: objtxt.
    append objtxt.
    append objtxt.
    CLEAR objtxt.
    CONCATENATE 'Purchase Order - ' docno
    ' has been released.'
    INTO objtxt SEPARATED BY space.
    APPEND objtxt.
    clear: objtxt.
    append objtxt.
    append objtxt.
    MOVE ' ' TO objtxt.
    APPEND objtxt.
    clear: objtxt.
    append objtxt.
    append objtxt.
    concatenate 'Note:- This is an automatic mail sender.'
    ' Please do not reply to this mail ID.'
    into objtxt.
    append objtxt.
    concatenate
    ' Any query, please send the mail to the respective buyer'''
    's mail id.' into objtxt.
    append objtxt.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
    EXPORTING
    input = docno
    IMPORTING
    output = docno.
    TLINE format will be coverted as 255 char foramt
    CALL FUNCTION 'QCE1_CONVERT'
    TABLES
    t_source_tab = pdf
    t_target_tab = objbin
    EXCEPTIONS
    convert_not_possible = 1
    OTHERS = 2.
    DESCRIBE TABLE objtxt LINES tab_lines.
    creation of the entry for the compressed document
    CLEAR objpack.
    objpack-transf_bin = ''.
    objpack-head_start = 1.
    objpack-head_num = 0.
    objpack-body_start = 1.
    objpack-body_num = tab_lines.
    objpack-doc_type = 'RAW'.
    objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
    APPEND objpack.
    creation of the entry for the Attachemnt
    DESCRIBE TABLE objbin LINES tab_lines.
    objpack-transf_bin = 'X'.
    objpack-head_start = 1.
    objpack-head_num = 1.
    objpack-body_start = 1.
    objpack-body_num = tab_lines.
    objpack-doc_type = 'PDF'.
    CONCATENATE docno '.PDF' INTO objpack-obj_name.
    objpack-obj_descr = objpack-obj_name.
    objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
    APPEND objpack.
    For Object Header
    CONCATENATE docno '.PDF' INTO objhead.
    APPEND objhead.
    doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
    CONCATENATE 'Purchase Order - ' docno ' has been released'
    INTO doc_chng-obj_descr.
    doc_chng-obj_prio = 1.
    recipient Details
    CLEAR reclist1.
    CLEAR reclist.
    REFRESH reclist1.
    REFRESH reclist.
    SELECT SINGLE * FROM t024
    WHERE t024~mandt = sy-mandt
    AND ekgrp = t_ekgrp.
    reclist1-receiver = t024-smtp_addr.
    reclist1-rec_type = 'U'.
    reclist1-com_type = 'INT'.
    reclist1-receiver = '[email protected]'.
    modify table reclist transporting rec_type receiver COM_TYPE .
    where rec_type is initial.
    APPEND reclist1 TO reclist.
    ENDFORM. " ASSIGN_DATA_4_MAIL
    *& Form send_mail_with_attachment
    text
    --> p1 text
    <-- p2 text
    FORM send_mail_with_attachment.
    sending the document
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
    document_data = doc_chng
    put_in_outbox = 'X'
    commit_work = 'X'
    TABLES
    packing_list = objpack
    object_header = objhead
    contents_bin = objbin
    contents_txt = objtxt
    receivers = reclist
    EXCEPTIONS
    too_many_receivers = 1
    document_not_sent = 2
    operation_no_authorization = 4
    OTHERS = 99.
    CASE sy-subrc.
    WHEN 0.
    PERFORM flush_mail.
    message 'Mail sent successfully' type 'I'.
    when 1.
    message 'No authorization for sending to the specified number'
    *type 'E'.
    when 2.
    message 'Document could not be sent to any recipient' type 'E'.
    when 4.
    message 'No send authorization' type 'E'.
    when others.
    message 'Error occurred while sending' type 'E'.
    ENDCASE.
    ENDFORM. " send_mail_with_attachment
    Start new screen *
    FORM bdc_dynpro USING program dynpro.
    CLEAR bdcdata.
    bdcdata-program = program.
    bdcdata-dynpro = dynpro.
    bdcdata-dynbegin = 'X'.
    APPEND bdcdata.
    ENDFORM. "bdc_dynpro
    Insert field *
    FORM bdc_field USING fnam fval.
    CLEAR bdcdata.
    bdcdata-fnam = fnam.
    bdcdata-fval = fval.
    APPEND bdcdata.
    ENDFORM. "bdc_field
    *& Form AUTOMATE
    text
    --> p1 text
    <-- p2 text
    FORM flush_mail .
    PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=PDIA'.
    PERFORM bdc_dynpro USING 'SAPLSPO4' '0300'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=FURT'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'SVALD-VALUE(01)'.
    PERFORM bdc_field USING 'SVALD-VALUE(01)'
    'int'.
    PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=BACK'.
    PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=BACK'.
    CALL TRANSACTION 'SCOT' USING bdcdata
    MODE 'N'
    UPDATE 'S'.
    ENDFORM. " AUTOMATE
    regards,
    Latheesh

  • Error in calling/converting smart form from ECC to pdf in portal.

    Hi,
    We have a requirement in our project where we have to show IT form in portal exactly in the way payslip are shown in ESS
    Screen, that is in the pdf form in ess portal screen.
    For this my HR abap consultant has made one customize smart form which is being called from a RFC FM.
    After the FM lf_fm_name gets executed , the OTF data is being captured and then converted in to PDF.
    After that the PDF is then converted into XSTRING format which is then supplied to the portal side through export parameter
    of the RFC.
    Now when we debugged the RFC, the conversion is taking place perfectly fine in to XSTRING.This is wat we assume.
    Portal Side: I have used Iframe ui ELEMENT in my webdynpro java and its property source I have binded with a value attribute
    of type string and I am executing above customize RFC given to me by my HR abap consultant and after executing that RFC with
    userID and payroll year as its import parameter I am taking export parameter of that RFC with name pdf_string of type XSTRING
    of that RFC into my webdynpro java value attribute which i binded to source property of Iframe.
    Now when we see the output in portal , first of all pdf is not getting generated and its showing the error message:
    file does not begin with '%pdf-' and secondly errored Adobe form getting opened outside Iframe window its not coming within
    Iframe window like what payslip comes inside Iframe UI element.
    I want to know what mistake we are doing in our ABAP coding or portal coding.
    Please help.

    Hi Satyam,
    You can use the existing SAP GRT framework for developing the app.
    Its easy and provides more features.
    See this wiki:
    http://wiki.sdn.sap.com/wiki/display/WDJava/HowtodevelopcustomWebDynproESSapplicationsusingGenericReportingTool%28GRT%29
    Regards
    Yugandhar Reddy

  • Smart form print preview in PDF format

    Hi ABAP Experts,
    I have 2 requirements
    1) I want to print preview of a smartform in pdf format
    2) I also want to attach a local pdf file to the smartform which is displaying in the pdf print preview format
    or to rephrase:
    I want a pdf attached to a smartform which i want to open in the pdf print preview format.
    Regards,
    Niloufer

    Use following function modules:
    Please see the below code to download a PDF file on to your computer.
    PERFORM F_CONVERT_OTF.
    FORM F_CONVERT_OTF .
    PERFORM F_CALL_SMARTFORM. " Call the smartform to get data in I_OTF_FINAL
    **appending the otf data into the final table & save the pdf file.
      CALL FUNCTION 'CONVERT_OTF'
        EXPORTING
          FORMAT                = C_PDF_U      "Value is 'PDF'
        IMPORTING
          BIN_FILESIZE          = L_BIN_FILESIZE         "L_BIN_FILESIZE TYPE I,
        TABLES
          OTF                   = I_OTF_FINAL
          LINES                 = I_PDF_TAB    "It is of type TLINE
        EXCEPTIONS
          ERR_MAX_LINEWIDTH     = 1
          ERR_FORMAT            = 2
          ERR_CONV_NOT_POSSIBLE = 3
          ERR_BAD_OTF           = 4
          OTHERS                = 5.
    * Check if the file is already existing.
      CALL FUNCTION 'TMP_GUI_GET_FILE_EXIST'
        EXPORTING
          FNAME                = L_FILE1   " Path where file is saved
       IMPORTING
         EXIST                = L_RESULT
    *   ISDIR                =
    *   FILESIZE             =
       EXCEPTIONS
         FILEINFO_ERROR       = 1
         OTHERS               = 2
    PERFORM F_GUI_DOWNLOAD USING L_FILE.
    ENDFORM.
    FORM F_GUI_DOWNLOAD  USING P_FILE TYPE STRING.
    CONSTANTS: C_BIN(10)       TYPE C VALUE 'BIN'.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                = P_FILE     "same as L_FILE
          FILETYPE                = C_BIN
          CONFIRM_OVERWRITE       = C_X   "value 'X'
        TABLES
          DATA_TAB                = I_PDF_TAB
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          OTHERS                  = 22.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    <removed by moderator>
    Edited by: vishalmurgai58 on Mar 6, 2012 1:43 PM
    Edited by: Thomas Zloch on Mar 6, 2012 - please do not ask for ...

  • ONLINE FORM - CANNOT DOWNLOAD TO PDF

    Hello - I created a form today in the online form creation site, I wanted to download it to a stand alone pdf but it requires that I have a subscription however, since they are cancelling the service in July, they are not selling subscriptions to the service so my form is essentially stuck in there - I've tried converting it via the option within internet explorer and it comes out black.  Does anyone have any sort of way to help me get this form out in pdf form?

    I have the same issue.  I created a form in Forms Central via Acrobat X Pro but unable to export it to .pdf without upgrading.  The Forms Central site will not allow for upgrades any longer.  I exported the design file but that won't open in Acrobat X Pro.  Can someone help me get this form into .pdf without losing what took me so long to create?

  • Smart forms convert to pdf binary data

    Dear All,
    I'm working on smart forms integrations with .net and  I need to send the smart forms PDF binary data though custom rfc .
    For that i'm  converting smart forms otf  data  to pdf in and pass this data  through rfc but this idata is is not wokring on .net guys when they are converting this on pdf..
    so is there any need of decoded smart forms otf data before passing through or i'm missing some basic step?
    Please guide me?
    Rg
    Anuj

    hi,
    Have a look on this wiki:
    [http://wiki.sdn.sap.com/wiki/display/Snippets/SmartformoutputtoPDFformat]
    And maybe this one could also interest you:
    [|http://wiki.sdn.sap.com/wiki/display/Snippets/SmartformtoMailasPDF+attachment]
    regards
    mickael

  • Smart form downloaded into .xml file ??.

    Hi all,
    When a smart form is downloaded, it gets downloaded as a .xml file.
    My question is, how does it get converted to .xml file.
    <i>Is there any</i> <u>function module</u> that is called and <i>if so</i> <u>what</u> is the function module.

    Hi,
    You can download into XML format. However, it's not sure about uploading. Refer to the program <b>'SF_XSF_DEMO'</b>.
    In 4.7 Enterprise, other have seen this utlity which is completey missing in 4.6c. There is functionality to downlaod a complete form or only a particular node. (Utilities -> Download form). It will create a XML file and save it in the hard disk.
    Feel free to revert back.
    --Ragu

  • Smart Form Download

    Hi all,
    When a smart form is downloaded it gets downloaded as .xml file.
    The question is, how does the smart form get converted to xml file. Is there any function module that is called when we download it and if so what is the function module.

    Hi
    These are the two standard function modules when we download the smart form.
    FUNCTION SDIXML_DATA_TO_DOM.
    and
    FUNCTION SDIXML_DOM_TO_XML'.  
    Hope this will definitely help you.
    Please reward suitable points.
    Regards
    - Atul

  • Smart Form Download in PDF

    Hello All ,
                   I have created one smart form and provided option to download the same in PDF. My Problem is that is  downloaded in PDF but at the same time my end user want to see the print preview and take the print from there itself also.
    I am using the following code can some one suggest me the what need to do the change after both option will work at  the same time.
    Please Note I have also made the use of property
    SSFCOMPOP-TDNOPREV
    But after this also issue not resolve. Some one Please suggest me the how to resolve the issue.
    DATA :
          WA_FMNM        TYPE  TDSFNAME,      " Smart Forms: Form Name
          WA_CNTL        TYPE  SSFCTRLOP,     " FOR PDF PRINT
          WA_POP         TYPE  SSFCOMPOP,     " printer name
          T_OTF_FROM_FM  TYPE  SSFCRESCL,
          T_PDF_TAB      LIKE  TLINE OCCURS 0 WITH HEADER LINE,
          T_OTF          TYPE  SSFCRESCL-OTFDATA,
          W_BIN_FILESIZE TYPE  I, " BINARY FILE SIZE
          W_FILE_NAME    TYPE  STRING,
          WA_FNMD        TYPE  RS38L_FNAM.    " Name of Function Module
    DATA:
          W_FORM_NAME    TYPE TDSFNAME,
          W_FMODULE      TYPE RS38L_FNAM,
          W_CPARAM       TYPE SSFCTRLOP,
          W_OUTOPTIONS   TYPE SSFCOMPOP,
          W_FILE_PATH    TYPE STRING,
          W_FULL_PATH    TYPE STRING.
    SMART FORM FUNCTION MODULE
    WA_FMNM  =  TEXT-113.
    W_FORM_NAME  =  TEXT-113.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          FORMNAME                 = WA_FMNM
       IMPORTING
          FM_NAME                  = WA_FNMD
       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.
    END FORM
    WA_CNTL-GETOTF     =  'X'.
    WA_CNTL-NO_DIALOG  =  'X'.
    WA_CNTL-PREVIEW    =  SPACE .
    WA_POP-TDDEST      = 'LP01'.
    CALL FUNCTION WA_FNMD
    EXPORTING
        CONTROL_PARAMETERS         =  WA_CNTL
       OUTPUT_OPTIONS             = WA_POP
        V_APPLN_OB                 = V_APPLN_OB
        V_KUNNR_OB                 = V_KUNNR_OB
        V_EBELN                    = V_EBELN
        V_CAT_NAME                 = V_CAT_NAME
        V_VAR_NAME                 = V_VAR_NAME
    IMPORTING
      JOB_OUTPUT_INFO              = T_OTF_FROM_FM
      TABLES
        T_ZCNC18                   =  T_ZCNC18
    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.
    T_OTF[] = T_OTF_FROM_FM-OTFDATA[].
    CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
       FORMAT                      = 'PDF'
       MAX_LINEWIDTH               = 132
    IMPORTING
       BIN_FILESIZE                 = W_BIN_FILESIZE
      TABLES
        OTF                         = T_OTF
        LINES                       = T_PDF_TAB
    EXCEPTIONS
       ERR_MAX_LINEWIDTH           = 1
       ERR_FORMAT                  = 2
       ERR_CONV_NOT_POSSIBLE       = 3
       ERR_BAD_OTF                 = 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.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
        PROMPT_ON_OVERWRITE = 'X'
    CHANGING
        FILENAME    = W_FILE_NAME
        PATH        = W_FILE_PATH
        FULLPATH    = W_FULL_PATH
    EXCEPTIONS
        CNTL_ERROR           = 1
        ERROR_NO_GUI         = 2
        NOT_SUPPORTED_BY_GUI = 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.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      BIN_FILESIZE  = W_BIN_FILESIZE
      FILENAME      = W_FULL_PATH
      FILETYPE      = 'BIN'
      APPEND        = ' '
      WRITE_FIELD_SEPARATOR = ''
      HEADER                = '00'
      TRUNC_TRAILING_BLANKS = ''
      WRITE_LF              = 'X'
      COL_SELECT            = ''
      COL_SELECT_MASK       = ''
      DAT_MODE              = ''
      CONFIRM_OVERWRITE     = ''
      NO_AUTH_CHECK         = ''
      CODEPAGE              = ''
      IGNORE_CERR           = ABAP_TRUE
      REPLACEMENT           = '#'
      WRITE_BOM             = ''
      TRUNC_TRAILING_BLANKS_EOL = 'X'
    TABLES
      DATA_TAB              = T_PDF_TAB
    EXCEPTIONS
      FILE_WRITE_ERROR        = 1
      NO_BATCH                = 2
      GUI_REFUSE_FILETRANSFER = 3
      INVALID_TYPE            = 4
      NO_AUTHORITY            = 5
      UNKNOWN_ERROR           = 6
      HEADER_NOT_ALLOWED      = 7
      SEPARATOR_NOT_ALLOWED   = 8
      FILESIZE_NOT_ALLOWED    = 9
      HEADER_TOO_LONG         = 10
      DP_ERROR_CREATE         = 11
      DP_ERROR_SEND           = 12
      DP_ERROR_WRITE          = 13
      UNKNOWN_DP_ERROR        = 14
      ACCESS_DENIED = 15
      DP_OUT_OF_MEMORY = 16
      DISK_FULL = 17
      DP_TIMEOUT = 18
      FILE_NOT_FOUND = 19
      DATAPROVIDER_EXCEPTION = 20
      CONTROL_FLUSH_ERROR = 21
      OTHERS = 22   .
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Regards
    Swati Namdev

    Hi Swati,
    Pls refer the below code:
    TABLES: ekko.
    DATA: int_itab TYPE TABLE OF ekko WITH HEADER LINE.
    DATA: wf_name TYPE rs38l_fnam.
    DATA: wf_so1.
    *For PDf Conversions
    DATA: int_tab_otf_data TYPE ssfcrescl,
          int_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE,
          int_tab_otf_final TYPE itcoo OCCURS 0 WITH HEADER LINE,
          file_size TYPE i,
          bin_filesize TYPE i,
          file_name TYPE string,
          file_path TYPE string,
          full_path TYPE string,
          cparam TYPE ssfctrlop,
          outop TYPE ssfcompop.
    **Preview not allowed.
    outop-tddest = 'LP01'.
    cparam-no_dialog = 'X'.
    cparam-preview = ' '.
    cparam-getotf = 'X'.
    GET PARAMETER ID 'EBLEN' FIELD wf_so1.
    SELECT mandt ebeln bukrs bsart ernam ekorg bedat FROM ekko INTO TABLE
    int_itab WHERE ebeln = wf_so1.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        formname           = 'Z_SMARTFORM_FINAL2'
      IMPORTING
        fm_name            = wf_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.
    CALL FUNCTION wf_name
      EXPORTING
        control_parameters = cparam
        output_options     = outop
        user_settings      = space
      IMPORTING
        job_output_info    = int_tab_otf_data
      TABLES
        int_itab           = int_itab.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    int_tab_otf_final[] = int_tab_otf_data-otfdata[].
    CALL FUNCTION 'CONVERT_OTF'
      EXPORTING
        format        = 'PDF'
        max_linewidth = 132
      IMPORTING
        bin_filesize  = bin_filesize
      TABLES
        otf           = int_tab_otf_final
        lines         = int_pdf_tab.
    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 METHOD cl_gui_frontend_services=>file_save_dialog
      CHANGING
        filename = file_name
        path     = file_path
        fullpath = full_path.
    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 'GUI_DOWNLOAD'
      EXPORTING
        bin_filesize = bin_filesize
        filename     = full_path
        filetype     = 'BIN'
      IMPORTING
        filelength   = file_size
      TABLES
        data_tab     = int_pdf_tab.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Regards,
    Ramneet Ahuja

  • Smartforms: How 2 fire print & download 2 PDF simultaniously 4  my forms

    Dear Murugesh, Cristian
      The following is my piece of code which directly downloads my forms into PDF but not creating any spool 4 firing print ,
    1) I need the both to happen simultaniously .
    2) I need to include the o/p(either SAPScript/report o/p) as the Smartform pages with o/p of my Driver prog ,by calling another TCODE from my driver prog .
    Please throw some light on this .
    have a look into my code
    *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_NAME1  TYPE RS38L_FNAM,
          FM_NAME2  TYPE RS38L_FNAM,
          FM_NAME3  TYPE RS38L_FNAM,
          FM_NAME4  TYPE RS38L_FNAM,
          P_E_DEVTYPE TYPE RSPOPTYPE,
          P_JOB_OUTPUT_INFO TYPE SSFCRESCL OCCURS 2000 WITH HEADER LINE,
          T_OTF LIKE ITCOO OCCURS 0 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,
          OK_CODE LIKE SY-UCOMM.
    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.
    *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-GDESC = 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'.
    *Item Remarks
        TIDNO = 'ZREM'.
        CONCATENATE SSORD
                    VBAP-POSNR
        INTO        TNAME.
        TOBJT = 'VBBP'.
        PERFORM FINDTEXT.
        LOOP AT MSLINES.
          WA_ITEM-REMARK = mslines-tdline(40).
          EXIT.
        ENDLOOP.
    *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.
    *Gross Wieght
      TIDNO = 'Z078'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-GWT = mslines-tdline(15).
        EXIT.
      ENDLOOP.
    *Net Wieght
      TIDNO = 'Z079'.
      TNAME = SSORD.
      TOBJT = 'VBBK'.
      PERFORM FINDTEXT.
      LOOP AT MSLINES.
        T_ADRS-NWT = mslines-tdline(15).
        EXIT.
      ENDLOOP.
      T_ADRS-TOT_WORDS = WORD-WORD.
      APPEND T_ADRS.
    START-OF-SELECTION.
      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 = 'LOHP'.
      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 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          FORMNAME                 = 'ZSD_REP_MULTI_PRINT1'
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
       IMPORTING
          FM_NAME                  = FM_NAME1
       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.
      CALL FUNCTION FM_NAME1
       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.
      LOOP AT P_JOB_OUTPUT_INFO-OTFDATA INTO T_OTF.
        APPEND T_OTF.
      ENDLOOP.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          FORMNAME                 = 'ZSD_REP_MULTI_PRINT2'
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
       IMPORTING
          FM_NAME                  = FM_NAME2
       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.
      CALL FUNCTION FM_NAME2
       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.
      LOOP AT P_JOB_OUTPUT_INFO-OTFDATA INTO T_OTF.
        APPEND T_OTF.
      ENDLOOP.
    <b>SET PARAMETER  ID: 'AUN' FIELD SSORD ,"VBAK-VBELN VALUE ,
                       'APO' FIELD ITNO."VBAP-POSNR.
    CALL TRANSACTION 'ZPL3' AND SKIP FIRST SCREEN.
    IF SY-SUBRC NE 0.
       MESSAGE E001(ZQOTBANK).
    ENDIF.
    *SET PARAMETER  ID: 'AUN' FIELD VBAK-VBELN,
                     'APO' FIELD VBAP-POSNR.
    *CALL TRANSACTION 'ZA3C' AND SKIP FIRST SCREEN.
    *IF SY-SUBRC NE 0.
    MESSAGE E001(ZQOTBANK).
    *ENDIF.
    IMPORT (T_OTF2) FROM  MEMORY ID 'MEMID'.
    LOOP AT T_OTF2 INTO T_OTF2.
        APPEND T_OTF2 TO T_OTF.
    ENDLOOP.
    </b>
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          FORMNAME                 = 'ZSD_REP_MULTI_PRINT4'
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
       IMPORTING
          FM_NAME                  = FM_NAME4
       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.
      CALL FUNCTION FM_NAME4
       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.
      LOOP AT P_JOB_OUTPUT_INFO-OTFDATA INTO T_OTF.
        APPEND T_OTF.
      ENDLOOP.
    CALL FUNCTION 'CONVERT_OTF_2_PDF'
      EXPORTING
        USE_OTF_MC_CMD               = 'X'
      ARCHIVE_INDEX                =
    IMPORTING
        BIN_FILESIZE                 = P_BIN_FILESIZE
    TABLES
        OTF                          = T_OTF
        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 'GUI_DOWNLOAD'
      EXPORTING
        BIN_FILESIZE                    = P_BIN_FILESIZE
        FILENAME                        = 'C:\SD4.pdf'
        FILETYPE                        = 'BIN'
      APPEND                          = ' '
      WRITE_FIELD_SEPARATOR           = ' '
      HEADER                          = '00'
      TRUNC_TRAILING_BLANKS           = ' '
      WRITE_LF                        = 'X'
      COL_SELECT                      = ' '
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = ' '
      CONFIRM_OVERWRITE               = ' '
      NO_AUTH_CHECK                   = ' '
      CODEPAGE                        = ' '
      IGNORE_CERR                     = ABAP_TRUE
      REPLACEMENT                     = '#'
      WRITE_BOM                       = ' '
      TRUNC_TRAILING_BLANKS_EOL       = 'X'
    IMPORTING
       FILELENGTH                      = P_BIN_FILESIZE
      TABLES
        DATA_TAB                        = P_LINES
      FIELDNAMES                      =
    EXCEPTIONS
      FILE_WRITE_ERROR                = 1
      NO_BATCH                        = 2
      GUI_REFUSE_FILETRANSFER         = 3
      INVALID_TYPE                    = 4
      NO_AUTHORITY                    = 5
      UNKNOWN_ERROR                   = 6
      HEADER_NOT_ALLOWED              = 7
      SEPARATOR_NOT_ALLOWED           = 8
      FILESIZE_NOT_ALLOWED            = 9
      HEADER_TOO_LONG                 = 10
      DP_ERROR_CREATE                 = 11
      DP_ERROR_SEND                   = 12
      DP_ERROR_WRITE                  = 13
      UNKNOWN_DP_ERROR                = 14
      ACCESS_DENIED                   = 15
      DP_OUT_OF_MEMORY                = 16
      DISK_FULL                       = 17
      DP_TIMEOUT                      = 18
      FILE_NOT_FOUND                  = 19
      DATAPROVIDER_EXCEPTION          = 20
      CONTROL_FLUSH_ERROR             = 21
      OTHERS                          = 22
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    *&      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 
    Thnx
    moni
    Message was edited by: md monirujjaman
    Message was edited by: md monirujjaman

    Hello,
    I had thought that your 4th output of the Transaction is an output of a list and NOT from a SCRIPT.
    Now, if it is a SAP SCRIPT ourput, it is quite simple as you have to get the OTFDATA from the SCRIPT. But you may have to make the correction in your SAPSCRIPT driver program.
    Sample:
    CALL FUNCTION 'CLOSE_FORM'
         TABLES
              otfdata                  = te_otf_table
         EXCEPTIONS
              unopened                 = 1
              bad_pageformat_for_print = 2
              OTHERS                   = 3.
    Next you may EXPORT this OTF Data Internal Table to ABAP Memory.
    In your program where you are calling all the 3 forms + the transaction which outputs the SAPScript output, the exported data may be imported and appended into the MAIN Interal Table and single PDF could be generated.
    Secondly, The PRINT prieview of the SSFs could be generated by passing Export options of the SSF FM
    SAmple:
    ssfctrlop-no_dialog = ' '.
    CALL FUNCTION l_form
        EXPORTING
             control_parameters = ssfctrlop
             output_options     = ssfcompop
    I hope this helps you.
    Regards, Murugesh AS

  • Creation of Smart Forms for PDF

    Hi All,
    I am new to SFP. So, please tell me how to create Smart Forms for PDF.
    I already have an SAP standard form of Customer Invoice in this format (SFP) and I need to change the layout and add some additional fields in it as well.
    Please guide me through the process. Earliest reponse will be highly appreciated.
    Regards,
    Shabbar

    Hi,
    I take that you meant PDF Forms in SAP.
    Refer the following help links.
    http://help.sap.com/saphelp_nw04s/helpdata/en/dc/f1783fe3263042e10000000a114084/content.htm
    This PDF link (Has got many Pdf files)
    https://www.sdn.sap.com/irj/sdn/interactiveforms?rid=/webcontent/uuid/d1088b7e-0c01-0010-c78e-984c0537e3ec [original link is broken]
    Also check this Tech-ed 06 session at Amsterdam.
    http://www.sapteched.com/emea/edu_sessions/session.htm?sid=317
    Check this download from SDN.
    https://www.sdn.sap.com/irj/sdn/downloaditem?rid=/library/uuid/2dd3dbcd-0401-0010-55b8-b10808ff688e
    Is this you are looking for?
    Feel free to revert back.
    --Ragu

  • Display smart form in PDF

    Hi all,
    I have created a smart form , and I can down load it to the local drive in PDF format.
    But  I want to display my smart form in PDF first , then if the user want to save , he should be able to do so. How can i do thtat.
    Many thanks ,
    Sandeep.

    hi friend,
    pls go through the code
    rewards are expecting .
    vivek
    *& Report  Y_SD_PRE_SHIPMENT
    REPORT  y_sd_pre_shipment.
    **************DATA DECLARATION****************************************
    DATA : BEGIN OF i_vbrk OCCURS 0,
           vbeln TYPE vbrp-vbeln,
           END OF i_vbrk.
    DATA:  prog TYPE sy-repid,
           dynnr TYPE sy-dynnr,
           FNAM  TYPE RS38L_FNAM,
           v_vbeln type ZSDTANNXINV-vbeln,
           idx type i,
           cnt type i.
    DATA: I_FINAL TYPE TABLE OF YPSHIP,
          W_FINAL TYPE YPSHIP.
    DATA: I_HEAD TYPE TABLE OF YPSHIP1,
          W_HEAD TYPE YPSHIP1.
    DATA: it_otf   TYPE STANDARD  TABLE OF itcoo,
          it_docs  TYPE STANDARD  TABLE OF docs,
          it_lines TYPE STANDARD  TABLE OF tline,
          st_job_output_info      TYPE ssfcrescl,
          st_document_output_info TYPE ssfcrespd,
          st_job_output_options   TYPE ssfcresop,
          st_output_options       TYPE ssfcompop,
          st_control_parameters   TYPE ssfctrlop,
          v_len_in                TYPE so_obj_len,
          v_language              TYPE sflangu VALUE 'E',
          v_e_devtype             TYPE rspoptype,
          v_bin_filesize          TYPE i,
          v_name                  TYPE string,
          v_path                  TYPE string,
          v_fullpath              TYPE string,
          v_filter                TYPE string,
          v_uact                  TYPE i,
          v_guiobj                TYPE REF TO cl_gui_frontend_services,
          v_filename              TYPE string.
    ******USER INTERACTION OPTION FOR THE INVOICE NO
    SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE r.
    PARAMETERS:  invoice LIKE ZSDTANNXINV-vbeln obligatory .
    SELECTION-SCREEN : END OF BLOCK b1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR invoice.
      REFRESH i_vbrk.
      SELECT vbeln FROM vbrk INTO TABLE i_vbrk.
      IF sy-subrc IS INITIAL.
        prog = sy-repid.
        dynnr = sy-dynnr.
        CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
           EXPORTING
    DDIC_STRUCTURE         = ' '
           retfield               = 'VBELN'
           dynpprog               = prog
           dynpnr                 = dynnr
           dynprofield            = 'INVOICE'
           value_org              = 'S'
           TABLES
           value_tab              = i_vbrk.
      FIELD_TAB              =
      RETURN_TAB             =
      DYNPFLD_MAPPING        =
       exceptions
      parameter_error        = 1
      no_values_found        = 2
       others                 = 3
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    at selection-screen on invoice.
    if invoice is not initial.
    clear v_vbeln.
    select single vbeln from ZSDTANNXINV into v_vbeln where vbeln = invoice.
    if sy-subrc is not initial.
    message 'Enter Valid Document No' type 'E'.
    endif.
    endif.
    START-OF-SELECTION.
    perform get_data.
    perform process_data.
    *&      Form  get_data
          text
    -->  p1        text
    <--  p2        text
    form get_data .
    IF INVOICE IS NOT INITIAL.
    SELECT  VBELN
            VTEXT
            NETWT
            GROSSWT
            vsslname
            kindofpack
            INCO1
            INCO2
            REMDATE
            DESTINATION
            SHPNGLIN1
            CNTRNO
            TRAILERNO1
            ETDDATE
            ETADATE
            baanr
            FROM ZSDTANNXINV
            INTO  TABLE I_HEAD
            WHERE VBELN = INVOICE.
    ENDIF.
    IF I_HEAD[] IS NOT INITIAL.
    select  vbeln
            POSNR
            MATNR
            MAKTX
            meins
            RATE
            VALUE
            WAERK
            PRPOSNR
            from zsafii
            into corresponding fields of table i_final
            for all entries in i_head
            where vbeln = i_head-vbeln.
    ENDIF.
    describe table i_final lines cnt.
    idx = 1.
    loop at i_final into w_final.
    if idx le cnt.
    read table i_head into w_head with key vbeln = w_final-vbeln.
    if sy-subrc is initial.
    move-corresponding w_head to w_final.
    modify i_final from w_final index idx.
    idx = idx + 1.
    endif.
    endif.
    endloop.
    endform.                    " get_data
    *&      Form  process_data
          text
    -->  p1        text
    <--  p2        text
    form process_data .
    CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
      EXPORTING
        i_language    = v_language
        i_application = 'SAPDEFAULT'
      IMPORTING
        e_devtype     = v_e_devtype.
    st_output_options-tdprinter = v_e_devtype.
    *st_output_options-tdprinter = 'locl'.
    st_control_parameters-no_dialog = 'X'.
    st_control_parameters-getotf = 'X'.
    sort i_final by vbeln.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        formname                 = 'Y_SSF_PRESHIPMENT'
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
    IMPORTING
        FM_NAME                  = FNAM
    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.
    if fnam is not initial.
    CALL FUNCTION FNAM
    EXPORTING
      ARCHIVE_INDEX              =
      ARCHIVE_INDEX_TAB          =
      ARCHIVE_PARAMETERS         =
       CONTROL_PARAMETERS         = st_control_parameters
      MAIL_APPL_OBJ              =
      MAIL_RECIPIENT             =
      MAIL_SENDER                =
       OUTPUT_OPTIONS             = st_output_options
      USER_SETTINGS              = 'X'
    IMPORTING
       DOCUMENT_OUTPUT_INFO       = st_document_output_info
       JOB_OUTPUT_INFO            = st_job_output_info
       JOB_OUTPUT_OPTIONS         = st_job_output_options
      TABLES
        itab                       = I_FINAL
        i_head                     = I_HEAD
    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.
    .........................CONVERT TO OTF TO PDF.......................
      CALL FUNCTION 'CONVERT_OTF_2_PDF'
        IMPORTING
          bin_filesize           = v_bin_filesize
        TABLES
          otf                    = st_job_output_info-otfdata
          doctab_archive         = it_docs
          lines                  = it_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.
    ........................GET THE FILE NAME TO STORE....................
      CONCATENATE 'smrt' '.pdf' INTO v_name.
      CREATE OBJECT v_guiobj.
      CALL METHOD v_guiobj->file_save_dialog
        EXPORTING
          default_extension = 'pdf'
          default_file_name = v_name
          file_filter       = v_filter
        CHANGING
          filename          = v_name
          path              = v_path
          fullpath          = v_fullpath
          user_action       = v_uact.
      IF v_uact = v_guiobj->action_cancel.
        EXIT.
      ENDIF.
    ..................................DOWNLOAD AS FILE....................
      MOVE v_fullpath TO v_filename.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          bin_filesize            = v_bin_filesize
          filename                = v_filename
          filetype                = 'BIN'
        TABLES
          data_tab                = it_lines
        EXCEPTIONS
          file_write_error        = 1
          no_batch                = 2
          gui_refuse_filetransfer = 3
          invalid_type            = 4
          no_authority            = 5
          unknown_error           = 6
          header_not_allowed      = 7
          separator_not_allowed   = 8
          filesize_not_allowed    = 9
          header_too_long         = 10
          dp_error_create         = 11
          dp_error_send           = 12
          dp_error_write          = 13
          unknown_dp_error        = 14
          access_denied           = 15
          dp_out_of_memory        = 16
          disk_full               = 17
          dp_timeout              = 18
          file_not_found          = 19
          dataprovider_exception  = 20
          control_flush_error     = 21
          OTHERS                  = 22.
      IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDIF.
    ********************************************************************8
    endform.                    " process_data

  • Smart form to pdf

    Hello Abapers ,
    I have to display the smart form generated to be displayed in the PDF format. I have no idea regarding this Process.Can anyone pls let me know the process....
    Thanks
    <REMOVED BY MODERATOR>
    Edited by: Alvaro Tejada Galindo on Apr 11, 2008 1:21 PM

    Summury: Converting the smartfrom to PDF is process of 3 simple steps.
    •     Calling the Smart form, then it returns the OTF data in Return.
    •     Converting the OTF data into required format using the Function Module CONVERT_OTF_2_PDF.
    •     Download the File
    *& Report  ZTEST_NREDDY_PDF
    REPORT  ZTEST_NREDDY_PDF.
    DATA: it_otf   TYPE STANDARD TABLE OF itcoo,
          it_docs  TYPE STANDARD TABLE OF docs,
          it_lines TYPE STANDARD TABLE OF tline,
          st_job_output_info      TYPE ssfcrescl,
          st_document_output_info TYPE ssfcrespd,
          st_job_output_options   TYPE ssfcresop,
          st_output_options       TYPE ssfcompop,
          st_control_parameters   TYPE ssfctrlop,
          v_len_in                TYPE so_obj_len,
          v_language              TYPE sflangu VALUE 'E',
          v_e_devtype             TYPE rspoptype,
          v_bin_filesize          TYPE i,
          v_name                  TYPE string,
          v_path                  TYPE string,
          v_fullpath              TYPE string,
          v_filter                TYPE string,
          v_uact                  TYPE i,
          v_guiobj                TYPE REF TO cl_gui_frontend_services,
          v_filename              TYPE string,
          v_fm_name               TYPE rs38l_fnam.
    CONSTANTS c_formname          TYPE tdsfname VALUE 'ZTEST'.
    CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
      EXPORTING
        i_language    = v_language
        i_application = 'SAPDEFAULT'
      IMPORTING
        e_devtype     = v_e_devtype.
    st_output_options-tdprinter = v_e_devtype.
    *st_output_options-tdprinter = 'locl'.
    st_control_parameters-no_dialog = 'X'.
    st_control_parameters-getotf = 'X'.
    .................GET SMARTFORM FUNCTION MODULE NAME.................
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        formname           = c_formname
      IMPORTING
        fm_name            = v_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.
    ...........................CALL SMARTFORM............................
    CALL FUNCTION v_fm_name
      EXPORTING
        control_parameters   = st_control_parameters
        output_options       = st_output_options
      IMPORTING
        document_output_info = st_document_output_info
        job_output_info      = st_job_output_info
        job_output_options   = st_job_output_options
      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.
    ELSE.
    .........................CONVERT TO OTF TO PDF.......................
      CALL FUNCTION 'CONVERT_OTF_2_PDF'
        IMPORTING
          bin_filesize           = v_bin_filesize
        TABLES
          otf                    = st_job_output_info-otfdata
          doctab_archive         = it_docs
          lines                  = it_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.
    ........................GET THE FILE NAME TO STORE....................
      CONCATENATE 'smrt' '.pdf' INTO v_name.
      CREATE OBJECT v_guiobj.
      CALL METHOD v_guiobj->file_save_dialog
        EXPORTING
          default_extension = 'pdf'
          default_file_name = v_name
          file_filter       = v_filter
        CHANGING
          filename          = v_name
          path              = v_path
          fullpath          = v_fullpath
          user_action       = v_uact.
      IF v_uact = v_guiobj->action_cancel.
        EXIT.
      ENDIF.
    ..................................DOWNLOAD AS FILE....................
      MOVE v_fullpath TO v_filename.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          bin_filesize            = v_bin_filesize
          filename                = v_filename
          filetype                = 'BIN'
        TABLES
          data_tab                = it_lines
        EXCEPTIONS
          file_write_error        = 1
          no_batch                = 2
          gui_refuse_filetransfer = 3
          invalid_type            = 4
          no_authority            = 5
          unknown_error           = 6
          header_not_allowed      = 7
          separator_not_allowed   = 8
          filesize_not_allowed    = 9
          header_too_long         = 10
          dp_error_create         = 11
          dp_error_send           = 12
          dp_error_write          = 13
          unknown_dp_error        = 14
          access_denied           = 15
          dp_out_of_memory        = 16
          disk_full               = 17
          dp_timeout              = 18
          file_not_found          = 19
          dataprovider_exception  = 20
          control_flush_error     = 21
          OTHERS                  = 22.
      IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDIF.
    Regards,
    Raj.

  • How To Get The Smart Form Into The PDF File

    Hello Friends,
    Can Any One Tell How To Get Smart Form in PDF.
    I used this RSTXPDFT4 Program.
    It is asking The Spool Number.
    How to get the Spool Number.

    the steps are
    SmartForms Output to PDF
    There is a way to download smartform in PDF format.
    Please do the following:
    1. Print the smartform to the spool.
    2. Note the spool number.
    3. Download a PDF file (Acrobat Reader) version of the spool by running Program RSTXPDFT4 and entering the
    noted spool number.
    how  to get spool number
    The simplest method is to read the spool table directly, table TSP01
    example code
    REPORT zsuresh_test.
    * Variable declarations
    DATA:
    w_form_name TYPE tdsfname VALUE 'ZSURESH_TEST',
    w_fmodule TYPE rs38l_fnam,
    w_cparam TYPE ssfctrlop,
    w_outoptions TYPE ssfcompop,
    W_bin_filesize TYPE i, " Binary File Size
    w_FILE_NAME type string,
    w_File_path type string,
    w_FULL_PATH type string.
    * Internal tables declaration
    * Internal table to hold the OTF data
    DATA:
    t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
    * Internal table to hold OTF data recd from the SMARTFORM
    t_otf_from_fm TYPE ssfcrescl,
    * Internal table to hold the data from the FM CONVERT_OTF
    T_pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE.
    * This function module call is used to retrieve the name of the Function
    * module generated when the SMARTFORM is activated
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
    formname = w_form_name
    * VARIANT = ' '
    * DIRECT_CALL = ' '
    IMPORTING
    fm_name = w_fmodule
    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.
    * Calling the SMARTFORM using the function module retrieved above
    * GET_OTF parameter in the CONTROL_PARAMETERS is set to get the OTF
    * format of the output
    w_cparam-no_dialog = 'X'.
    w_cparam-preview = space. " Suppressing the dialog box
                                                        " for print preview
    w_cparam-getotf = 'X'.
    * Printer name to be used is provided in the export parameter
    * OUTPUT_OPTIONS
    w_outoptions-tddest = 'LP01'.
    CALL FUNCTION w_fmodule
    EXPORTING
    * ARCHIVE_INDEX =
    * ARCHIVE_INDEX_TAB =
    * ARCHIVE_PARAMETERS =
    control_parameters = w_cparam
    * MAIL_APPL_OBJ =
    * MAIL_RECIPIENT =
    * MAIL_SENDER =
    output_options = w_outoptions
    * USER_SETTINGS = 'X'
    IMPORTING
    * DOCUMENT_OUTPUT_INFO =
    job_output_info = t_otf_from_fm
    * JOB_OUTPUT_OPTIONS =
    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.
    t_otf[] = t_otf_from_fm-otfdata[].
    * Function Module CONVERT_OTF is used to convert the OTF format to PDF
    CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
    FORMAT = 'PDF'
    MAX_LINEWIDTH = 132
    * ARCHIVE_INDEX = ' '
    * COPYNUMBER = 0
    * ASCII_BIDI_VIS2LOG = ' '
    * PDF_DELETE_OTFTAB = ' '
    IMPORTING
    BIN_FILESIZE = W_bin_filesize
    * BIN_FILE =
    TABLES
    otf = T_OTF
    lines = T_pdf_tab
    EXCEPTIONS
    ERR_MAX_LINEWIDTH = 1
    ERR_FORMAT = 2
    ERR_CONV_NOT_POSSIBLE = 3
    ERR_BAD_OTF = 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.
    * To display File SAVE dialog window
    CALL METHOD cl_gui_frontend_services=>file_save_dialog
    * EXPORTING
    * WINDOW_TITLE =
    * DEFAULT_EXTENSION =
    * DEFAULT_FILE_NAME =
    * FILE_FILTER =
    * INITIAL_DIRECTORY =
    * WITH_ENCODING =
    * PROMPT_ON_OVERWRITE = 'X'
    CHANGING
    filename = w_FILE_NAME
    path = w_FILE_PATH
    fullpath = w_FULL_PATH
    * USER_ACTION =
    * FILE_ENCODING =
    EXCEPTIONS
    CNTL_ERROR = 1
    ERROR_NO_GUI = 2
    NOT_SUPPORTED_BY_GUI = 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.
    * Use the FM GUI_DOWNLOAD to download the generated PDF file onto the
    * presentation server
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    BIN_FILESIZE = W_bin_filesize
    filename = w_FULL_PATH
    FILETYPE = 'BIN'
    * APPEND = ' '
    * WRITE_FIELD_SEPARATOR = ' '
    * HEADER = '00'
    * TRUNC_TRAILING_BLANKS = ' '
    * WRITE_LF = 'X'
    * COL_SELECT = ' '
    * COL_SELECT_MASK = ' '
    * DAT_MODE = ' '
    * CONFIRM_OVERWRITE = ' '
    * NO_AUTH_CHECK = ' '
    * CODEPAGE = ' '
    * IGNORE_CERR = ABAP_TRUE
    * REPLACEMENT = '#'
    * WRITE_BOM = ' '
    * TRUNC_TRAILING_BLANKS_EOL = 'X'
    * WK1_N_FORMAT = ' '
    * WK1_N_SIZE = ' '
    * WK1_T_FORMAT = ' '
    * WK1_T_SIZE = ' '
    * IMPORTING
    * FILELENGTH =
    tables
    data_tab = T_pdf_tab
    * FIELDNAMES =
    * EXCEPTIONS
    * FILE_WRITE_ERROR = 1
    * NO_BATCH = 2
    * GUI_REFUSE_FILETRANSFER = 3
    * INVALID_TYPE = 4
    * NO_AUTHORITY = 5
    * UNKNOWN_ERROR = 6
    * HEADER_NOT_ALLOWED = 7
    * SEPARATOR_NOT_ALLOWED = 8
    * FILESIZE_NOT_ALLOWED = 9
    * HEADER_TOO_LONG = 10
    * DP_ERROR_CREATE = 11
    * DP_ERROR_SEND = 12
    * DP_ERROR_WRITE = 13
    * UNKNOWN_DP_ERROR = 14
    * ACCESS_DENIED = 15
    * DP_OUT_OF_MEMORY = 16
    * DISK_FULL = 17
    * DP_TIMEOUT = 18
    * FILE_NOT_FOUND = 19
    * DATAPROVIDER_EXCEPTION = 20
    * CONTROL_FLUSH_ERROR = 21
    * OTHERS = 22
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Do reward if helpful
    Edited by: sharad narayan on Apr 4, 2008 2:14 PM
    Edited by: sharad narayan on Apr 4, 2008 2:18 PM

Maybe you are looking for