Вы находитесь на странице: 1из 50

ARQUITECTURA SMARTFORM

1| Qué es un Formulario?

FORMULARIOS: Son objetos de SAP que se utilizan para crear


documentos que necesitan ser impresos, visualizados por pantalla o
enviados por correo electrónico.

Ejemplos de formularios son:

Facturas, Remitos, Ordenes de compra, Solicitudes de pedido o cualquier


otro documento que queramos crear como formulario SAP.

Veamos un ejemplo de un formulario:


2| Tecnologías SAP para la creación de formularios

SAP posee varias tecnologías especialmente diseñadas para la creación de


formularios. Ellas son:

SAPScripts: es la primera herramienta que creo SAP para el desarrollo de


formularios. No es muy amigable y tampoco muy flexible pero todavía se
continúan utilizando en muchos entornos de trabajo, principalmente donde
encontramos las versiones más antiguas de SAP.

SmartForms: reemplazaron a los SAPScripts a partir de la versión 4.7 de SAP.


Son los más amigables al desarrollador y los más flexibles a la hora de realizar
cambios. Poseen muchas ventajas con respecto a sus antecesores.

AdobeForms: es la última tecnología de SAP en cuanto a formularios. Es


producto de la alianza entre SAP y Adobe.

En este curso nos concentraremos en el desarrollo de formularios SmartForm ya


que son los más utilizados en los entornos reales de trabajo.

3| El modelo Smartform

Un formulario SmartForm está compuesto por dos objetos:

Un programa impresor que es donde se definen los datos que se imprimirán


en el formulario.

Un formulario que es donde se define el layout o disposición de los datos.

Existen dos formas de ejecutar un formulario:

La primera consiste en ejecutar el programa impresor que producirá la


ejecución del formulario.

Otra forma muy utilizada consiste en parametrizar o configurar la impresión,


asociando el programa impresor y el formulario a la ejecución de determinado
evento en el sistema como puede ser por ejemplo la creación de una Orden de
compra en SAP; o sea cuando creamos la Orden de compra se lanzará
automáticamente la impresión del formulario.

La parametrización de los formularios se realiza a través de la transacción


de Customizing SPRO. Estas tareas son responsabilidad de los Analistas
funcionales SAP y no de los programadores.

4| Transacciones utilizadas para la creación de formularios


SmartForms

Para la creación de formularios SmartForm utilizaremos las siguientes


transacciones:

SMARTFORMS: para crear el layout o disposición de los datos

SMARTSTYLES: para crear los estilos que utilizaremos en el SmartForm. Los


estilos también pueden crearse a través de la transacción SmartForms.

SE38: para crear el programa impresor que ejecutará el formulario.

5| Estilos

Todo formulario SmartForm utiliza estilos que pueden ser estándar de SAP o
pueden ser definidos por nosotros. En los estilos se definen formatos de
párrafo que contienen información sobre sangrías, espaciados, configuración de
fuentes, texto, colores, numeración y formatos de caracter que se utilizan para
asignar atributos especiales de salida a las secciones de texto dentro de un
párrafo.

Veamos como crear un estilo. Para ello accedemos a la transacción


SMARTSTYLES, ingresamos en Style el nombre Z_PRUEBA_ESTILO y
presionamos el botón Create tal como vemos a continuación:
En la solapa Standard Settings vemos los valores por defecto de un
SmartStyle. Si no se asignan otros valores de formatos de párrafo y formatos de
caracter al formulario, el sistema utilizará estos valores por defecto.

Creación de un formato de parrafo

Para crear un formato de párrafo clickeamos en la carpeta Paragraph Formats,


presionamos el botón derecho del mouse y seleccionamos la opción Create
Node. En la siguiente ventana de diálogo asignamos un nombre al formato y
presionamos continuar.

Luego asignaremos una descripción al formato de párrafo.

En la solapa Idents and Spacing podremos setear la alineación del formato de


párrafo, el espacio del párrafo al margen izquierdo y derecho, el espacio entre
líneas entre otras cosas.

Todas las medidas que utilizamos en los SmartForms pueden estar expresadas
en las siguientes unidades de medición:

Unidad de medida Descripción


CH Caracteres
LN Líneas
CM Centímetros
MM Milímetros
IN Pulgadas
PT Puntos
TW Twips(1/20)

Es ampliamente recomendable la utilización de CM o MM y no de las


otras unidades de medición ya que elevan la dificultad de comprensión del
formulario.

En la solapa Fonts podremos designar un tipo de letra, el tamaño de las letras


expresado en puntos, si queremos utilizar negrita, cursiva o ambas, subrayado y
color de la letra.

En la solapa Tabs podremos crear tabuladores para comenzar los textos en


distintas columnas de un párrafo.

Por último en la solapa Numbering and Outline podemos crear numeradores


como los que utilizamos en MS Word.
Creación de un formato de caracter

Para crear un formato de caracter clickeamos la carpeta Character Formats,


presionamos el botón derecho del mouse y seleccionamos la opción Create
Node. En la siguiente ventana de diálogo asignamos un nombre al formato y
presionamos continuar.

Luego asignaremos una descripción al formato de caracter. En la solapa


Standard Settings podemos agregar subíndices, superíndices y códigos de
barras.
Los códigos de barras se mantienen a través de la transacción SE73.

En la solapa Fonts asignamos los atributos a la fuente.

Finalmente activamos el estilo Z_PRUEBA_ESTILO.


CONSTRUCCION DEL PROGRAMA IMPRESOR

1| Construcción del programa impresor de un formulario


Smartform

Los objetivos principales del programa impresor de un formulario SmartForm son:

La selección de los datos que se mostrarán en el formulario.

La invocación o ejecución del formulario.

Si bien dentro de un formulario Smartform podremos agregar sentencias


de código y selecciones de datos, es sumamente conveniente minimizar el
código que se coloca en los formularios debido a una cuestión de
performance y facilidad de mantenimiento futuro de estos objetos.

2| Selección de los datos

Crearemos el programa ABAP ZPRUEBA_SMARTFORMS y dentro de este la


subrutina SELECCION_DATOS para modularizar la selección de los
datos. Utilizaremos la tabla base de datos ZTABLA_USUARIOS con la cual
trabajamos en el Curso Programador ABAP Nivel Inicial. Los datos de esta
selección los almacenamos en la tabla interna TI_USUARIOS, que tiene la misma
estructura que la tabla base de datos ZTABLA_USUARIOS pero sin el campo
mandante.

Los alumnos que no hayan realizado el curso anterior pueden descargar la


estructura de la tabla base de datos ZTABLA_USUARIOS del siguiente link:
3| Invocación del formulario

Vamos a crear el formulario Smartform ZFORMULARIO_PRUEBA ingresando


a la transacción SMARTFORMS y presionando el botón Create tal como vemos a
continuación:

Luego volviendo al programa impresor ZPRUEBA_SMARTFORMS, vamos a


utilizar dos módulos de función para ejecutarlo. Primero la
función SSF_FUNCTION_MODULE_NAME para averiguar el nombre de la función
SAP que ejecuta el formulario. El nombre de esta función lo almacenamos en la
variable V_NOMBRE_FORM tal como vemos en el siguiente código:
Luego ejecutaremos la función cuyo nombre contiene la variable
V_NOMBRE_FORM pasándole como parámetro de entrada/salida la tabla interna
de usuarios TI_USUARIOS que obtuvimos de la tabla base de datos
ZTABLA_USUARIOS en la subrutina SELECCION_DATOS.

En los secciones EXPORTING y TABLES de la función contenida en la


variable V_NOMBRE_FORM es donde se especifican todos los parámetros
que enviaremos al formulario.
CONSTRUCCION DEL PROGRAMA: CONFIGURACIÓN GENERAL, PÁGINAS Y
VENTANAS.

1| Configuración general de un Smartform

Cuando ingresamos a la transacción SMARTFORMS, lo primero que vemos dentro


de la carpeta Global Settings son los atributos del formulario.

Aquí podremos asignar una descripción a nuestro formulario. En este caso


escribiremos "Formulario de Usuarios".

En la solapa General Attributes vemos el idioma de creación del formulario,


que será EN (Ingles) y podremos seleccionar los distintos idiomas en los que
traduciremos el formulario.

Uno de los puntos más fuertes de los formularios SmartForms es que


pueden ser traducidos a varios idiomas con un mínimo de trabajo.

En la solapa Output Options configuraremos las opciones que vemos en la


siguiente imagen:
En Page Format dejaremos la opción por defecto que es DINA4 que es el
formato de página correspondiente a una hoja tamaño A4. En Characters per
Inch dejaremos la opción por defecto que es 10,00. En Lines per Inch también
dejaremos la opción por defecto que es 6,00. En Style escribiremos el nombre
del estilo Z_PRUEBA_ESTILO que creamos en la primer lección de la unidad. El
Output format será el que venga por defecto.

El segundo ítem dentro de la carpeta Global Settings es el Form Interface.


Aquí especificaremos las variables, estructuras y tablas que recibe como entrada
el formulario. En nuestro caso completaremos la solapa tables con la tabla
TI_USUARIOS. Para especificar el tipo de la tabla tendremos que crear el TYPE
TABLE ZTT_USUARIOS, en la transacción SE11, con la estructura ZUSUARIOS,
que es igual a la tabla ZTABLA_USUARIOS pero sin el mandante, como vemos a
continuación.
Luego presionamos Create y marcamos la opción TYPE TABLE.

Ingresamos una descripción y la estructura ZUSUARIOS que previamente


creamos de iguales campos que la tabla ZTABLA_USUARIOS a excepción del
mandante. Finalmente activamos.
Por último, utilizamos el TYPE TABLE en la declaración de la tabla
ZTABLA_USUARIOS.

El tercer ítem dentro de la carpeta Global Settings son las Global


Definitions. Aquí vemos las solapas Global Data, Types, Field Symbols,
Initialization, Form Routines y Currency/Quant.Fields.

Veamos el objetivo de cada una de ellas:


Global Data: aquí especificaremos todas las variables, constantes, estructuras,
tablas internas, etc, que utilicemos en el formulario.

Types: aquí declararemos los tipos que utilicemos en el formulario.

Field Symbols: aquí declararemos los Field Symbol que utilicemos en el


formulario.

Initialization: aquí declararemos el código que necesite ejecutar el formulario,


incluidas llamadas a subrutinas, para por ejemplo obtener determinados datos de
tablas SAP. Recordemos que en lo posible debemos concentrar toda la selección
de datos en el programa impresor.

Form Routines: aquí declaremos el código de todas las subrutinas que


hayamos especificado en la solapa Initialization.

Currency/Quant.Fields: aquí especificaremos los campos de importe que


utilicemos en el formulario.

Los formularios SmartForms al igual que los programas ABAP deben


activarse.

2| Elementos que componen a un formulario Smartform

Un formulario SmartForm estará compuesto por:

Páginas

Ventanas

Gráficos

Elementos de Texto

Módulos de Texto

Direcciones

Tablas

Condiciones
Loops

Líneas de código

Comandos

Carpetas

Durante el resto de está lección y las siguientes lecciones de esta unidad


veremos en detalle como trabajar con cada uno de estos objetos en un
formulario Smartform.

3| Páginas

Un formulario consiste en una o más páginas. La primera página es la de inicio


que ya existe cuando se crea el formulario. Debemos cambiar su nombre y
descripción ya que por defecto ABAP le asigna un nombre genérico que este caso
es %PAGE1. Lo cambiaremos por PRIMERA con la descripción "Primera
página".

En la solapa General Attributes podremos especificar cual será la siguiente


página, en caso de existir una, luego de la PRIMERA. Si no existe otra página
dejamos la principal como la siguiente.

En la solapa Output Options especificaremos el formato de la página, que


puede ser Portrait (vertical estándar) o Landscape (apaisado) y características
de la impresión en la opción Print mode.

En la solapa Background Picture podremos agregar una imagen de fondo al


formulario.

Si no completamos la opción Output Mode con el tipo de salida, el sistema


ignorará el gráfico de fondo.

Para agregar imágenes de fondo al formulario debemos subir el archivo a


SAP. Este procedimiento lo veremos en detalle cuando describamos los
gráficos en los formularios Smartform.
4| Ventanas

Las ventanas son áreas de salida para los datos que mostramos dentro de las
páginas en el formulario. Cuando creamos un formulario nuevo automáticamente
se generará la ventana MAIN dentro de la página %PAGE1.

Existen varios tipos de ventanas pero se utilizan dos generalmente: la principal o


MAIN Window que puede ser una sola por página y las secundarias o
SECONDARY Window que pueden existir tantas como necesitemos.

Las principales características de las ventanas son:

Se pueden posicionar ventanas en cualquier parte de una página, aún


superpuestas unas con otras.

Se puede utilizar la misma ventana en varias páginas de un formulario de


forma tal que los mismos contenidos sean mostrados en todas páginas

Se puede elegir un tamaño distinto para cada ventana en cada página excepto
en la ventana principal.

En la ventana principal se muestra información que puede abarcar varias


páginas. Esto sucede cuando se completa la ventana principal de la primera
página entonces el sistema continua mostrando el contenido de la ventana
principal en la siguientes páginas. En conclusión se produce un corte de página
automáticamente. Esto no sucede con las ventanas secundarias.

La ventana principal puede tener el mismo ancho en cada página pero puede
variar su altura.

Si se crean ventanas secundarias con el mismo nombre en varias páginas, el


sistema muestra los contenidos de esa ventana secundaria en cada página.

Para crear una nueva ventana, presionamos el botón derecho del mouse sobre el
nombre de la página y seleccionamos la opción Create/Window tal como
vemos a continuación.
Cambiamos el nombre y descripción genéricos de la ventana por el nombre
TITULO con la descripción Titulo del documento.

En la solapa General Attributes configuramos el tipo de ventana.

En la solapa Output Options especificaremos las dimensiones de la ventana,


posición en la página, marcos y sombras. Marcando la opción Lines With se
generará el recuadro en las ventanas por más que no se imprima ningún
contenido. Para la ventana TITULO que acabamos de crear los valores de las
dimensiones serán los siguientes:
Para configurar las dimensiones y posición de la ventana en la página también
podremos utilizar el Form Painter. Para acceder a esta herramienta presionamos el
siguiente botón del menú:

Aquí veremos la siguiente ventana en la pantalla que nos va a permitir cambiar


las propiedades de las ventana en forma muy sencilla.
Para configurar el Form Painter en forma detallada accedemos al
menú Utilities/Settings.

En la solapa Conditions podremos configurar condiciones para la visualización


de la ventana. Las condiciones las especificaremos en la siguiente pantalla:
También podremos determinar de imprimir la ventana solo en los casos que se
especifican en los siguientes checks:
CONSTRUCCION DEL PROGRAMA: TEXTOS, VARIABLES Y CAMPOS

1| Textos

Para crear un texto en un formulario presionamos el botón derecho del


mouse encima de la ventana en donde queremos crear el texto y seleccionamos la
opción Create/Text tal como vemos a continuación:

También en este caso cambiaremos el nombre y descripción genérico que asigna


ABAP.

Existen cuatro tipos posibles de textos. Ellos son:

Text Element

Text Module

Include Text

Dynamic Text

A continuación vamos a ver en detalle cada uno de ellos.

A excepción de la información que vemos en la solapa General Attributes que va


a depender del tipo de texto seleccionado, el resto de las solapas es común a los
cuatros tipos de textos.

Utilizaremos la solapa Output Options para definir el estilo, los marcos y


sombras tal como vimos en las ventanas.
En la solapa Conditions declararemos las condiciones para la visualización del
texto al igual que explicamos con las ventanas.

Text Element

Cuando creamos un texto, este se creará por default como Text Element. Vamos
a crear un Text Element dentro de la ventana TITULO con el texto "Usuarios del
sistema" tal como vemos a continuación.
Si marcamos el texto con el puntero del mouse y cambiamos los valores que
aparecen en las listas de Formatos de párrafo y Formatos de caracter
podremos modificar el layout o disposición del texto. En el siguiente caso elegimos
el formato de caracter C3.

Text Module

Los Text Module se utilizan para almacenar textos en el sistema que se quieren
usar frecuentemente en los formularios. Esto hace más simple el mantenimiento
de los textos en los formularios.

Para crear un Text Module ingresamos a la transacción SMARTFORMS, marcamos el


radiobutton Text Module, ingresamos el nombre del Text Module que en este caso
será ZTM_LEYENDA y presionamos el botón Create.

Luego completamos la descripción del Text Module con "Leyenda formulario".

En la solapa Management ingresamos el nombre del estilo que utilizaremos, que


será Z_PRUEBA_ESTILO.

Finalmente en la solapa Text ingresamos en el editor el siguiente texto que


deseamos que se visualice al final del formulario, cambiando el formato de párrafo
y formato de caracter para modificar el layout del texto.

Ahora para utilizar el Text Module que acabamos de crear vamos al formulario
ZFORMULARIO_PRUEBA y dentro de la ventana PIE_PAGINA que creamos en
el ejercicio práctico de la lección anterior, creamos un texto. Cambiamos el valor
que aparece en la opción Text Type por Text Module e ingresamos en Name el
Text Module ZTM_LEYENDA que acabamos de crear.
Podemos forzar el idioma en el que queremos que se visualice un Text
Module ingresando el mismo en la opción LANGUAGE.

Si marcamos el checkbox "No error if no text exists" evitaremos que


se produzca un error en tiempo de ejecución en caso de que no exista un
Text Module referenciado.

Si marcamos la opción "Always copy style from text module" se


grisará la opción para ingresar el estilo en el Text Module.

Include Text

Esta opción de textos se utiliza para aquellos textos que fueron creados con la
tecnología Sapscripts que describimos en la lección "Arquitectura Smartform".

Para crear, modificar y visualizar los Include Text utilizaremos la transacción SO10
cuya pantalla vemos a continuación.
Para incluir un Include Text en un Smartform debemos especificar un Text Name,
un Text Object, un Text ID y un idioma.

No es conveniente la utilización de Include Text. En su lugar utilizar Text


Modules.

Dynamic Text

Los Dynamic Text se utilizan cuando queremos imprimir un texto que es variable y
que se definirá en tiempo de ejecución. Este texto va a estar almacenado en una
variable que será definida en las definiciones globales del formulario o vendrá por
parámetros.
2| Impresión de variables en textos

Para que un Smartform pueda distinguir entre un texto literal que hallamos escrito
en un Text Element y una variable de la cual queremos imprimir su contenido,

debemos utilizar el botón para insertar campos en el editor.

Al presionar el botón veremos la siguiente ventana de diálogo en donde podremos


introducir campos entre & tal como vemos a continuación.

Luego veremos el campo insertado de la siguiente manera:

De esta manera al momento de ejecutar el formulario se visualizará el contenido


de la variable V_PAIS.

Las variables que utilicemos de este modo deben haber sido declaradas
previamente en el sistema.
3| Listado de campos

Si presionamos el botón del menú Fields list on /off que vemos a continuación
, se presentará en el extremo inferior izquierdo de la pantalla un menú
compuesto por las siguientes carpetas:

Import Interface: dentro de esta carpeta veremos todas las variables de


entrada del formulario.

Export Interface: dentro de esta carpeta veremos todas las variables de salida
del formulario.

Global Data: dentro de esta carpeta veremos todas las declaraciones de datos
realizadas en el formulario.

System Fields: adentro de esta carpeta veremos las variables del sistema que
podemos utilizar dentro de nuestro formularios.

Para imprimir el texto "Página X de XXX" dentro de la ventana NRO_PAGINA,


utilizaremos las variables del sistema SFSY-PAGE y SFSY-FORMPAGES tal como
vemos a continuación.
CONSTRUCCION DEL PROGRAMA: TABLAS, LÍNEAS DE CÓDIGO Y
GRÁFICOS

1| Tablas

Podemos crear una tabla para mostrar sus registros en un formulario Smartform.
Para ello creamos el objeto TABLE presionando el botón derecho del
mouse encima de la ventana donde queremos crear la tabla y seleccionamos la
opción Create/Table. Luego veremos las siguientes subcarpetas creadas:

Al igual que con las páginas, ventanas y textos asignamos un nombre


relacionado con el objetivo que cumplirá la tabla reemplazando el nombre
genérico de ABAP.

Lo que visualizamos a la derecha es el Table Painter. Con el podremos


determinar:

El número de líneas y columnas

El alto de cada línea

El ancho de cada columna

La alineación de la tabla en la ventana

Cómo y donde mostrar las líneas separadoras o marcos

El color de filas y columnas


En la solapa Tables también vemos el botón Details con el que
podremos configurar en forma manual lo que realizábamos a través del Table
Painter entre otras cosas más. Si lo presionamos veremos:

Nuestra intención será mostrar en esta tabla, los datos de la tabla


ZTABLA_USUARIOS que pasamos por parámetro. Para ello crearemos un Line
Type que contenga una columna para cada campo de la tabla de usuarios que
mostraremos en el formulario. Así crearemos el Line Type L1 con la siguiente
configuración:
En la solapa Data asignaremos la tabla interna TI_USUARIOS que recibe de
parámetro de entrada el formulario junto con la estructura ST_USUARIOS que
utilizaremos para recorrer la tabla interna y que declararemos en las Global
Definitions como del tipo ZUSUARIOS que contiene los mismos campos de la
tabla base de datos de usuarios con excepción del mandante.

También podemos especificar condiciones para recorrer la tabla en la ventana


WHERE Condition y el ordenamiento de la tabla interna en la ventana Sort
Criteria.

En la solapa Calculations podremos determinar cálculos a realizar con los


campos de la tabla que estamos recorriendo.

En la solapa Output Options especificaremos que vamos a usar el estilo


Z_PRUEBA_ESTILO.

Finalmente en la solapa Conditions podemos determinar condiciones para la


visualización de la tabla al igual que haciamos con las ventanas.

Una vez que terminamos de crear la tabla vamos a asignar los Line Type a las
subcarpetas HEADER y MAIN AREA. Para ello presionamos el botón derecho
del mouse encima de la subcarperta HEADER y seleccionamos la opción
Create/Table Line.

A continuación seleccionamos el campo Line Type L1 y automáticamente


se generará dentro de la fila que acabamos de crear la cantidad de columnas que
especificamos en el Line Type L1.

Ahora cambiamos las descripciones genéricas de cada una de las columnas


y asignaremos el estilo Z_PRUEBA_ESTILO a cada columna.

Dentro de cada una de las columnas crearemos un Text Element que


utilizaremos para completar con cada una de las descripciones que mostrará el
listado en la cabecera.
Luego haremos lo mismo que hicimos con la subcarpeta HEADER con la
subcarpeta MAIN AREA. Dentro de cada una de las columnas que se generaron
crearemos un Text Element que utilizaremos para mostrar el contenido de cada
campo de la tabla de usuarios.

Luego presionamos el botón continuar en la ventana de diálogo.


Este mismo procedimiento que realizamos con el campo DNI lo haremos con el
resto de los campos de la tabla interna de usuarios.

2| Líneas de código en los Smarforms

Podemos insertar líneas de código ABAP como un objeto dentro de un Smartform.


Estas líneas pueden ser utilizadas por ejemplo para calcular un total, verificar el
valor de una variable, etc.

Para crear una línea de código presionamos el botón derecho del mouse encima
de la ventana o carpeta en donde queremos crear el código y seleccionamos la
opción Create/Flow Logic/Program Lines. Luego veremos la siguiente
pantalla:
Dentro de la solapa General Attributes podemos ver las siguientes tablas:

Input parameters: aquí declararemos todas las variables de entrada que se


utilicen en el código que escribiremos. Estas variables deben haber sido
declaradas previamente en las Global Definitions.

Output parameters: aquí declararemos todas las variables de salida que se


utilicen en el código que escribiremos.

En el editor que se encuentra en la parte inferior de la pantalla introduciremos el


código ABAP.

Para verificar la sintaxis del código que escribamos y en general todo el


formulario utilizaremos la opción del menú Form/Check.

3| Gráficos

Podemos agregar fácilmente gráficos a nuestros formularios


smartform. Utilizaremos la transacción SE78 para importar, administrar, transportar
y visualizar gráficos.

Los formatos de gráficos soportados son archivos .BMP y .TIF.

Para importar un gráfico accedemos al menú Graphic/Import. Luego


ingresamos la ruta, nombre del archivo y elegimos el tipo de archivo Blanco y
Negro o Color.
Por último presionamos continuar y habremos subido el gráfico al servidor. Para
probar que el gráfico se ha subido correctamente lo visualizamos presionando el
botón de vista preliminar.

Si queremos incluir el gráfico que acabamos de subir al servidor en una orden de


transporte presionamos el botón Transport y introducimos el número de orden en
la ventana de diálogo que aparece en pantalla.
Ahora vamos a utilizar el gráfico en nuestro formulario. Para ello presionamos el
botón derecho del mouse encima de la ventana LOGO y seleccionamos la opción
Create/Graphic.

En la solapa General Attributes completamos los siguientes campos:

Name: con el nombre del archivo.

Objects: con Graphics que corresponde al tipo bmap.

Id: con BMAP.

Luego elegimos el color de la imagen y finalmente podremos graduar el tamaño


del gráfico asignando una resolución determinada con el campo Resolution.

LECCIÓN: VIDEO - CHEQUEO, PRUEBA Y UTILIZACIÓN DEL TABLE


PAINTER EN LOS SMARTFORMS
CONSTRUCCIÓN DEL FORMULARIO: CONTROL DEL FLUJO, DIRECCIONES,
CARPETAS Y TRADUCCIONES

1| Control del flujo

Dentro de la estructura del árbol de objetos que vemos a la izquierda de la


pantalla en la transacción Smartforms, existen varios opciones que nos permiten
controlar el procesamiento del formulario. Ellos son:

ALTERNATIVA

Se utiliza para nodos o objetos alternativamente incluyendo los sucesores de


este. Para crear una Alternativa presionamos el botón derecho del mouse encima
de la ventana correspondiente y seleccionamos la opción Create/Flow
Logic/Alternative. A continuación veremos los siguientes nodos:

En la solapa General Attributes especificaremos la condición que determinará


el camino que tomará el procesamiento.

Luego dentro de los nodos TRUE y FALSE crearemos los objetos necesarios para
continuar con el procesamiento.
Si la condición es verdadera, el sistema procesará el nodo o objeto
verdadero. Caso contrario, se procesara el nodo falso.

LOOPS O BUCLES

Se utilizan para leer datos de una tabla interna línea a línea. Dependiendo de
como estén relacionados los nodos o objetos sucesores estará abierta la
posibilidad de procesar los datos siguientes. Para crear un Loop presionamos el
botón derecho del mouse encima de la ventana correspondiente y seleccionamos
la opción Create/Flow Logic/Loop. A continuación veremos los siguientes
nodos:

Al igual que con las tablas, en la solapa Data ingresaremos el nombre de la tabla
interna que recorreremos junto con una estructura del mismo tipo que la tabla.

También podemos especificar condiciones para recorrer la tabla en la ventana


WHERE Condition y el ordenamiento de la tabla interna en la ventana Sort
Criteria.

Utilizaremos la solapa Events para definir eventos al comienzo y al final de un


nodo (carpeta, párrafo complejo, tabla, bucle), en donde se muestran los
contenidos adicionales.
La solapa Eventos es especialmente útil para mostrar encabezados de
tablas y líneas de totales.

En la solapa Calculations podremos determinar cálculos a realizar con los


campos de la tabla que estamos recorriendo.

En la solapa Output Options especificaremos que vamos a usar el estilo


Z_PRUEBA_ESTILO.

COMANDOS

Utilizaremos un comando cuando queramos pasar a una nueva página en el


formulario.

La página a la cual se quiere saltar debe existir. Se puede ir a una nueva página
sólo mientras se estén mostrando los contenidos de una ventana principal.

Para crear un Comando presionamos el botón derecho del mouse encima de la


ventana principal y seleccionamos la opción Create/Flow Logic/Command. A
continuación veremos los siguientes nodos:

En la solapa Atributos Generales, si marcamos el check Go to New Page


tendremos que especificar la página.
CONDICIONES DE SALIDA

Todos los objetos que creamos presentan la solapa de Condiciones. Aquí


podremos suprimir el procesamiento en base al cumplimiento de determinadas
condiciones.

Si la condición es verdadera, el sistema procesará el nodo o objeto. Si la


condición es falsa, el sistema ignorará el procesamiento de ese objeto o
nodo y de todos los sucesores de este.
2| Direcciones

Podremos crear un objeto o nodo de direcciones el cual nos permitirá utilizar las
direcciones que son almacenadas en la tabla de base de datos ADRC con un
formato determinado de acuerdo a las reglas postales del país del remitente.

Para crear una DIRECCION presionamos el botón derecho del mouse encima de
una ventana y seleccionamos la opción Create/Address.

Luego completaremos los siguientes campos que aparecen en la solapa General


Attributes:

Type: indica el tipo de dirección.

Address Number: es el número de dirección del maestro de direcciones


ADRC.

Person Number: si el número de dirección no pertenece a una organización


entonces podemos completar este campo.

Luego podremos especificar otras configuraciones adicionales en el marco


Aditional Address Specifications.
3| Carpetas

Mientras más extenso se vuelva un formulario, menos claro se torna la jerarquía


de nodos en la estructura jerárquica. Para evitar esto, se pueden combinar
nodos relacionados agregándolos en un nodo carpeta.

Para crear un nodo carpeta, presionamos el botón derecho del mouse encima del
nodo en la estructura de árbol y seleccionamos Create/Folder.

Luego ingresamos un nombre único para el nodo y una descripción.


Para asignar otros nodos a la carpeta, usar “Arrastrar y Soltar” para
incluirlos en el nodo carpeta o insertar nuevos nodos como sucesores.

4| Traducciones de textos

Se pueden traducir a otros idiomas todos los textos que se visualizan en los
formularios, en los estilos y en general en cualquier programa ABAP.

Para realizar la traducción de los textos utilizaremos la transacción SE63.

Para traducir los Smartform seleccionaremos la opción del menú


Translation/Abap Objects/Other Long Texts.

En la ventana de diálogo que se presenta en pantalla abrimos la carpeta FS Forms


and Styles y hacemos doble click en la opción SSF SAP Smart Form para
traducir los textos de los formularios.
Si queremos traducir los textos de los estilos seleccionamos la opción STYL
Syles.

Cuando se crea un formulario o Text Module, el lenguaje principal o de


origen es el de creación.

En la siguiente pantalla introduciremos los campos:

Object Name: aquí pondremos el nombre del formulario.

Source Language: es el lenguaje de origen o de creación.

Target Language: es el lenguaje al que queremos traducir el formulario.

Finalmente presionamos el botón Edit, escribimos la traducción y guardamos los


cambios.

Es importante aclarar que debido a limitaciones de la versión de prueba con


la que trabajamos no podremos realizar las traducciones.

Luego si trabajamos en un ambiente de trabajo real donde vamos a necesitar


pasar las traducciones que acabamos de crear a otros ambientes, tendremos que
agregar las mismas a una orden de transporte. Tenemos dos formas de realizar
esto:

Ejecutando el programa estándar RS_LXE_RECORD_TORDER.

Agregando en forma manual cada traducción a la orden de transporte mediante la


transacción SE10.

LECCIÓN: VIDEO - EJECUCIÓN DE UN FORMULARIO SMARTFORM

Вам также может понравиться