You are on page 1of 14

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

Smartforms
Liqour Accounting control
Get easy measured or free pour dispensing with a wireless system
www.wircon.net

De SAP ABAP en castellano

Contenido
1 Introduccion 2 Parametrizacion del programa de control y del formulario 2.1 Definicion de los estilos de los SmartForms 2.2 Parametros Globales de los SmartForms 2.3 Cdigos de barra en un SmartForm 2.4 Agregar codigo ejecutable en un SmartForm 3 Descripcin de los tipos de nodos 3.1 Nodo PAGINA 3.2 Nodo VENTANA 3.3 Nodo FUNCION GRAFICA 3.4 Nodo DIRECCION 3.5 Nodo TABLA 3.6 Nodo MASCARA DE EDICION 3.7 Nodo TEXTO 3.8 Nodo CARPETA 3.9 Nodo ALTERNATIVA 3.10 Nodo LINEAS DE COMANDO 3.11 Nodo LOOP 3.12 Nodo COMANDO 4 Traduccion a otros idiomas 4.1 Traducir los textos 4.2 Trasportar la traduccin 5 Anexo1. Ejecucin Smartforms 6 Anexo3. Debuggear un smartform 7 Anexo3. Cambiar editor de texto en nodos texto 8 Agradecimientos 9 Ejemplos 10 Enlaces

Introduccion
Los nuevos formularios SmartForms son una de las ultimas tcnicas de SAP para la impresin y envi va mail y fax de reportes e informacin tabulada y formateada. A diferencia de la transaccin SE71 que se utiliza habitualmente para la creacin y edicin de los forms estndar en SAP, en los nuevos formularios creados con Smartforms se debe trabajar con dos transacciones nuevas: Una transaccin para definir el estilo del formulario llamada SMARTSTYLES en la cual se definen tipo de pargrafos, tipo de caracteres, los fonts que se van a usar, el tamao que tendrn, los
1 de 14 21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

tabuladores, etc, etc. Otra transaccin para crear el formulario en si mismo llamada SMARTFORMS en la cual se definen las ventanas y su contenido y que utiliza al estilo creado con SMARTSTYLES . Tambin cambiara la forma en que se escribe la lgica del programa que controlara el formulario, antes lo hacamos directamente desde SE38, ahora el sistema escribir automticamente las rutinas del control del formulario y nosotros podremos invocar al formulario a travs de un par de funciones estndar de sistema dejando de lado la vieja manera del WRITE_FORM etc, etc. Para esta gua de demostracin yo estoy logeado al sistema en ingles por lo que los nombres de campos y demas estan en ingles. Si se quiere ver un ejemplo complejo completo de Smartforms SAP estandar se puede revisar a LB_BIL_INVOICE.

Parametrizacion del programa de control y del formulario


Al igual que sucede con los forms convencionales de SAP R3, todava siguen existiendo las parametrizaciones que establecen cual es el programa de control y cual es el SmartForm seleccionado para hacer la impresin. He aqu un ejemplo especifico con el cual he trabajado anteriormente: si se quiere imprimir facturas en SAP CRM versin 6.40 se debe invocar a la transaccin /BEA/CRMB11 "Tratar documentos de facturacin" y para que se pueda imprimir la factura se debe establecer el programa de control de impresin y el formulario de la siguiente manera:

SPRO IMG Customer Relationships Management Funciones Basicas Acciones Acciones en la facturacion Definir perfiles de accin 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 impresin 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 impresin como remitos, cheques, etc, etc tiene su programa de control estandar correspondiente y su formulario de impresin estandar correspondiente los cuales pueden ser sustituidos o modificados segn se desee a traves de las parametrizaciones adecuadas.

Definicion de los estilos de los SmartForms


Todo SmartForm utiliza estilos, existen algunos predefinidos en el sistema o podemos crearlos nosotros mismos. Comenzaremos creando un estilo para nuestro uso desde el comienzo: Transaccion SMARTSTYLES

2 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

Darle el nombre del estilo, por ejemplo ZESTILO1 Click en Crear Doble clicn en Paragraph Formats Boton derecho, Create Node Darle un nombre, por ejemplo P0, este sera el paragrafo por defecto mas adelante. En la parte derecha de la pantalla apareceran las solapas con todos los posibles atributos para este tipo de paragrafo, como va a ser el estandar es mejor usar tipo de letra y tamano estandares como por ejemplo HELVE y tamano 10. En Description darle una descripcion: "Este es el paragrafo por defecto" En la solapa Indent and Spacing dejarlo Left-aligned y no tocarle nada mas. En la solapa Font en el campo Font Family elegir HELVE. en el campo Font Size elegir 10 pt. en el campo Font Style dejarlo en blanco. En la solapa Tabs se pueden establecer los tabuladores. Por ejemplo 1, 5, 10, 15, unidad es CM, alineacion LEFT. Lo mismo se repite para cada tipo de paragrafo que queramos definir. Ahora doble click en Header Data. Darle P0 como Standar Paragraph. Ahora podemos definir el resto de todos los paragrafos que queramos usar en el formulario, habitualmente yo los numero sistematicamente, P1, P2, etc, etc. No olvidar dar click sobre Save y Activate.

Parametros Globales de los SmartForms


En el nodo Atributos Formulariose puede controlar los atributos bsicos del formulario: En el campo Descripcin una descripcin del formulario, por ejemplo "Formulario de prueba". En la solapa Atributos Generales se puede controlar la traduccin a otros lenguajes. En la solapa Opciones de SAlida se puede controlar principalmente: Formato de Pagina es decir el tipo de hoja que se va a usar, habitualmente DINA4. Style, el estilo que vamos a usar, en este caso ZESTILO1. En el nodo Interface Formulariose puede controlar los parmetros de entrada y salida del formulario: En el nodo Definiciones Globales se pueden definir entre otras cosas los tipos, variables, field-symbols y tablas globales del formulario as como el cdigo que se ejecutara primero cuando se genere el formulario.

3 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

Para empezar a definir el formulario vamos a crear una primera pagina que tendr: Titulo principal del formulario Parte Main para desplegar datos en Loop. Un Contador de paginas al final de la hoja. Ventana Main: Por defecto el sistema nos crea una pagina llamada %PAGE1 en el arbol a la izquierda de la pantalla debajo de Pages and Windows. Hacer doble click sobre %PAGE1 . Renombrala como PAGINA1 y darle como descripcion "Primera pagina del formulario." Por ahora le dejaremos el Nextpage en PAGINA1. Hacer click sobre el simbolo + para expandirla. Aparecera la ventana MAIN que el sistema pone por defecto. Hacer doble click sobre MAIN. En la solapa General Attributes le dejamos Windows Type como Main Window. En la solapa Output Options le daremos el tamano y otras opciones. En Left Margin le damos 1 CM. - Contola el margen izquierdo En Upper Margin le damos 4 CM. - Controla el margen desde arriba En Width le damos 18 CM. - Controla el ancho de la ventana. En Height le damos 20 CM. - Controla el alto de la ventana. Click sobre Lines With. - Controla parametros del de linea Click sobre Always Draw Box and Shadings. - Dibuja el recuadro. Esto define el tamano de la pagina Main y nos permite dibujar un recuadro. Si se hace Click sobre el boton Form Painter se vera como va quedano el formulario. Probar los que se tiene hasta ahora: Para ver el aspecto que va teniendo el formulario podemos lanzar una impresion de prueba: Click en el icono Test (F8) Aparece el nombre del programa que ha sido creado automaticamente, por el momento lo usaremos tal cual esta. Click de nuevo en Single Test (F8) Click en Execute (F8) Elegir la impresora.

4 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

Darle click en imprimir o en previsualizacion. Darle BACK cuatro veces hasta volver al editor de SmartForms. Salvar a disco local el Smartform / Utilities / Donwload form Todo el SmartForm es salvado en modo XML. No es muy fiable al volverlo a cargar. El salvado a XML al menos en version 4.7 de SAP funciona MUY MAL. Ventanda del titulo: Doble click sobre PAGINA1. Boton derecho, Create, elegir Windows. Nos crea una ventana nueva llamada %WINDOW1, renombrarla como Titulo. "Titulo del formulario." En la solapa General Attributes le dejamos Windows Type como Secondary Window En la solapa Output Options le daremos el tamano y otras opciones. En Left Margin le damos 1 CM. - Contola el margen izquierdo En Upper Margin le damos 1 CM. - Controla el margen desde arriba En Width le damos 18 CM. - Controla el ancho de la ventana. En Height le damos 2 CM. - Controla el alto de la ventana. Click sobre Lines With. - Controla parametros del de linea Click sobre Always Draw Box and Shadings. - Dibuja el recuadro. Doble click sobre la ventana Titulo otra vez. Boton derecho, Create, Text. Nos crea un texto llamado %TEXT1, renombrarlo a TEXTOTITULO, darle un comentario descriptivo como "El texto del titulo." En la solapa General Attributes aparecera abajo del todo un cuadro en blanco donde pondremos el titulo en si mismo del formulario, por ejemplo "Formulario de Prueba" Lo pintamos con el cursor y le aplicamos el formato de paragrafo ( opciones Paragraph Formats ) P1 Titulo del formulario que anteriormente creamos en el estilo. Si se hace click sobre el botoncito Txt Editor que esta a la izquierda del combo de texto aparece el viejo editor de comandos de Forms ( Lo menciono solo como dato informativo ). Ventana del contador de paginas Doble click sobre PAGINA1.

5 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

Boton derecho, Create, elegir Windows. Nos crea una ventana nueva llamada %WINDOW2, renombrarla como CONTADOR "Contador de paginas" En la solapa General Attributes le dejamos Windows Type como Secondary Window En la solapa Output Options le daremos el tamano y otras opciones. En Left Margin le damos 1 CM. - Contola el margen izquierdo En Upper Margin le damos 27 CM. - Controla el margen desde arriba En Width le damos 18 CM. - Controla el ancho de la ventana. En Height le damos 2 CM. - Controla el alto de la ventana. Click sobre Lines With. - Controla parametros del de linea Click sobre Always Draw Box and Shadings. - Dibuja el recuadro. Campos y otros datos: Hasta el momento solo hemos definido el "esqueleto" del formulario de prueba, ahora vamos a colocar campos y otros datos. El contador de paginas: Doble click sobre la ventana CONTADOR. Boton derecho, Create, elegir Text. Renombralo como TEXTOCONTADOR. Click en el boton Txt Editor. Agregar el siguiente texto: ,,,,,,La pagina actual es &SFSY-PAGE& de &SFSY-FORMPAGES(Z4.0)& El resultado al probar el formulario sera "La pagina actual es 1 de 1" Campos que vienen de las tablas declaradas como parametros del SmartForm Hay que utilizar el boton + (insertar campos) y poner el nombre del campo entre && Por ejemplo &BDH-DOC_CURRENCY& Desplegar datos en la ventana Main Tipicamente tendremos un programa ABAP que sera el que invoque a el formulario SmartForm y sera en ese programa donde recabaremos los datos que el formulario debera contener. Para este ejemplo usaremos la tabla MKPF como demostracion. Para este ejemplo en una parte del codigo del programa ( programa que se estudiara completo en detalle mas adelante ) se cargaran los datos en una tabla auxiliar llamada int_mkpf la cual sera pasada como parmetro a

6 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

la funcion fm_name que es la funcion encargada de llamar al formulario, la tabla es recibida por el formulario con el nombre gs_mkpf tal cual aparece en este fragmento de codigo:
CALL FUNCTION fm_name TABLES gs_mkpf = int_mkpf EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS.

Por lo tanto el SmartForm debe ser informado de los datos que va a recibir y de cmo posicionarlos en el formulario. Declarar la tabla de entrada de datos al formulario: Doble click en Global Settings Form Interface En la solapa TABLES GS_MKPF LIKE MKPF Declarar el registro auxiliar para hacer el LOOP . . . INTO . . . Doble click en Global Definintions Global Data AUX_GS_MKPF LIKE MKPF Posicionar el registro en la ventana main Doble click en la ventana Main Boton derecho, Create / Table / GS_MKPF En la solapa Data Operand = GS_MKPF into AUX_GS_MKPF, Esto tiene el efecto de generar el codigo : LOOP AT GS_MKPF INTO AUX_GS_MKPF. ENDLOOP. En la solapa TABLE, click en boton Details Line Type = %LINE1 rebautizar a LINEA En la solapa Output Options Style = ZESTILO1 Doble click en Main Area de GS_MKPF

7 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

Boton derecho, Create / Table Line Cambiarle el nombre a LINEA_DATOS Asignarle Line Type = LINEA Doble click en CELL1, renombrar a COLUMNA1 Boton derecho, Create / Text Solapa General Attributes Click en el boton Txt Editor y en el texto agregar: ,,Este es un texto ,,&AUX_GS_MKPF-MBLNR& ,,y ,,&AUX_GS_MKPF-CPUTM& Los tabuladores funcionan tal cual fueron definidos en el estilo seleccionado. Esto despliega el valor del campo MBLNR y de CPUTM. Para que los cabezales de las columnas se impriman en todas las paginas deben ser declarados en la seccion HEADER de la tabla GS_MKPF como un texto al que se le pueden dar atributos en estilo tales como negrita y subrayado. El programa de control del formulario: Basicamente el programa de control de ejemplo hace dos cosas: Reune algunos datos de prueba de la tabla MKPF. Invoca al formulario ZSMART1 creado mas arriba de este documento. 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. * ----------------------------------------------------------------------

8 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

* 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.

Cdigos de barra en un SmartForm


En los smartforms tambin es posible imprimir cdigos de barras 1.- En la transaccin SE73 se define el cdigo de barras, su anchura, altura y rotacin.
La rotacin se refiere a como se De izquierda a derecha De arriba a abajo De derecha a izquierda De abajo a arriba leer el cdigo de barras: : no es necesario rotarlo : Se rota 90 : Se rota 180 : Se rota 270

2.- En la transaccin smartstyles, se define un formato de carcter del tipo cdigo de barras y se asigna como fuente , la fuente que hemos creado en el paso 1 3.- En el smartform, le asignamos como smartstyles el creado en el paso 2. Finalmente, en el elemento de texto, escribes la variable que contenga la informacin del cdigo de barras con el formato de carcter que hayas definido.
9 de 14 21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

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.

10 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

Descripcin de los tipos de nodos


Nodo PAGINA
Un formulario esta compuesto de una o ms paginas, la primera pagina dentro de la estructura en rbol del smartforms es la pagina inicial del formulario, dentro de la pestaa "Propiedades Generales" puedes indicar la pagina subsiguiente, que puede ser otro nodo pagina o ella misma creando un bucle.

Nodo VENTANA Icono ventana


Define un rea dentro de una pagina del smartforms Pueden ser de dos tipos:
- Ventana MAIN - Ventana AUXILIAR

Nodo FUNCION GRAFICA Icono funcin grafica


Se utiliza para mostrar imagenes en el formulario ( Logos de empresa, grficos... ) La imagen debe haber sido importada al sistema Sap a travs de la transaccin SE78 Si al imprimir el formulario, la imagen sale con un fondo gris, aunque se ha importado con fondo blanco, con el PAINT u otra herramienta similar grabar la imagen como BMP a 256 colores

Nodo DIRECCION Nodo TABLA Icono ventana Nodo MASCARA DE EDICION Nodo TEXTO Nodo CARPETA
Sirven para organizar y manejar varios nodos de igual o diferente tipo Puedes, por ejemplo, incluir varios nodos texto para imprimir la direccin de un cliente en el formulario y especificar la condicion para que se impriman en el nodo carpeta.

Nodo ALTERNATIVA
Este nodo, es un nodo de control de ejecucin, dependiendo del resultado de la condicin o condiciones incluidas en la pestaa 'Condiciones' Si se cumple la condicin: Ejecuta los nodos que cuelgan del nodo TRUE Si no se cumple la condicin: Ejecuta los nodos que cuelgan del nodo FLASE

Nodo LINEAS DE COMANDO


Se utilizan los nodos LINEAS DE COMANDO para incluir cdigo ABAP dentro de la ejecucin del rbol del smartforms. Por ejemplo si insertas en la posicin adecuada, puedes calcular totales, o acceder al diccionario en busca de datos para imprimir,

11 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

Nodo LOOP Nodo COMANDO

Traduccion a otros idiomas


Traducir los textos
Para traducir el smartforms a otros idiomas por ejemplo el ingles utilizamos la transaccin SE63 SE63 - Men Traduccin -> R/3 Enterprise -> Otros textos explicativos Elegimos <> Smart Form SAP Como objeto, introducimos el nombre del smartform a traducir asi como el idioma origen y destino Nos aparecer una doble ventana en la superior estn los textos y debajo su valor (en el idioma original) con su respectivo tipografa; completamos el cuadro inferior con el valor que queramos en el idioma destino. Al terminar, grabamos y activamos. No se generara orden de trasporte

Trasportar la traduccin
Para poder transportar la traduccin debemos agregar nosotros mismos la traduccin a una Orden de transporte (algo similar con los textos creados con la SO10). Ejecutar programa RS_LXE_RECORD_TORDER Elegimos Create Transport Request ( ) Ponemos el idioma Destino En Clase de orden elegimos T para que al liberar no se importen automticamente en los otros sistemas o K para que siga la ruta especificada. Grabamos. Esto genera una orden sin objetos. Ahora debemos llenarla. Ejecutar programa RS_LXE_RECORD_TORDER Ponemos el Idioma Destino 'EN' (ingles) El tipo de objeto 'SSF' (Smartform) Y la fecha y autor para restringir bsqueda. Nos aparecen las encontradas, ah deberamos ver la nuestra. La seleccionamos, ejecutamos y nos aparece un log de concluido. Vamos a la SE10 y vamos a ver nuestra orden creada con el respectivo Objeto de traduccin. Listo para ser transportada a QA.

Anexo1. Ejecucin Smartforms


Son necesarias dos funciones para poder ejecutar un smartforms. La siguiente funcin crea dinamicamente el grupo de funciones que generaran el formulario a partir del diseo del smartform que pasamos como parmetro de entrada, como salida tendremos el nombre de la funcin que tenemos que ejecutar para generar el formulario.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING FORMNAME = 'ZNOMBRE_SMARTFORM' IMPORTING FM_NAME = SF_NAME

12 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

EXCEPTIONS NO_FORM = 1 NO_FUNCTION_MODULE = 2 OTHERS = 3.

Para poder enviar variables de tu programa al smartforms y ejecutarlo es mediante la siguiente funcin:
CALL FUNCTION SF_NAME EXPORTING CONTROL_PARAMETERS = CONTROL_PARAMETERS OUTPUT_OPTIONS = OUTPUT_OPTIONS USER_SETTINGS = ' ' W_BELNR = W_BELNR W_BLDAT = W_BLDAT W_NAME1 = W_NAME1 W_STCD1 = W_STCD1 W_VTEXT = W_VTEXT W_STCEG = W_STCEG WL_POLIZA = WL_POLIZA WL_SERIE = WL_SERIE WL_ININUM = WL_ININUM WL_FINNUM = WL_FINNUM WL_SERRT = WL_SERRT WL_NUMDOC = WL_NUMDOC W_BUKRS = P_BUKRS WL_ORT01 = W_ORT01 " TABLES T_RETENCION = T_RETENCION 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.

Las variables que enviamos al smartforms son las que estan resaltadas, logicamente en tu smart forms debes declarar las variables que vas a enviar en Parametrizaciones globales -> interfase formulario. Para poder enviar una tabla debe poseer una estructura definida en el diccionario (SE11), una vez creada tu estructura debes declarar en tu programa la tabla interna con esa estructura:
DATA: BEGIN OF T_RETENCION OCCURS 0. " Tabla para el Formulario INCLUDE STRUCTURE ZRETEN. DATA: END OF T_RETENCION.

En tu smartforms debes declarar la tabla en la pestaa TABLAS del nodo INTERFACE FORMULARIO de la misma estructura que has definido en el diccionario. Existen variables de entrada predefinas ya en smartforms, se encargan de los parmetros de impresin, salida, envi por email, etc. CONTROL_PARAMETERS : Estructura de control, parmetros como forzar la previsualizacin del formulario por pantalla, dispositivo de salida, ejecutar con/sin la ventana de opciones de salida o generar el formulario en una tabla OTF sin salida por impresora o fax. OUTPUT_OPTIONS : Opciones de salida como el nmero de copias, nmero de orden de spool, seleccion de paginas a imprimir, etc... USER_SETTINGS : si le pasamos 'X', tomara por defecto los parmetros y opciones del usuario sap que ejecute el formulario, descartando cualquier opcin especificada con los parmetros anteriores.

Anexo3. Debuggear un smartform


Para debuggear un smartform, la forma mas sencilla es incluir una orden BREAK-POINT dentro de un nodo

13 de 14

21/11/2011 12:12

Smartforms - SAP ABAP en castellano

http://www.sap4.com/index.php?title=Smartforms

codigo. En caso de no poder modificar o crear un nodo texto, seleccionar un trozo de codigo ya existente en un nodo codigo y ejecutar el smartform desde la transaccion SMARTFORMS, esto genera dinamicamente el grupo de funciones del smartforms. Entramos a visualizar el grupo de funciones y buscamos globalmente el trozo de codigo seleccionado anteriormente y colocamos en el un break-point como con el editor de codigo normal.

Anexo3. Cambiar editor de texto en nodos texto


Si MS Word esta asignado como el editor de texto de los nodos textos, podemos volver a utilizar el editor normal para nodos texto:
- Transaccin I18N -> Customizing I18N -> MS Word como editor

En activando / desactivando la casillas, cambiara el editor de textos en los smartforms

Agradecimientos
Gracias a Exequiel Lpez por su manual que se tomo como base para este.

Ejemplos
Ejemplo_opciones_Smartforms Email smartforms adjunto

Enlaces
Manual original: http://www.abap.es/Descargas/Form%20-%20Manual%20Smartforms.pdf Obtenido de http://www.sap4.com/index.php?title=Smartforms Categora: Manuales
Lectores Cdigo de Barras
De Mano, De Mesa, Inalhmbricos TPV Precios Irresistibles! 902-534213
www.enaf.es

Esta pgina fue modificada por ltima vez el 24 feb 2011, a las 07:38. Esta pgina ha sido visitada 18.789 veces. El contenido est disponible bajo los trminos de la GNU Free Documentation License 1.2.

14 de 14

21/11/2011 12:12