Rotina de conversão de relatório SMARTFORMS para arquivo PDF.
Antes de chamar a função do SMARTFORMS, ajustar os parâmetros de impressão.
DATA: w_out_opt TYPE ssfcompop,
w_out_info TYPE ssfcrescl,
w_ctr_par TYPE ssfctrlop.
w_out_opt-tdprinter = 'SWIN'.
w_ctr_par-no_dialog = abap_true.
w_ctr_par-getotf = abap_true.
"Chamar o smartforms
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZTESTE_PDF'
IMPORTING
fm_name = l_fnam
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
RAISE sem_dados.
ENDIF.
"Colocar o parâmetro de retorno JOB_OUTPUT_INFO
CALL FUNCTION l_fnam
EXPORTING
control_parameters = iw_ctr_par
output_options = iw_out_opt
user_settings = space
IMPORTING
job_output_info = W_OUT_INFO
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
"No caso de saída para arquivo local usando o GUI_DOWNLOAD, remover o parâmetro BIN_FILE
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = bin_size
bin_file = bin_file
TABLES
otf = w_out_info-otfdata
lines = t_lines
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5.
"Para geração de arquivo local
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = file_loc
filetype = 'BIN'
TABLES
data_tab = t_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.
"Para geração de arquivo no servidor.
OPEN DATASET p_filen FOR OUTPUT IN BINARY MODE.
TRANSFER bin_file TO p_filen.
CLOSE DATASET p_filen.
Nenhum comentário:
Postar um comentário