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!!!!
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!!!!
Comentario