| Smartforms |
|
|
|
| Documentación - Manuales breves | ||||||
| Miércoles, 08 de Junio de 2005 17:02 | ||||||
Manual de Smartforms - Exequiel Lopez
Introduccion
Los nuevos formularios SmartForms son una de las ultimas técnicas de SAP para la impresión y envio via mail y fax de reportes e información tabulada y formateada.
A diferencia de la transaccion SE71 que se utiliza habitualmente para la creacion y edicion de los forms estandar en SAP, en los nuevos formularios creados con Smartforms se debe trabajar con dos transacciones nuevas:
Parametrizacion del programa de control y del formulario
Al igual que sucede con los forms convencionales de SAP R3, todavía siguen existiendo las parametrizaciones que establecen cual es el programa de control y cual es el SmartForm seleccionado para hacer la impresión. He aquí un ejemplo especifico con el cual he trabajado anteriormente: si se quiere imprimir facturas en SAP CRM versión 6.40 se debe invocar a la transacción /BEA/CRMB11 “Tratar documentos de facturación” y para que se pueda imprimir la factura se debe establecer el programa de control de impresión y el formulario de la siguiente manera: SPRO IMG Customer Relationships Management Funciones Basicas Acciones Acciones en la facturacion Definir perfiles de acción y acciones Perfil de accion es CRMB_BILLING Perfil de Accion Definicion de Accion Clase de Tratamiento Formulario es Impres.Smart Form Click en boton largo "Parametrizacion de Proceso" Formulario: BEA_CRMB_BILLING_SF En este caso BEA_CRMB_BILLING_SF es el SmartForms estandar para la impresión de facturas en SAP CRM. Entonces de esta manera hemos elegido al formulario SmartForms BEA_CRMB_BILLING_SF para hacer las impresiones de facturas, y si asi lo deseamos podemos copiarlo como ZBEA_CRMB_BILLING_SF y modificarlo a nuestro gusto. Por supuesto, cada tarea de impresión como remitos, cheques, etc, etc tiene su programa de control estandar correspondiente y su formulario de impresión estandar correspondiente los cuales pueden ser sustituidos o modificados según se desee a traves de las parametrizaciones adecuadas.
Las sentencias OPEN_FORM, WRITE_FORM, etc, etc ya no son utilizadas.
En su lugar se invoca a la funcion que el editor de SmartForms crea automaticamente al generar el formulario.
En este programa se utilizan dos funciones:
SSF_FUNCTION_MODULE_NAME - Obtiene el nombre del modulo de funcion asociado a este formulario, es decir el programa autogenerado al crear el SamrtForm y lo deposita en la variable nombre_modulo_funcion.
CALL FUNCTION nombre_modulo_funcion - Llama al modulo autogenerado.
REPORT zsmart1.
* ---------------------------------------------------------------------- * Sistema : SAP R/3 * Nombre : Modelo del programa de invocacion de un SmartForm. * Script : ZSMART1 * Autor : Exequiel Lopez Ramon. * Fecha : 17/11/2004 * ----------------------------------------------------------------------
TABLES: mkpf.
* ----------------------------------------------------------------------
* Nombre del modulo de funciones del formulario. DATA: nombre_modulo_funcion TYPE rs38l_fnam.
* Tabla auxiliar para los datos. DATA: BEGIN OF aux_mkpf OCCURS 0. INCLUDE STRUCTURE mkpf. DATA: END OF aux_mkpf.
* ----------------------------------------------------------------------
* Programa principal
PERFORM cargar_datos_demo. PERFORM invocar_smartform.
EXIT.
* ----------------------------------------------------------------------
FORM cargar_datos_demo.
* Limpiar las tablas auxiliares antes de usarlas. CLEAR aux_mkpf. REFRESH aux_mkpf.
* Cargar los 10 primeros registros para probar. SELECT * UP TO 10 ROWS FROM mkpf.
MOVE-CORRESPONDING mkpf TO aux_mkpf. APPEND aux_mkpf.
ENDSELECT.
ENDFORM.
* ----------------------------------------------------------------------
FORM invocar_smartform.
* Inicializar el formulario. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZSMART1' IMPORTING fm_name = nombre_modulo_funcion 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.
* Enviar datos al formulario e imprimirlo. CALL FUNCTION nombre_modulo_funcion TABLES gs_mkpf = aux_mkpf 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.
ENDIF.
ENDFORM.
* ---------------------------------------------------------------------- *
Agregar codigo ejecutable en un SmartForm
Para agregar codigo ejecutable que pueda por ejemplo acceder a las tablas de SAP existen algunas secciones donde puede ser incluido.
Inicializacion:
Tareas que se realizan en cuanto se carga el formulario:
Doble click en Global Definitions.
Click en la solapa Global Data
Declarar esta variable: AUX_LS_LFA1 LIKE LFA1
Click en la solapa Initialization.
Declarar en Output Parameter: AUX_LS_LFA1
En el combo de texto que aparece abajo pueden agregarse comandos ABAP como por ejemplo:
DATA: AUX_LFA1 LIKE LFA1.
SELECT SINGLE * FROM LFA1 INTO AUX_LFA1.
MOVE-CORRESPONDING AUX_LFA1 TO AUX_LS_LFA1.
Ahora la variable global AUX_LS_LFA1 contiene lo cargado por la sentencia SELECT y se puede utilizar en todo el formulario.
Por ejemplo se la puede usar como &AUX_LS_LFA1-NAME1& en cualquier lugar del formulario.
Agregar una imagen de fondo a una pagina:
Doble click sobre PAGINA1.
Click en solapa Fondo.
En el campo Name colocar el nombre de una imagen ya cargada en el sistema, por ejemplo Z_LOGO_UTE_2.
En el campo Objeto colocar GRAPHICS.
En el campo ID colocar BMAP.
Seleccionar el tipo de imagen, monocroma o color.
En resolucion indicar 75 DPI.
En modo de salida indicar Visualizacion de impresion e impresion.
Darle la posicion deseada en la hoja.
Activar.
¡Sólo los usuarios registrados pueden escribir comentarios!
Powered by !JoomlaComment 3.26
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."
|




