Está en la página 1de 96

SmartForms: Diseño de formularios

Contenido

 Propósito de SmartForms
 Ventajas y desventajas
 ¿Cómo funciona?
 Herramientas
 Componentes
 Tipos de Nodos
 Editor SmartForms
 Editor SmartStyles
 Programa de Impresión
 Carga de Gráficos

1
Propósito de SmartForms

 Todas las empresas necesitan, para su operación periódica, imprimir


documentos con un diseño definido (Facturas, recibos,..)
 SAP provee una amplia gama de diseños de documentos, pero a veces
se necesitan datos adicionales o se necesita un nuevo diseño de
documento.
 Para solucionar estos inconvenientes SAP provee a partir de la versión
4.6c una nueva herramienta de diseño de formularios : SmartForms.
 SmartForms reemplaza a SAPScript (esta herramienta igual se seguirá
utilizando por una cuestión de compatibilidad)

2
Ventajas

Crea y mantiene los formularios en la mitad del tiempo


La interfaz gráfica facilita el uso
No es indispensable poseer conocimientos de ABAP
Publicación Web utilizando XML
Es posible adaptar formularios hechos en SAPScript a SmartForms
en forma automática
Es independiente de Mandante

3
Desventajas

No se pueden recuperar versiones anteriores.

4
SmartForms: Como funciona
Requerimientos

 Formulario - SmartForms
 Define la apariencia y la estructura de del documento
 Puede recuperar datos de la BD (no es muy recomendable)
 Define la secuencia y la lógica de impresión a partir de su estructura
de árbol
 Programa de impresión - ABAP
 Selecciona los datos de la base de datos y/o del usuario y son
enviados al SmartForm como parámetros
 Selecciona un formulario y/o llama al módulo de función generado
por SmartForms
 Puede determinar los atributos de impresión

6
SmartForms

Llamada a Módulo de Función


Selección de BD Smart Form
Selección Posterior
Salida
Activado

Módulo de Función
Programa de ABAP (Generado)
Impresión

Salida (Impresora)

Base de Datos

Descripción del
Recuperación de Datos
Formulario

7
SmartForms: Herramientas
Creación de formularios

Para la creación de formularios se utilizan dos transacciones:


• smartstyles
• smartforms

• Con smartstyles se crea un estilo para el formulario donde se definen tipos


de párrafos, tipos de caracteres, fonts a utilizar, tabuladores, etc.

• Con smartforms se crea el formulario, donde se defienen las ventanas de


las páginas y su contenido, y se utiliza el estilo creado con smartstyles.

9
SmartForms: Componentes
Componentes

La transacción SMARTFORMS permite acceder a


 Form (Form builder)
 Style (Style Builder)
 Text Module

11
Form Builder: Componentes
 Árbol de Navegación contiene todos los elementos que conforman al formulario y la
secuencia de impresión
 Pantalla de Mantenimiento varía de acuerdo al tipo del nodo que se selecciona.
Contiene distintos tabstrips donde se setean las propiedades de cada nodo
 Form Painter permite diseñar el layout de las páginas del formulario. Se pueden
incluir ventanas y gráficos en una página, determinar sus posiciones y elegir los
tamaños de las ventanas
 Table Painter para crear modelos de tablas

Nodo seleccionado

Arbol de Pantalla de Form Painter


navegación mantenimiento

12
Form Builder: Componentes (cont.)

 Dependiendo del orden de los distintos elementos dentro del árbol, se


determina la Jerarquía de la Lógica del Formulario.
 Para seleccionar un nodo en el árbol se debe hacer doble click sobre él.
El sistema actualiza la vista de mantenimiento (en la parte central de la
pantalla) de acuerdo al tipo de nodo.
 Posee menúes de contexto que varían de acuerdo al tipo de nodo, con
las opciones permitidas para cada uno. Las opciones de Cortar, Copiar,
Pegar y Borrar son comunes a todos los nodos.

13
Secuencia de proceso

Se describe a través de nodos en un árbol lógico.


Los nodos se procesan secuencialmente, de arriba hacia abajo

Control
de flujo
Nodo con condición

El nodo sólo se procesa si


se cumple la condición

14
Secuencia de proceso (cont.)

1
Nodo

2
Nodo Final

3
Nodo / Nodo Final con condición

6 Nodo al mismo nivel que nodos 7 y 9

Nodo Predecesor del Nodo 8


7
Sucesor directo del nodo 7
8
9
Sucesor (nodo) del nodo 5

10

15
Pantalla de Mantenimiento

 Dependiendo del nodo seleccionado se despliega una pantalla distinta.


 La pantalla consiste en un conjunto de Tabstrips, cada uno de los cuales
agrupa un conjunto de características del nodo.
 Los Tabstrips de “Propiedades Generales” (características ), “Opciones de
Salida” y “Condiciones” son comunes a todos los nodos.
 En las “Opciones de Salida” se pueden setear recuadros, sombreados del
nodo correspondiente, o bien sobreescribir el Estilo definido por defecto.

16
Pantalla de Mantenimiento (cont.)

17
Form Painter

 Se utiliza para “dibujar” las ventanas que conforman una página.


 Dispone de una regla en la cual se muestra el tamaño de la ventana
seleccionada.
 Cuenta con una barra de herramientas para facilitar el uso, con opciones
de zoom, alinear las ventanas, mostrar/ocultar la grilla, etc.
 Desde el menú opciones se puede configurar parámetros de la regla, el
entramado y el ZOOM.

18
Form Painter (cont.)

Barra de Opciones
Herramientas

Tamaño
Ventana

19
Table Painter

Cuando utilizamos un nodo tipo Tabla o Máscara de Edición se puede acceder


a una herramienta especial:
 Table Painter: permite diseñar el layout de las tablas (tanto
dinámicas como estáticas)

20
Table Painter (cont.)

 Se utiliza para diseñar el formato de salida de datos en forma de tabla.


 Permite dibujar líneas y columnas, insertar, cortar, copiar y pegar líneas,
modificar, partir y borrar celdas.
 Determinar patrones de líneas y bordes para tablas.
 Existe la opción de dibujar la tabla o diseñarla columna x columna, con la
diferencia de que en este caso no se despliega en pantalla completa sino en
la misma ventana de mantenimiento.

21
Formulario
Especifica la apariencia y estructura de un documento de impresión.

• Se compone de páginas, áreas de salida, direcciones, gráficos (logos) y


datos o textos.

• Para crear los diferentes elementos del formulario se utiliza:

- - Form Painter: para posicionar ventanas, gráficos y direcciones en la


página.

- - PC editor: para escribir textos.

- - Table Painter: para crear tablas (estáticas o dinámicas).

22
SmartForms: Tipos de nodos
Tipos de Nodos

Hay dos grupos principales:


 Parametrizaciones globales: para setear propiedades relativas a todo
el formulario (tipo de pagina, estilo por defecto) así como los
parámetros que recibirá la función.
 Paginas y Ventanas: para definir la organización y lógica de impresión
del formulario.

Estos nodos se crean automáticamente al crear un formulario.

24
Nodo Parametrizaciones Globales

 Contiene los siguientes nodos (finales):


 Atributos formulario: contiene propiedades generales del
formulario
 Interfase formulario: se definen los parámetros y excepciones
del módulo de función
 Definiciones globales: permite definir variables, tipos, rutinas y
valores por defecto de variables

25
Atributos formulario - Generales

26
Atributos formulario – Opciones de salida

- Standard Output: el formulario se imprime en la


impresora conectada al sistema SAP.
- XSF: datastream XML que permite utilizar
productos de impresión de terceras partes,
incluyendo la información del formulario y los
datos

27
Interface formulario

Definición
Parámetros (igual
que una función
tradicional)

28
Definiciones globales

Definición de variables globales (por ejemplo, áreas de trabajo


para las tablas internas, etc)

29
Definiciones globales – rutinas FORM

Permite definir subrutinas que pueden ser llamadas en líneas de código.

30
Nodo Páginas y Ventanas

 Define la secuencia de impresión de los elementos que compondrán al


formulario.
 Puede contener únicamente nodos del tipo Página

31
Listado de Nodos

Tipo Nodos sucesores


Página Ventanas, gráficos, direcciones
Ventana Todos los tipos excepto ventanas y páginas
Modelo Todos los tipos excepto ventanas y páginas
Tabla Todos los tipos excepto ventanas y páginas
Texto
Func. Gráfica
Dirección
Comando
Ciclo Todos los tipos excepto ventanas y páginas
Alternativa Automat. crea 2 subnodos (TRUE , FALSE)
Carpeta Todos los tipos excepto ventanas y páginas
Lineas Prog.

32
Nodo Página

 Para crear una página hacer click derecho sobre un nodo página
(por defecto siempre hay una página) y seleccionar Crear Página
 Un formulario puede tener una o más páginas con distintas
estructuras
 El primer nodo Página es el punto de inicio de impresión del
formulario
 En las propiedades se indica cual va a ser la página siguiente, el
formato de salida y si llevará una imagen de fondo
 Pueden contener nodos Ventana, Función Gráfica y Dirección

33
Nodo Página – Propiedades generales

Página
siguiente

34
Nodo Página – Opciones de salida

Simple o doble faz

Orientación vertical u
horizontal

35
Nodo Página – Imagen de fondo

Permite setear una imagen de fondo (p. ej. el logo de la empresa)

36
Nodo Ventana

 Las ventanas son áreas de salidas de datos


 Tienen distintos tamaños y se pueden ubicar libremente dentro de una
página (utilizando el Form Painter)
 Hay dos Tipos de Ventanas principales:
 Main (se continúa en varias páginas)
 Secondary (se imprime sólo en una página)
 Final (se utiliza para detalles que deben ser procesados
después que el formulario completo se haya procesado)
 Copy (se utiliza para hacer páginas como copia u original)
 Puede contener nodos de todo tipo (excepto Página y Ventana)
 Las ventanas solo son asignadas a las páginas. Se debe especificar la
posición y el tamaño de la ventana en cada página.
 Cualquier ventana puede tener tamaño y posición diferente en cada
página, pero la ventana MAIN debe ser del mismo ancho.

37
Nodo Ventana – Propiedades generales

Indicador de Página Principal (sólo


puede haber una por página)

38
Nodo Ventana – Opciones de salida

Determina características de borde y sombreado

39
Nodo Ventana - condiciones

Permite definir condiciones para


mostrar/ocultar ventanas en
forma dinámica

Validez de la condición

40
Nodo Ventana - tipos

 Main Window
 permite mostrar texto y datos que pueden fluir en varias páginas.
Cuando el área de la ventana se llena, el texto fluye
automáticamente a la main window de la página siguiente.
 solo se define una main window en una página.
 Debe tener el mismo ancho en todas las páginas (puede variar en
altura).
 Subwindow
 Permite mostrar texto y datos. El texto no fluye ni se generan saltos
de página. El texto que no entra en el área de la ventana se trunca.

41
Ventana Main

42
Nodo Texto

 Muestran todos los textos que se ven en un formulario (excepto las


direcciones que tienen un nodo específico)
 Tienen distintos usos dependiendo del nodo del que dependen:
 Subventana: Posiciona el texto en una o más páginas.
 Ventana Main: Muestra el texto en relación con los demás textos
de la ventana principal a lo largo de varias páginas.
 Modelo: Son las celdas de las Tablas Estáticas.
 Tabla: Son las celdas de las tablas comunes o dinámicas.
 Encabezado y Pie: Muestra cabecera de columnas y/o totales.
 Evento: Muestra subtotales en la tabla.

43
Nodo Texto - creación

 Para crear un texto se utiliza el menú contextual Crear Texto


 Hay distintos tipos de textos:
 Elemento de Texto: texto del formulario, se utiliza el PC
editor para ingresarlo.
 Módulo de Texto: módulo de texto externo que puede
incorporarse.
 Textos INCLUDE: permite incluir un texto SAPScript .

44
Nodo Texto – PC Editor

Permite pasar
al Editor TXT

45
Nodo Texto - Editor TXT

Texto fijo y símbolos. Los tags


<x></> definen formatos de
carácter

Formato de Párrafo (definido en un SmartStyle)

46
Mostrar datos de tablas internas

• Los datos de tablas internas se leen línea por línea en un loop.

• Se muestran en una ventana main.

• Pueden utilizarse los siguientes tipos de nodo:

- Tabla: Permite determinar el layout, la selección de datos, encabezado y pie


de tabla.

- Ciclo: permite determinar la selección de datos.

47
Mostrar datos de tablas internas - Con un nodo Tabla

Loop de la tabla = Main Area

48
Mostrar datos de tablas internas – con un nodo Ciclo

49
Nodo Tabla

 Muestran datos cargados en tablas internas (ya sean mandadas por


parámetro o cargadas dentro de la lógica del formulario)
 La tabla se procesa en un loop. Se lee cada línea y luego se procesa
 Las tablas pueden tener tamaño variable, y el mismo se desconoce al
momento de procesarla, por eso solo se usan tablas en ventanas MAIN
 Para crear una tabla se hace click derecho sobre un nodo Ventana y se
selecciona Create Table

50
Nodo Tabla : Solapa Tabla

 Permite especificar el Layout de salida de una tabla en el formulario


 En el Control de Tablas se configuran los Tipos de Línea
 Los Tipos de Línea definen:
 cantidad de celdas.
 ancho de las mismas.
 protección contra salto de pagina.
 Tipo de Línea por defecto.

51
Nodo Tabla : Solapa Tabla (cont.)

Ancho total de la tabla

Define un “tipo” de línea: Se especifica cada columna con el ancho


correspondiente. La suma de todas las columnas debe dar el ancho
total de la tabla

52
Nodo Tabla : Solapa Datos

 Permite enviar datos de una tabla interna a nodos tipo Tabla o Loop
 Se ingresa el nombre de una tabla interna y el Work Area (se puede
omitir si la tabla tiene Header Line)
 Los campos “Línea .... A .... “ se usan para indicar los índices
desde/hasta de lectura.
 Se pueden especificar condiciciones WHERE para seleccionar solo una
parte del contenido de la tabla.
 Se pueden especificar campos de ordenamiento. Si la tabla ya está
ordenada, hay que marcar el flag “Clasificación ya disponible”.

53
Nodo Tabla : Solapa Datos

Funciona como la Cláusula


WHERE de un LOOP

Marcar si la tabla está ordenada

54
Nodo Tabla : Solapa Cálculos

 Permite definir eventos al comienzo y final de un nodo (Tabla, Loop,


Sección Compleja)
 Se puede especificar cabecera y pie tanto para final de un párrafo como
para cortes de página
 Son útiles para encabezados de tablas y líneas de totales
 Cuando se define un evento se crea un nuevo nodo, en el cual se
definen los textos a mostrar (con sus propios tipos de línea si fuera
necesario)

55
Nodo Tabla : Solapa Cálculos

Activar el EVENTO

56
Control de flujo

En la estructura de árbol lógica, se puede controlar el procesamiento:

• Con la solapa Output Conditions: el nodo y sus sucesores se procesen


dependiendo de condiciones.

• Usando una condición alternativa: Create -> Flow Logic -> Alternative.

• Usando un loop para procesar salidas repetidamente.

• Usando un comando: Create -> Flow Logic -> Command para determinar
la secuencia de página dinámicamente.

57
Nodo Alternativa

 Permite dividir la secuencia de proceso en dos alternativas, de acuerdo


a ciertas condiciones
 Para crearlo se hace click-derecho en un Nodo Ventana y se elige
Create Flow Logic  Alternative
 No confundir las solapas “General Attributes” con “Conditions” (que es
común a cualquier Nodo). En “General Attributes” se especifica la
condición que se debe verificar para que el proceso siga por uno u otro
camino. En la solapa “Conditions” se especifican las condiciones para
las cuales el nodo se debe procesar o no.

58
Nodo Alternativa (cont.)

Se definen las condiciones

Para cada rama (V / F ) se pueden crear


( o no) los nodos que se necesiten
59
Nodo Líneas de Programación

Este nodo permite ingresar líneas de código ABAP. Para crear un nodo
Create -> Flow Logic -> Program Lines

• En la solapa de General Attributes se indican campos globales como


parámetros de entrada y salida.

• Las líneas de código ABAP sólo pueden usar dichos campos globales.

60
Campos de datos

Permiten combinar datos variables en el formulario

Modos de combinar datos:


• Form interface: permite definir parámetros para poder usar datos de la
aplicación como campos del formulario.
• Global definitions: permite definir campos propios del formulario (por
ejemplo, work areas para mostrar tablas internas).
• System fields: campos predeterminados (fecha, número de página, etc.).

61
Campos de datos - Form interface

• Para parámetros export e import se permiten cualquier tipo de datos. En el


tab tables, sólo pueden indicarse tablas con estructura plana.

• Para asignar el tipo apropiado puede usarse LIKE o TYPE.

62
Campos de datos – Definiciones Globales

Se aplican a todo el formulario. Pueden ser:

• variables o constantes cuyos tipos se encuentran en el ABAP dictionary o se


definen en el formulario en la solapa Types.

• field symbols.

63
Campos de datos – Campos del sistema

&SFSY-DATE& Fecha
&SFSY-TIME& Hora
&SFSY-PAGE& Número de página actual
&SFSY-FORMPAGES& Número total de páginas del formulario.

&SFSY-JOBPAGES& Número total de páginas del trabajo de


impresión.
&SFSY-WINDOWNAME& Nombre de la ventana actual.

&SFSY-PAGENAME& Nombre de la página actual.

&SFSY-PAGEBREAK& Tiene el valor ‘X’ luego de un page break.

&SFSY-MAINEND& Se setea cuando finaliza el procesamiento de


la ventana main de la página actual.
&SFSY-EXCEPTION& Contiene el nombre de la excepción
ejecutada.

64
Campos de datos - Sintaxis

• Los campos son identificados por nombres encerrados entre “&”.

• Los nombres pueden ser de hasta 130 caracteres de longitud y no deben


contener espacios en blanco (aunque para identificar el campo se utilizan los
primeros 32) .

• No hay diferencia entre letras mayúsculas y minúsculas.

65
Campos de datos - Sintaxis (cont.)
&campo+n& n: offset
&campo(n)& n: longitud
&campo(*)& toma la long. del diccionario
&campo(S)& elimina signo
&campo(<)& Muestra el signo a la izquierda del número
&campo(.n)& n: dígitos decimales
&campo(En)& n: exponente
&campo(T)& suprime separador de miles
&campo(Z)& elimina ceros restantes
&campo(K)& Desactiva la rutina de conversión del
diccionario
&campo(I)& suprime valor inicial
&campo(C)& elimina blancos
&campo(R)& alineación a derecha
&campo(Fn)& Reemplaza blancos a izquierda por el carácter n
&campo(L)& Convierte a fecha usando la máscara JPDAT

66
Campos de datos - Incorporación

• Desde la lista de campos a través de Drag&Drop. El campo es insertado en


la posición del cursor de texto.

• Usando la función Include field del PC Editor que agrega un campo


en el texto.

67
Campos de datos - Incorporación (cont.)

Activa / desactiva la lista de campos

Lista de Drag&Drop
campos

68
SmartForms: Editor
El editor SmartForms

Propiedades:
 Este editor permite escribir código, referenciar campos, formatear la
salida línea x línea
 Los formatos de caracteres se seleccionan utilizando el menú
 Permite chequear la sintaxis para los comandos ingresados
 Hay dos editores: el PC Editor y el Line Editor.

70
El editor SmartForms – PC Editor

71
El editor SmartForms – Line Editor

 Los formatos de párrafo se seleccionan haciendo F4 en la columna izquierda (columna


de formato).
 Los formatos de caracteres se seleccionan utilizando el menú.
 Las estructuras de texto especiales se identifican en la columna de formato.

72
Line Editor (Cont.)

 Para crear un párrafo nuevo se debe presionar ENTER. Un * en la columna de


formato indica el formato de párrafo default. El párrafo nuevo tiene el mismo formato
que el precedente. Para insertar una línea nueva en un párrafo se utiliza F6. Una / en
la columna de formato indica nueva línea.

 Para juntar dos párrafos se debe:


1. Usar un espacio en blanco que sobrescribe la columna de formato.
2. Seleccionar Format

 Para borrar líneas en blanco o juntar líneas separadas:


1. Usar espacios que sobrescriban la columna de formato.
2. Seleccionar Format

73
Line Editor- Inserción de texto

 Para insertar texto, ubicar el cursor y presionar Insert.


 Para salir del modo Insert, presionar End insertion.
 Para seleccionar texto, presionar Select o hacer doble-clic sobre el mismo.
 Si se usa el botón Select, se debe ubicar el cursor al comienzo del texto a seleccionar,
presionar el botón de select, luego ubicar el cursor al final del texto y nuevamente
presionar el botón select.
 Para seleccionar una línea completa hacer doble-clic en la columna de formato.
 Al seleccionar texto se habilitan las funciones Cut y Copy, que graban el texto en el
portapapeles.
 Para copiar el contenido del portapapeles, posicionar el cursor y usar la función Paste.
 Para formatear un string:
- ingresar <NN>...</>. NN es el formato de caracter o
- seleccionar Format.

74
Line Editor- Caracteres especiales

 Para suprimir el reconocimiento de caracteres especiales, ingresar <(>...<)>.


 Para mover el texto a la próxima posición de tab, ingresar ,, al comienzo del texto.
 Para agregar una línea de comentario ingresar /* en la columna de formato.
 Para continuar la línea anterior ingresar = en la columna de formato.
 Los símbolos se deben ingresar con &...&.
 Para usar comandos, ingresar /: en la columna de formato. Los comandos no afectan
al formato del editor.

75
SmartForms: SmartStyles
Transacción smartstyles

77
Smartstyles - Componentes

encabezado
párrafos

caracteres

atributos

78
Smartstyles - Encabezado

Permite configurar valores por default para el formulario: formato de


párrafo estándar, identado, espaciados, font y sus atributos, subrayado y color.

79
Smartstyles - Formato de párrafo

Define la apariencia del texto del formulario dentro de un párrafo.

• Espacio entre líneas


• Márgenes izquierdo y derecho
• Alineamiento (izq, derecha, centro, justif.)
• Identación de primera línea
• Tabuladores
• Fuentes de letra
• Flujo del texto: protección de página, párrafo siguiente.

80
Formato de párrafo - Indents and Spacing

Determina si el parráfo se
muestra completo en una
página, evitando que se divida
en un salto de página (sólo en
la ventana main)

Enlaza el párrafo siguiente al


actual evitando que se separen
en un salto de página

81
Formato de párrafo - Font

82
Formato de párrafo - Tabs

83
Formato de párrafo - Numbering and Outline

Nombre del párrafo

- Numera la lista con números romanos,


arábicos o en letras (campo Character).
- Caracteres que se van a mostrar antes
y después del número (ej. paréntesis)
- Para los números arábicos se puede
ingresar una longitud

- Distancia entre el número y el margen


izquierdo de la ventana.
- Formato de carácter para el número
(en caso de ser diferente al del párrafo)
- Activa la numeración en cadena con el
párrafo predecesor.

84
Formato de caracteres

Permite cambiar el tipo de letra dentro de un párrafo.

• Superscript: se imprime como SuperIndice

• Subíndice: se imprime en la parte inferior

• Cód.barras: especifica el tipo de código a imprimir.

• Fuente: define los atributos de la letra

85
Formato de caracteres - Standard

86
Formato de caracteres - Font

87
SmartForms: Programa impresor
Programa impresor

Programa donde se seleccionan los datos que se quieren mostrar en el


formulario.

• Los datos seleccionados en el programa impresor son pasados al


formulario por medio de la interfaz del formulario, definida en el Form
Builder.

• Al activar el formulario, Smart Forms genera un módulo de función. El


programa impresor debe llamar a este módulo para imprimir el formulario.

• Finalmente el programa impresor debe invocar al formulario.

89
Integración entre el programa y el formulario

1. En el Form Builder, se debe llamar a la función Environment  Function Module


Name, y utilizar CTRL-Y y CTRL-C para copiar su nombre.

2. En el programa impresor, definir una variable del tipo RS38L_FNAM para el nombre
del módulo de función generado:

DATA v_fm_name TYPE rs38l_fnam.

3. Llamar al módulo de función SSF_FUNCTION_MODULE_NAME. Este devuelve el


nombre del módulo de función generado:

CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’


EXPORTING
FORMNAME = ‘<form name>’
IMPORTING
FM_NAME = v_fm_name
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
<error handling>
ENDIF.

90
Integración entre el programa y el formulario (Cont.)

5. Llamar al módulo de función generado, mediante la opción CALL


FUNCTION de la función Pattern, y usar el nombre que se copió en el
paso 1. Después, reemplazar el nombre del módulo de función con la
variable v_fm_name definida en el paso 2.
CALL FUNCTION v_fm_name
EXPORTING
...
IMPORTING
...
TABLES
it_mkpf = it_mkpf
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.

91
SmartForms: Secuencia de creación
Secuencia de creación

 Determinar el origen de los datos y la forma en que los mismos


serán pasados al formulario (tablas internas, estructuras, variables)
 Construir el programa.
 Determinar los formatos de párrafo y carácter necesarios 
Crearlos utilizando SmartStyles
 Construir el formulario y activarlo  utilizando SmartForms
 Agregar en el programa de impresión la llamada al formulario.

93
SmartForms: Carga de gráficos
Carga de Gráficos

 Como requisito previo, debemos asegurarnos que el gráfico se halla


cargado en el sistema SAP mediante la transacción SE78
 Para agregar un nodo Función Gráfica simplemente utilizamos el menú
contextual en la estructura de árbol en la que se lo quiere incluir, y
elegir Create  Graphic
 En el campo Nombre de la solapa Propiedades generales, en la ventana
de mantenimiento, ponemos el nombre
 Mediante las solapas en la ventana de mantenimiento podemos cambiar
las propiedades

95