Anuncio

Colapsar
No hay anuncio todavía.

Se puede abrir PDF sin haberlo guardado?

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Se puede abrir PDF sin haberlo guardado?

    HOLA COMPAÑER@S!!

    Mi consulta es la siguiente: He pasado un Smartforms a PDF y ningún problema... La pregunta es la siguente para abrir el PDF he de guardarlo en un directorio... ¿Se puede abrir el Pdf sin guardarlo en un directorio.

    El código es el siguiente:
    ORM smartforms_to_pdf.
    *-- Declaraciones
    DATA: w_ctrlop TYPE ssfctrlop,
    w_compop TYPE ssfcompop,
    w_return TYPE ssfcrescl,
    otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,
    lc_name TYPE rs38l_fnam,
    intab TYPE soli_tab,
    objbin TYPE solix_tab,
    wa_intab TYPE LINE OF soli_tab,
    wa_objbin TYPE LINE OF solix_tab,
    objpack LIKE sopcklsti1, "WITH HEADER LINE.
    l_nom_pdf(70) TYPE c,
    l_ruta TYPE string.

    *-- Función que devuelve el módulo de función del SmartForm
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
    formname = 'ZIOS_CONTRATOS_CESION'
    IMPORTING
    fm_name = lc_name
    EXCEPTIONS
    no_form = 1
    no_function_module = 2
    OTHERS = 3.

    *-- Si hubo errores, desplegar mensaje y terminar, si se continua se
    *-- produce un error de run time.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid
    TYPE sy-msgty
    NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    w_ctrlop-getotf = 'X'.
    w_ctrlop-no_dialog = 'X'.
    w_compop-tdnoprev = 'X'.

    *-- Enviar datos al formulario e imprimirlo.
    CALL FUNCTION lc_name
    EXPORTING
    output_options = w_compop
    control_parameters = w_ctrlop
    izios_t_contratos = wzios_t_contratos
    IMPORTING
    job_output_info = w_return
    EXCEPTIONS
    formatting_error = 1
    internal_error = 2
    send_error = 3
    user_canceled = 4
    OTHERS = 5.
    *-- Si se produce un error, reportarlo.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
    otfdata[] = w_return-otfdata[].
    ENDIF.

    *-- En la tabla otfdata nos queda guardado el formulario en formtao OTF
    *-- Ahora sólo resta convertir el OTF en PDF
    LOOP AT otfdata.
    wa_intab = otfdata.
    APPEND wa_intab TO intab.
    CLEAR wa_intab.
    ENDLOOP.

    *-- Convertir el OTF en PDF
    CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
    EXPORTING
    format_src = 'OTF'
    format_dst = 'PDF'
    * ADDR_TYPE =
    * devtype = 'LP01'
    * FUNCPARA =
    CHANGING
    transfer_bin = objpack-transf_bin
    content_txt = intab
    content_bin = objbin
    objhead = intab
    len = objpack-doc_size
    EXCEPTIONS
    err_conv_failed = 1
    OTHERS = 2.

    *-- En la tabla objbin queda guardado el PDF para salvarlo
    *-- en la PC con la función 'GUI_DOWNLOAD' o bien enviarlo por mail con
    *-- la función 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    SHIFT p_kunnr LEFT DELETING LEADING '0'.

    CLEAR l_nom_pdf.
    CONCATENATE g_contrato '_' 'Clte.' p_kunnr '_' sy-datum+4(2) '.' sy-datum+2(2) '.' sy-datum+(4)
    '_' sy-uzeit(2) '.' sy-uzeit+2(2) '.' sy-uzeit+4(2) '.' 'PDF' INTO l_nom_pdf.

    CLEAR l_ruta.
    CONCATENATE 'C:/temp/' l_nom_pdf INTO l_ruta.

    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    * filename = 'C:/temp/filename.PDF'
    filename = l_ruta
    filetype = 'BIN'
    TABLES
    data_tab = objbin.

    *-- Con esta función se abre el PDF
    CALL FUNCTION 'WS_EXECUTE'
    EXPORTING
    * commandline = 'C:/temp/filename.PDF'
    commandline = l_ruta
    program = 'AcroRd32.exe'.

    ENDFORM. " smartforms_to_pdf

    MUCHAS GRACIAS!!!!

  • #2
    ...

    Hola, soy principiante en ABAP y aún más en smartforms, pero me resulta un tanto imposible poder abrir un archivo que no existe, es mi humilde opinión, tal vez algún experto pueda asesorarnos adecuadamente y dar una solución a lo que necesitas, saludos.

    Comentario

    Trabajando...
    X