Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Crear
un
Smartform bsico
paso a paso.
www.solutionssap.com
David Hernndez
20/05/2015
Contenido
Introduccin .................................................................................................................................. 2
Definicin del formulario SMARTFORM ........................................................................................ 2
Formateando Texto en el SmartForm ........................................................................................... 6
Introduciendo Grficos en el SmartForm ...................................................................................... 8
Como enviar Datos a nuestro Smartform. .................................................................................. 10
Llamar al smartform desde nuestro programa. ...................................................................... 10
Configurar nuestro smartform para recibir los datos. ............................................................ 11
Configurar nuestro smartform para mostrar los datos........................................................... 11
Ingresando cdigo a nuestro SMARTFORM. ............................................................................... 16
Introduccin
Los formularios SmartForms son una de las ltimas 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 tabuladores, etc, etc.
Otra transaccin para crear el formulario en s 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.
En la izquierda se presenta una estructura de rbol: Este rbol segn se seleccione las
cosas, veremos en la parte intermedia lo seleccionado.
La parte intermedia, que se muestra aqu lo seleccionado en el rbol anteriormente
mencionado.
La parte derecha o tambin llamado FormPainter, en esta zona podemos seleccionar
visualmente las posiciones de nuestro formulario. En caso de que esta zona no la vean
han de pulsar en el botn
FormPainter.
Ahora definiremos los datos de entrada, para ello vamos a seleccionar en nuestro rbol
haciendo doble clic sobre l. Con esto, se nos abrir en la pantalla central la
informacin de los datos de interfaz del formulario, esto significa, que nos mostrar que est
compuesto por las solapas: Import (1) , Export (2) , Tables(3) y Exceptions(4).
Import: Parmetros de entrada a nuestro SMARTFORM.
Export: Parmetros de salida de nuestro SMARTFORM.
Tables: Tablas que se envan a nuestro SMARTFORM.
Exceptions: Errores posibles de nuestro SMARTFORM, utilizada para el control de los
posibles errores que podamos tener en nuestro smartform.
Es posible que necesitemos pasar como parmetro una tabla con una estructura que nosotros
hemos creado. Para eso, hay que hacer varios pasos:
Lo primero que tenemos que asegurarnos de tener una estructura. Para ello, vamos a
crear una estructura en la transaccin SE11.
Una vez que ya tengamos nuestra estructura, iremos de nuevo al Smartform nuestro y
crearemos en la seccin tablas (3) explicado anteriormente, la tabla con la nueva
estructura, de esta forma ya podremos pasar por parmetro la tabla con la estructura
deseada.
Una vez hecho esto, nos mostrar la ventana para la creacin del nuevo estilo, de
forma que para crearlo simplemente hacemos clic derecho con el ratn encima de
y seleccionamos crear Nodo, nos pedir un Nombre, en mi caso usare
"Z1".
Ahora ya creamos nuestro primer estilo, vamos a darle el formato. Hacemos doble clic
en el nuestro formato Z1 y vamos a la pestaa
, aqu es donde
formatearemos el texto. en mi caso he puesto la siguiente configuracin:
Haremos los mismos pasos para conseguir el otro estilo, lo nombrar "
ZHR_PR_SSAP_ESTILO_NEGRITA" y pondr la siguiente configuracin:
Una vez hecho esto, nos dirigimos al formulario y vamos al texto que queremos formatear.
Una vez que estemos en el texto, seleccionaremos
en las opciones del
texto. Ah nos aparecer un campo que dice "Estilos", en este campo es el que tenemos que
introducir el estilo de formato que queremos para nuestro texto, en este caso pondr
"ZHR_PR_SSAP_ESTILO_NEGRITA".
Con esto ya hemos dado formato a nuestro texto. Para verlo ejecutamos el form y vemos que
ya se ha puesto negrita el texto:
El segundo paso es incluirlo en nuestro smartform, para ello creamos una ventana
(una seccin en el smartform) y hacemos lo siguiente:
o En el men seleccionamos segundo botn sobre la pgina y seleccionamos
Window, esto ser la seccin donde introduciremos nuestra imagen.
Una vez creada, hacemos los mismos pasos en la nueva seccin creada.
Esto har que nos salga un nuevo objeto, aqu es donde introduciremos la
nueva informacin, esta informacin ser:
Una vez hecho esto podemos ver que en nuestro Smartform ya ha sido cargada la imagen.
TYPE rs38l_fnam.
la
funcin
que
CALL FUNCTION l_funcion
EXPORTING
TDNAME
TABLES
it_data
it_data2
EXCEPTIONS
formatting_error
internal_error
send_error
user_canceled
OTHERS
nos
guenerar
el
smartform
= V_TDNAME
= it_data
= it_data2
=
=
=
=
=
1
2
3
4
5.
De esta forma, nuestro SMARTFORM recibir las tablas que vamos a pasar mediante la llamada
al smartform en nuestro programa.
Esto crear una tabla la cual podremos modificar a nuestro antojo. Lo primero
que haremos ser crear nuevos estilos de lneas, estas lneas nos permitirn
controlar las columnas, de forma que crearemos lo siguiente:
Formato 1
Formato 2
Formato 3
Para crear los formatos anteriores seguiremos estos pasos:
Hacer doble click en nuestra tabla.
Ir a la pestaa Tabla
Hacer clic en el botn Dibujar Lineas y columnas
Hacer clic derecho en la lnea por defecto %LTYPE1 => Insertar
=>Lnea vaca debajo. Hacerlo dos veces, de forma que creemos tres
lneas.
Una vez hecho esto, nos toca configurar las lneas, para hacer esta
configuracin anteriormente dicha, haremos lo siguiente:
Configuracin de tres columnas
o 1 Segundo botn sobre la lnea => Dividir => Celda
o 2 Posicionarse en una de las celdas divididas y hacer
clic derecho sobre la lnea => Dividir => Celda.
NOTA: Recuerden que pueden modificar el tamao poniendo el cursor en la lnea que
divide, esto har que se muestre un nuevo cursor. Si pulsamos y mantenemos
apretado y movemos, agrandaremos o haremos ms pequea la celda.
3
4
5
6
2
Ahora lo que falta explicar, sera como obtener los datos de las tablas.
Para esto hay que ir al Texto de la columna deseada, donde queramos
poner este dato (como puede ser donde en la imagen anterior aparece
06.05.2014) y asignar lo siguiente:
&it_data-begda& :
o & Para indicar que es una variable, hay que abrir y
cerrar con estos indicadores.
o it_data: indica la tabla donde obtenemos la
informacin
o begda: indica la variable dentro de la tabla de donde
obtenemos la informacin
Con esto, se obtendra la fecha inicial (en este ejemplo), para ver que
campos tiene nuestra tabla, hay que ver la estructura que definimos
en "interfaces formulario" en la pestaa tabla y hacer doble clic en la
estructura, esto har que naveguemos a la estructura. O si sabemos
cmo se llama la estructura, ir a la transaccin se11 y visualizar la
estructura de nuestra tabla.
Segn una variable que se le pasa por parmetro a nuestro smartform asignar valores
a dos variables.
1. Crear lgica de proceso mediante lnea de programa. Esto significa, que SAP nos
permite crear nuestra propia lgica segn las lneas de cdigo que nosotros queramos
programar.
2. Asignar parmetros de entrada y parmetros de salida. En nuestro caso seguiremos la
siguiente configuracin:
a. Parmetros de entrada y salidas sern los mismos. Estos sern las variables
necesarias:
i. T_CARACT = Tabla de caractersticas.
ii. WA_CARACT = Variable para ingresar la caracterstica.
iii. VCARACT1 = Variable para Caracterstica 1.
iv. VCARACT2 = Variable para Caracterstica 2.
v. VCARACT3 = Variable para Caracterstica 3.
vi. VCARACT4 = Variable para Caracterstica 4.
vii. VCARACT5 = Variable para Caracterstica 5.
viii. VALOR1 = Variable de valor para Caracterstica 1.
ix. VALOR2 = Variable de valor para Caracterstica 2.
x. VALOR3 = Variable de valor para Caracterstica 3.
xi. VALOR4 = Variable de valor para Caracterstica 4.
xii. VALOR5 = Variable de valor para Caracterstica 5.
3. Insertar lneas de cdigo necesarias:
clear: VCARACT1, VCARACT2, VCARACT3, VCARACT4, VCARACT5,
VALOR1, VALOR2, VALOR3, VALOR4, VALOR5.
break ssap.
LOOP AT T_CARACT
CASE sy-tabix.
WHEN '1'.
VCARACT1 =
VALOR1
=
WHEN '2'.
VCARACT2 =
VALOR2
=
WHEN '3'.
VCARACT3 =
VALOR3
=
WHEN '4'.
VCARACT4 =
VALOR4
=
WHEN '5'.
VCARACT5 =
VALOR5
=
ENDCASE.
ENDLOOP.
INTO WA_CARACT.
wa_caract-CARACT.
wa_caract-VALOR.
wa_caract-CARACT.
wa_caract-VALOR.
wa_caract-CARACT.
wa_caract-VALOR.
wa_caract-CARACT.
wa_caract-VALOR.
wa_caract-CARACT.
wa_caract-VALOR.
NOTA: Es posible poner breakpoints en este punto del cdigo como aparece en el cdigo
anterior.