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.