Buenas noches señores, voy a dejar un pequeño aporte y un pequeño problema
Tengo un smartform que cuando se va a mostrar no se m uestra en la clasica presentacion, quien no ha tenido problemas con la visualizacion del smartform cuando tenemos muchos datos y necesariamente el tamaño de la letra tiene q sea obligaoriamente tamaño 8, pufff muy pequeña verdad y el usuario no lo vera ni con lupa, pues bueno, como saben hay una forma de previsualizar el smartform en pdf (ya que el usuario no siempre querra imprimirlo) a travez de: menu: pasar a -> Presentacion Preliminar PDF
Pero el usuario muchas veces es tan anticuado que ve esos simples 2 pasos muy complicados (burros de miercoles), pero es que simplemente nosotros estamos para dar soluciones no para dar mas pasos que ellos no deben de hacer
, entonces, ¿podemos hacer que el smartform tenga una previsualizacion en formato pdf?, por su puesto que si haciendo uso de: CALL FUNCTION 'SSFCOMP_PDF_PREVIEW', el cual nos permite guardar el documento en formato pdf, hacer zoom in, zoom out y otras funciones que la visualizacion clasica de smartform no permite.
A continuacion el codigo, completo:
Ahora el problema: el tamaño del preview esta a la mitad de la oantalla y todo por que dentro de la funcion "SSFCOMP_PDF_PREVIEW" hace uso de una dynpro 300 que tiene un control custom que tiene una altura de 31 y un largo de 90, este 90 es el que hace que la visualizacion ocupe poco espacio y que no se vea el documento completo.
Alguien ha trabajado con esto y ha solucionado este problema, por favor haber si ayudan a expandir mas el conocimiento nuestro.
Gracias de antemano.
Tengo un smartform que cuando se va a mostrar no se m uestra en la clasica presentacion, quien no ha tenido problemas con la visualizacion del smartform cuando tenemos muchos datos y necesariamente el tamaño de la letra tiene q sea obligaoriamente tamaño 8, pufff muy pequeña verdad y el usuario no lo vera ni con lupa, pues bueno, como saben hay una forma de previsualizar el smartform en pdf (ya que el usuario no siempre querra imprimirlo) a travez de: menu: pasar a -> Presentacion Preliminar PDF
Pero el usuario muchas veces es tan anticuado que ve esos simples 2 pasos muy complicados (burros de miercoles), pero es que simplemente nosotros estamos para dar soluciones no para dar mas pasos que ellos no deben de hacer
, entonces, ¿podemos hacer que el smartform tenga una previsualizacion en formato pdf?, por su puesto que si haciendo uso de: CALL FUNCTION 'SSFCOMP_PDF_PREVIEW', el cual nos permite guardar el documento en formato pdf, hacer zoom in, zoom out y otras funciones que la visualizacion clasica de smartform no permite.A continuacion el codigo, completo:
Código:
DATA: lwa_output TYPE ssfcompop.
DATA: lwa_control TYPE ssfctrlop.
DATA: fm_name TYPE rs38l_fnam.
DATA: lwa_anexoa1 LIKE LINE OF gtd_DET_ANEXO14_DET.
DATA: ln_position TYPE p DECIMALS 2,
ln_valuation TYPE p DECIMALS 2,
ln_nominal TYPE p DECIMALS 2,
ln_tsl01 TYPE p DECIMALS 2.
DATA: ls_fecha(40) TYPE c,
ls_nromes TYPE fcmnr,
ls_mes TYPE fcltx.
DATA: lwa_info TYPE ssfcrescl,
ltd_otf TYPE STANDARD TABLE OF itcoo,
ltd_doctab TYPE STANDARD TABLE OF docs,
ltd_tline TYPE STANDARD TABLE OF tline,
li_filesize TYPE i.
FIELD-SYMBOLS <fs_tline> LIKE LINE OF ltd_tline.
ls_nromes = p_date+4(2).
SELECT SINGLE ltx INTO ls_mes
FROM t247
WHERE spras = sy-langu AND
mnr = ls_nromes.
CONCATENATE 'Al' p_date+6(2) 'de' ls_mes 'del' p_date+0(4)
INTO ls_fecha SEPARATED BY space.
* Para obtener el nombre de la función del smartform
DATA: fm_name TYPE rs38l_fnam.
lwa_output-xdf2outdev = gs_printer. “(de tip char 60) “def
lwa_output-tddest = gs_printer. "def
lwa_output-tddelete = 'X'.
lwa_output-tdnewid = 'X'.
lwa_output-tdimmed = 'X'.
lwa_control-no_dialog = 'X'. "no dilog box
lwa_control-preview = ''. "----para que no se vea en viaualizacion clasica
lwa_control-device = 'PRINTER'.
lwa_control-getotf = 'X'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZTRMSF_ANEXO14DET' "Nombre del SMARTFORM
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.
IF p_pdf EQ 'X'. “PDF ES UN RADIO BUTON QUE ELIGIRE SI QUIERO EXPORTARLO A PDF
lwa_control-getotf = 'X'.
ELSE.
"CLEAR lwa_control-getotf. "---------------------------------JOMS 20130822 CMT
ENDIF.
* Muestar el formulario
CALL FUNCTION fm_name
EXPORTING
control_parameters = lwa_control
output_options = lwa_output
user_settings = ' '
ls_fecha = ls_fecha
gs_empresa = gs_empresa
gs_fecha_reporte = gs_fecha_reporte
gs_rcomvalc1 = gs_rcomvalc1
gs_rcomvalc2 = gs_rcomvalc2
* gs_hechopor = gs_hechopor
* gs_nomconta = gs_nomconta
* gs_nroconta = gs_nroconta
IMPORTING
job_output_info = lwa_info
TABLES
gtd_DET_ANEXO14_DET = gtd_DET_ANEXO14_DET
gtd_CONS_RESPON_A14 = gtd_CONS_RESPON_A14
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.
* BAJAR_PDF.
IF p_pdf EQ 'X' AND
NOT lwa_info-otfdata[] IS INITIAL.
ltd_otf[] = lwa_info-otfdata[].
DATA: li_ruta type i.
li_ruta = STRLEN( p_ruta ).
li_ruta = li_ruta - 1.
IF p_ruta+li_ruta(1) eq '\'.
*Sale del form get_constantes (gs_nompdf)
CONCATENATE p_ruta gs_nompdf '_' 'DET' '_' p_date+6(2) p_date+4(2) p_date+0(4) '.pdf' INTO gs_fullpath.
ELSE.
CONCATENATE p_ruta '\' gs_nompdf '_' 'DET' '_' p_date+6(2) p_date+4(2) p_date+0(4) '.pdf' INTO gs_fullpath.
ENDIF.
CALL FUNCTION 'CONVERT_OTF_2_PDF'
EXPORTING
use_otf_mc_cmd = 'X'
IMPORTING
bin_filesize = li_filesize
TABLES
otf = ltd_otf
doctab_archive = ltd_doctab
lines = ltd_tline
EXCEPTIONS
err_conv_not_possible = 1
err_otf_mc_noendmarker = 2
OTHERS = 3.
IF sy-batch EQ 'X'.
OPEN DATASET gs_file FOR OUTPUT IN BINARY MODE.
LOOP AT ltd_tline ASSIGNING <fs_tline>.
TRANSFER <fs_tline> TO gs_file.
ENDLOOP.
CLOSE DATASET gs_file.
ELSE.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = li_filesize
filename = gs_fullpath
filetype = 'BIN'
TABLES
data_tab = ltd_tline[]
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.
ENDIF.
**********************************************************************
****ACA LA LOGICA QUE HACE EL PREVIEW
**********************************************************************
CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
EXPORTING
I_OTF = ltd_otf
EXCEPTIONS
CONVERT_OTF_TO_PDF_ERROR = 1
CNTL_ERROR = 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.
endif.
Alguien ha trabajado con esto y ha solucionado este problema, por favor haber si ayudan a expandir mas el conocimiento nuestro.
Gracias de antemano.