Vous êtes sur la page 1sur 23

Conozca cmo crear un Smartform paso a paso en base a un Layout

definido y a un programa impresor creado previamente.

En el tip Cmo crear el programa impresor para la ejecucin de un Smartform en SAP publicado
anteriormente en Teknodatips, fue detallado el procedimiento para crear el programa impresor
necesario para ejecutar el smartform que va a ser creado en este tip.

IMPORTANTE: es necesaria la lectura del tip mencionado para un mejor entendimiento del tip
presente en donde se detallar paso a paso la creacin del Smartform, que ser luego ejecutado
por el programa impresor creado en el tip anterior mencionado.

Pasos para crear un Smartform

a) Pasos para configurar la lgica del Smartform

1) Acceder a la transaccin: SMARTFORMS, escribir el nombre del formulario (Ej. ZPRUEBA) que
se va a crear, y luego presionar el botn Create para empezar a definir las caractersticas del
Smartform.

2) Se llega a la pantalla principal de la transaccin SMARTFORMS. Se observa que la pantalla


est dividida en dos paneles: sobre la izquierda se presenta una estructura de rbol y sobre la
derecha se posibilita realizar modificaciones y visualizar opciones segn lo seleccionado sobre el
panel izquierdo. Es conveniente en este punto Guardar el formulario para asignarlo a un Paquete y
asociarlo ya a una Orden de Transporte:
3) En este paso se definirn los datos de entrada. Para ello seleccionar sobre el panel de la
izquierda, Form Interface y se observar (sobre el panel derecho) que est compuesto por las
solapas: Import, Export, Tables y Exceptions.

4) Slo se utilizarn las solapas 1 y 3. En el apartado Import (1) se detallarn aquellos parmetros
de entrada que tendr el formulario, a excepcin de las tablas que irn en Tables (3).
Los parmetros de entrada se correspondern con los parmetros de salida definidos en el
programa impresor: FLDATE (DATE1), CARRIER(CARRIER1) y CONNECTION (CONNECTION1)
con su correspondiente tipo de dato.

En Export (2) y en Exceptions (4) no ser necesario hacer modificaciones.

5) En Tables (3) habr que definir como parmetro de entrada una tabla interna que se
corresponde con la estructura definida como parmetro de salida en el programa
impresor(GS_SBOOK), como se muestra en la figura siguiente:

6) Seleccionar sobre la izquierda el item Global Definitions que permitir especificar cules sern
las estructuras que utilizar el Smartform para almacenar la informacin que ser pasada como
parmetro.

Para este ejemplo en particular, slo ser necesario aadir bajo la solapa Global Data una Work
Area del tipo de datos de la tabla interna pasada como parmetro, para luego poder recorrerla:

7) Sobre el panel de la izquierda seleccionar Pages and Windows, que definir el aspecto
visual del Smartform y cmo se muestran los datos en l. %PAGE1 New Page corresponde
al nombre de la pgina del formulario (este nombre aparece por defecto, pero puede ser
cambiado). Este ejemplo tendr solo una pgina (la cantidad va a depender del comportamiento de
cada pgina):
b) Pasos para definir el diseo del Smartform

En los pasos anteriores se defini la lgica que maneja el Smartform, los prximos pasos
servirn para entender y definir el diseo del Smartform. Para ello ser necesario
crear diferentes elementos que conformarn el diseo Ventanas (Windows), textos (Texts) y
Plantillas (Templates).

Tener en cuenta que el Layout a definir se corresponder con el ya especificado y utilizado en


el programa impresor definido en el tip anterior "Cmo crear el programa impresor para la
ejecucin de un Smartform en SAP, representado como sigue:
NOTA: Considerar que una Window o Ventana est relacionada con cada recuadro en color
amarillo definido dentro del layout.

Ser necesario en este paso para empezar a definir el diseo, lograr una estructura jerrquica
sobre el panel de la izquierda, similar a la que se muestra a continuacin donde se utilizan los
nombres de esos elementos asignados por default. (Considerar la posibilidad de cambiarlos por
nombres ms representantivos en cada caso):
Para lograr obtener los elementos que conforman la estructura del diseo del Smartform, como
se muestra en la imagen anterior, ser necesario:

1) Para Crear una Window hacer click derecho sobre la pgina (por defecto %PAGE1 New Page),
luego Create y finalmente seleccionar Window.

2) Aparecer la siguiente pantalla, donde se definirn los atributos de esa Window:

NOTA: tener en cuenta el uso de la herramienta Form Painter para asistir al diseo del Layout de
las ventanas:
3) Luego para Crear un Texto dentro de la Window (que ser un ttulo o datos de un campo),
hacer click derecho sobre la Window corriente (por defecto %WINDOW1 New Window1) y luego
seleccionar Text.
As se ver un texto recin creado siguiendo el paso anterior, donde el nombre fue cambiado
a%TEXT7 New Text 7:

4) En este punto ser necesario indicarle al Smartform qu contenido tendr cada texto definido:

Como ejemplo, se asignar el ttulo Flights al texto %TEXT7 New Text7.

Se har de la siguiente manera:

5) Seleccionar sobre el panel izquierdo, %TEXT7 New Text7 (el texto creado anteriormente) y
sobre la pantalla que aparece en el panel de la derecha, hacer click en sobre el
cono remarcado en rojo:
6) Al presionar el cono anterior indicado, aparece la pantalla para ingresar el contenido del
texto, en este caso para el ttulo Flights, se escribe como se muestra en la siguiente imagen:

Una vez escrito el texto, habr que volver hacia atrs

Tener en cuenta que si el contenido del texto es un titulo, se necesita ingresar slo el texto que se
desee (como en el caso de Flights), en cambio si el contenido del texto es un campo (es una
variable, estructura de datos, work area, tabla interna, etc), se lo deber ingresar entre signos
ampersand (&).

Volviendo a referenciar el layout del ejemplo, para definir la segunda ventana:

es necesario ingresar ms de un campo, por lo tanto es conveniente introducir el concepto de


Template que bsicamente permite ingresar campos o ttulos en filas y/o columnas dentro de
una misma ventana (en forma de matriz o grilla).

7) Por lo tanto, se deber crear un Template . Para ello, hacer click derecho sobre la ventana
(%WINDOW2 New Window2), luego sobre Create y finalmente seleccionar Template:
Como resultado aparecer la pantalla con el Template creado:

Con todos los pasos anteriormente especificados, se debera obtener una estructura jerrquica
similar a la siguiente (algunos nombres pueden variar):

Recordar siempre guardar los cambios y activar el Smartform

Se ejemplificar slo cmo configurar el Template de la ventana que


contiene Carrier y Connection Id y sus respectivos campos, es decir cuatro textos en total, dos
corresponden a los titulos y los otros dos a los campos.

NOTA: El Template contenido en la ventana 3 del layout (Date como ttulo y Field 3 como
campo), NO ser ejemplificado en este caso.

Es importante destacar que el template o cualquier otro elemento definido en el smartform,


no podr ser ms grande que la ventana que los contiene (ni en alto ni en ancho), por eso en
el paso siguiente se configurarn las dimensiones y ubicacin de la ventana ya definida en
pasos anteriores, con el objetivo de vincular la ventana con el template contenido en la misma de
acuerdo a lo esperado y as evitar errores.

8) La ventana que contendr al template ejemplificado se configurar de la siguiente manera:

Hacer doble click sobre la Ventana a modificar, y luego seleccionar Output Options

9) Considerar los siguientes datos, para el tamao y la ubicacin de la ventana:


10) Para configurar el template, hacer doble click sobre el template a modificar y seleccionar el
icono (lpiz) para dibujar dos lineas (una vertical y una horizontal), como se muestra en la
siguiente figura:
Luego se har click en en el botn details: y aparecer la pantalla
siguiente, y luego completar de acuerdo a los valores presentados en la siguiente pantalla:

11) En este paso deber crearse un texto por cada ttulo o campo que deba ser ingresado al
template (de acuerdo con la jerarqua definida en la figura), de la misma manera que fue creado
para una Window, adems de ingresar el ttulo o el mapeo para el campo correspondiente.

Se har click en cada uno de los textos que se desprenden del template:

Y a cada uno de ellos se le asignar una fila y una columna segn corresponda:

En el ejemplo, este texto va en la Fila 2 (Line 2) y en la Columna 1(Column 1).

Para las ventanas restantes que contengan templates, el proceso ser el mismo que el detallado
en los pasos anteriores.

12) Finalmente, se detallar cmo trabajar con un tipo de ventana especial llamada MAIN (definida
en el layout de color gris), que contendr a la tabla interna pasada como parmetro. Una vez
definidos los pasos que se detallarn a continuacin , la estructura jerrquica de la
ventana MAINdeber quedar de la siguiente manera:

Definicin de la ventana MAIN

Para lograr el diseo de esa estructura de MAIN, ser necesario seguir los siguientes pasos:

1) MAIN siempre aparece por defecto en la estructura al crear el Smartform, y se visualizar de la


siguiente manera:

2) Dentro de la ventana MAIN ser necesario crear una tabla. Para ello: Botn derecho sobre
MAIN, luego Create y finalmente seleccionar Table:
3) Luego, aparecer la pantalla siguiente en donde, para el ejemplo, se deber cambiar el nombre
de la tabla (campo Tabla), a GS_BOOK y presionar Enter.:

4) Posteriormente, seleccionar la solapa Data:

5) En Data se debern colocar: la tabla interna recibida como parmetro (GS_BOOK) y luego de
INTO, escribir la Work Area que fue definida en Global Definitions (AUX_GS_SBOOK) como se
muestra en la siguiente imagen:

6) Luego, al seleccionar la solapa TABLE, aparecer en la parte inferior de la pantalla un recuadro,


que por defecto contiene %LTYPE1. Hacer click sobre el rectngulo (pasar a color negro) y luego
presionar el botn "Details":

7) Cambiar %LTYPE por LINEA que indica el ancho de la fila (siempre recordar en cada paso es
necesario grabar y activar para comprobar que no hay errores)
8) Luego click derecho sobre Header bajo GS_BOOK, en la estructura jerrquica de la izquierda,
seleccionar Create y finalmente Table Line:

9) Posteriormente, al desplegar Header aparecer la Table Line recientemente creada. Cambiar


el nombre por HEADER y en Line Type seleccionar LINEA:

Se debern repetir los pasos detallados anteriormente tanto para Main Area como para Footer,
tambin visualizados sobre la estructura jerrquica (slo variar el nombre de cada uno)

Se desplegarn tanto Header, Main Area como Footer y de cada uno de ellos se desprendern
sus celdas (llamadas Cell) que son creadas automticamente:
10) Dentro de cada CELL se colocarn los textos correspondientes (realizar el mismo
procedimiento ya explicado anteriormente para las Ventanas). A modo de ejemplo, en la CELL
correspondiente al Header, se colocar un texto llamado %TEXT 9 New Text 9 (Botn derecho
Create Text )

11) En este caso, el texto agregado llamado %TEXT 9 New Text 9, llevar los ttulos de la
tabla que se mostraron anteriormente en el layout. La forma de ingresar informacin dentro del
texto es igual a la detallada anteriormente, salvo que en este caso si fuese necesario dejar
espacios entre campos y textos, se har utilizando doble comas ( ,, ). Tener en cuenta que dos
comas corresponden a un tabulador:

La imagen siguiente muestra la estructura con los textos que fueron agregados a cada componente
(Header, Main Area, Footer)
12) En la estructura jerrquica, Main Area contendr los campos que se corresponden con los
campos de la tabla en el layout. Tener en cuenta que como son campos tiene que ir entre signos
"&" (ampersand).

13) Finalmente, la seccin de Footer (Field 7 en el Layout representado), se ingresar


unicamente un nombre o un texto a eleccin, de la misma manera que se ingresa cualquier
elemento de texto.
Probando el funcionamiento del Smartform
Luego de haber creado el Smartform (siguiendo todos los pasos detallados en el presente
tip), ycontando con el programa impresor (ya creado en el tip anterior: Cmo crear el programa
impresor para la ejecucin de un Smartform en SAP), es posible finalmente testear su
funcionamiento, ejecutndolo.

1) Para ello, ser necesario acceder a la transaccin SE80, selecionar el programa impresor ya
creado en el tip anterior que se lo denomin en el ejemplo ZIMPRESOR.

2) Al presionar F8 (Ejecutar) aparecer la imagen siguiente, mostrando las opciones de


impresinpara imprimir el Smartform creado:
3) Sobre la imagen anterior, al Hacer click en Print Preview, se desplegar la imagen siguiente,
que refleja la salida de la ejecucin del smartform. Considerar que la disposicin de las ventanas
en la salida aqu obtenida puede variar, en consecuencia de lo que no se defini detalladamente
en el tip presente, y depender en ese caso de lo que el desarrollador haya especificado para
completar la definicin del Smartform.
Para tener en cuenta .

Es importante considerar la utilizacin de la herramienta Form Painter que ayuda a defnir la


ubicacin y el tamao de las ventanas. Se recomienda utilizarlo con criterio, porque un mal uso del
mismo puede llevar a errores en el funcionamiento de Smartforms. Debido a esto en el presente
tip se colocaron especficamente las medidas de una de las ventanas.
Una buena prctica es utilizar un mismo patrn de medida para definir todos los elemento del
smartform.

Copyright 2012 - Teknoda S.A.

Especialista ABAP

IMPORTANTE:
Notas tcnicas de SAP ABAP" se enva con frecuencia variable y sin cargo como
servicio a nuestros clientes SAP. Contiene notas/tutoriales/artculos tcnicos
desarrollados en forma totalmente objetiva e independiente. Teknoda es una
organizacin de servicios de tecnologa informtica y NO comercializa hardware,
software ni otros productos.
Si desea suscribir otra direccin de e-mail para que comience a recibir las Notas
Tcnicas SAP, enve un mensaje desde esa
direccin a sapping@teknoda.com, aclarando nombre, empresa, cargo y pas
del suscriptor.

SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP AG. SAP no es
el editor de esta publicacin y no es responsable de la misma en ningn aspecto.
La informacin contenida en esta publicacin ha sido generada por nuestros
especialistas a partir de fuentes consideradas confiables y del ejercicio profesional
cotidiano. No obstante, por la posibilidad de error humano, mecnico, cambio de
versin u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O
PARCIAL SIN CONSENTIMIENTO DE TEKNODA

Reciba por mail los mejores tips, notas tcnicas, tutoriales paso a paso, etc. Los suscriptores
recibirn ADEMAS Quick Reference Charts, material de Workshops, y otros documentos
publicados NO accesibles en el sitio.
Correo

Comentarios

#8 merito 17-01-2014 14:49


muchas gracias por la aportacion es de mucha ayuda
Citar

#7 Salva 09-10-2013 05:18


Muchas gracias, muy bueno.
Citar

#6 Carlos 23-04-2013 11:24


Oye, me sirvi mucho el tutorial, te filicito por tu trabajo. La nico que no espcifica y tuve que averiguarlo por otro
lado es al momento de especificar los campos que van en los text, que como dices hay que ponerlo entre el simbolo
&, sin embargo, esto se debe hacer con el botn insertar que aprece en la barra, de lo contrario solo se mostraria:
&nombre_campo&
Citar

#5 Nikolai 16-04-2013 12:45


Muy bueno el manual Diego, gracias!

tengo dos consultas:


1. en un smartform que tiene definido el mismo tipo de letra para todo el documento, se visualiza diferentes tipos de
letra a travs del mismo, tienes idea cmo puedo solucionarlo? la letra usada es: Arabic Transparent

2. En los recuadros con texto en su contenido, noto que el texto queda pegado en el borde del recuadro y genera
una vista esttica fea. puede ponerse un margen en estos recuadros con borde para que el texto no se pegue a la
lnea de borde.
gracias por el apoyo,

saludos,
nikolai
Citar

#4 Cargueta 15-02-2013 00:26


Excelente!

Sos mostro!
Citar

#3 Andrs 05-10-2012 02:12


muchas gracias por la aportacin es de mucha ayuda
Citar

#2 Raiza 10-08-2012 13:56


Gracias por compartir este tutorial. Excelente amigo!
Citar

#1 Andres 09-08-2012 16:39


Excelente...muchas felicidades y gracias
Citar

Refrescar lista de comentarios

Escribir un comentario

Vous aimerez peut-être aussi