Difference between revisions of "SAP ABAP SMARTFORMS"
From SapWiki
Line 119: | Line 119: | ||
ENDFUNCTION. | ENDFUNCTION. | ||
+ | |||
+ | ==Notas Smartforms== | ||
+ | === Problema de generación de smartform despues de un transporte === | ||
+ | |||
+ | Ver Nota: SAP Note 630105 - Generating Smart Forms after transport | ||
+ | |||
+ | Solution | ||
+ | |||
+ | If you want to generate the transported Smart Forms before the first call | ||
+ | in the target system, create report RSTXGALL in the system. You can then | ||
+ | run RSTXGALL after a transport if required. | ||
+ | |||
+ | report rstxgall. | ||
+ | data: form type tdsfname, | ||
+ | forms type table of tdsfname. | ||
+ | select formname from stxfadm into table forms | ||
+ | where formtype = space. | ||
+ | loop at forms into form. | ||
+ | call function 'SSF_FUNCTION_MODULE_NAME' | ||
+ | exporting | ||
+ | formname = form | ||
+ | exceptions | ||
+ | others = 1. | ||
+ | endloop. | ||
+ | |||
+ | ===Incluir un texto estandard(sapscript) en un formulario smartform=== | ||
+ | Si se desea utilizar un texto estandard(SO10) como un texto include, y este posee un estilo X(SE72), este estilo X debe crearse como smartstyle con los mismos parrafos y | ||
+ | caracteres. | ||
+ | |||
+ | ===Fondo gris en imagenes (logos) === | ||
+ | Si al cargar una imagen en la SE78 y en vez de verse el color blanco original se ve un gris leve, esto es porque sap admite imagenes de hasta 256 colores, entonces una solución | ||
+ | es grabar la imagen como BMP de 256 colores con el PAINT de Windows u otro editor de imagenes, aunque pierde resolucion (ver nota SAP 205837) | ||
+ | |||
+ | ===activar/desactivar editor microsoft Office === | ||
+ | ver reporte RSCPSETEDITOR | ||
+ | |||
+ | === activar trace smartform === | ||
+ | transaccion SFTRACE |
Revision as of 15:00, 27 March 2020
Contents
ejemplo de función que retorna smartform en BASE 64 con preview para pruebas en la trn. SE37
FUNCTION zhr_get_pdf. *"---------------------------------------------------------------------- *"*"Interfase local *" IMPORTING *" VALUE(P_PERNR) TYPE PERNR_D OPTIONAL *" VALUE(P_IDDOCUMENTO) TYPE TIM_REQ_ID OPTIONAL *" EXPORTING *" VALUE(P_BINFILE) TYPE XSTRING *" VALUE(P_FILEBASE64) TYPE STRING *" VALUE(P_ERRMSG) TYPE STRING *"---------------------------------------------------------------------- DATA: l_formname TYPE tdsfname VALUE 'ZSF_MY_SMARTFORM', lf_fm_name TYPE rs38l_fnam, ls_control_param TYPE ssfctrlop, ls_composer_param TYPE ssfcompop, ga_job_output_info TYPE ssfcrescl. *insert some logic here * *--------------------------------------------------------------------* * call Smartform *--------------------------------------------------------------------* CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = l_formname IMPORTING fm_name = lf_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 INTO p_errmsg. RETURN. ENDIF. ls_control_param-device = 'PRINTER'. ls_control_param-no_dialog = 'X'. ls_control_param-preview = . ls_control_param-no_open = . ls_composer_param-tdcover = ' '. ls_control_param-getotf = 'X'. ls_composer_param-tdimmed = 'X'. ls_composer_param-tdcopies = 1. CALL FUNCTION lf_fm_name EXPORTING control_parameters = ls_control_param output_options = ls_composer_param i_data = wa_data IMPORTING job_output_info = ga_job_output_info * TABLES * detalle = it_ccnom1 EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. IF sy-subrc <> 0. * Implement suitable error handling here * Transfer SF errors to internal table DATA lt_errortab TYPE tsferror. CALL FUNCTION 'SSF_READ_ERRORS' IMPORTING errortab = lt_errortab. LOOP AT lt_errortab INTO DATA(wa). MESSAGE ID wa-msgid TYPE wa-msgty NUMBER wa-msgno WITH wa-msgv1 wa-msgv2 wa-msgv3 wa-msgv4 INTO p_errmsg. EXIT. ENDLOOP. RETURN. ENDIF. ltd_otf[] = ga_job_output_info-otfdata[]. CALL FUNCTION 'CONVERT_OTF' EXPORTING format = 'PDF' * max_linewidth = 800 IMPORTING bin_filesize = lv_bytes bin_file = bin_file TABLES otf = ltd_otf lines = gt_pdfdata EXCEPTIONS ##FM_SUBRC_OK err_max_linewidth = 1 err_format = 2 err_conv_not_possible = 3 OTHERS = 4. IF NOT bin_file IS INITIAL. p_binfile = bin_file. ENDIF. CALL FUNCTION 'SCMS_BASE64_ENCODE_STR' EXPORTING input = p_binfile IMPORTING output = p_filebase64. IF sy-tcode = 'SE37'. * Preview PDF. CALL FUNCTION 'SSFCOMP_PDF_PREVIEW' EXPORTING i_otf = ltd_otf[] EXCEPTIONS ##fm_subrc_ok convert_otf_to_pdf_error = 1 cntl_error = 2 OTHERS = 3. ENDIF. ENDFUNCTION.
Notas Smartforms
Problema de generación de smartform despues de un transporte
Ver Nota: SAP Note 630105 - Generating Smart Forms after transport
Solution
If you want to generate the transported Smart Forms before the first call in the target system, create report RSTXGALL in the system. You can then run RSTXGALL after a transport if required.
report rstxgall. data: form type tdsfname, forms type table of tdsfname. select formname from stxfadm into table forms where formtype = space. loop at forms into form. call function 'SSF_FUNCTION_MODULE_NAME' exporting formname = form exceptions others = 1. endloop.
Incluir un texto estandard(sapscript) en un formulario smartform
Si se desea utilizar un texto estandard(SO10) como un texto include, y este posee un estilo X(SE72), este estilo X debe crearse como smartstyle con los mismos parrafos y caracteres.
Fondo gris en imagenes (logos)
Si al cargar una imagen en la SE78 y en vez de verse el color blanco original se ve un gris leve, esto es porque sap admite imagenes de hasta 256 colores, entonces una solución es grabar la imagen como BMP de 256 colores con el PAINT de Windows u otro editor de imagenes, aunque pierde resolucion (ver nota SAP 205837)
activar/desactivar editor microsoft Office
ver reporte RSCPSETEDITOR
activar trace smartform
transaccion SFTRACE