formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfmarcar form...

79
Formularios 1-79

Upload: others

Post on 17-Apr-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 1-79

Page 2: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 2-79

Page 3: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 3-79

Lección 1

Crear formular io

Los Formularios sirven para diseñar informes, son utilizados, por ejemplo para

Notificaciones de Empresa, Facturas, Cartas, Certificados, etc.

Para iniciar SAPscripts y crear o modificar un formulario podemos seguir dos

caminos:

1. Se puede acceder por el Menú Herramientas -- Imprimir Formularios -

Sapscript - SE71 – Formulario

Page 4: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 4-79

2. Ingresar la transacción SE71 – Form Painter

En este punto, tanto podemos crear un formulario nuevo , o

visualizar y modificar uno que ya existe.

Se informa del idioma en el que estará escrito el texto.

Page 5: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 5-79

Y cómo hemos elegido CABECERA, los datos que vamos a definir en la cabecera son

las propiedades generales de nuestro formulario ZFORM.

En el campo definiremos brevemente el

formato que se va a crear.

A continuación seleccionaremos que nos presentará

la siguiente pantalla para que podamos definir el formato, la orientación, el tipo y

tamaño de letra, etc.

Page 6: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 6-79

Cuando pulsemos enter, nos obligará a introducir una PAGINA INICIAL y un

PARRAFO DEFECTO. Podemos seleccionar una página ya existente o crear una

nueva.

Crear Página

Para cada formulario se ha de definir al menos una página.

Seleccionar poner el nombre de PAGINA y su Significado y en el menú

hacer Tratar --- Crear elemento

Page 7: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 7-79

En opciones Form Painter se desplega un formulario para diseño del documento y

una ventana dónde introducimos las características del formulario que creamos.

Page 8: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 8-79

Hemos de introducir los atributos de página: Tratar -- Otros Atributos

Desde el menú de la Transacción: Tratar -- Página - Otros atributos

Page 9: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 9-79

En esta pantalla se inserta el nombre de la página que queremos crear y la

descripción de la misma.

Utilizando el pequeño icono que hay en la ventana de página nos enseñaría

también esta ventana y podríamos definir los atributos del formulario igualmente.

Page 10: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 10-79

Existen 3 maneras para crear una página nueva:

1) Desde el menú de la Transacción: Tratar -- Página - Crear

2) Pulsar el botón derecho del Ratón y elementos de texto.

Page 11: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 11-79

3) Shift + F4

En todos los casos nos crea una página nueva.

Cuando ya tenemos la página, hemos de crear ventanas, son el espacio dónde

trabajaremos para diseñar los formularios, que es dónde realmente se sitúan los

elementos.

Por cada página puede haber diferentes ventanas y un formulario consta de una o

más páginas.

Crear ventana

Las ventanas representan áreas que se posicionarán sobre las páginas.

Para crear una ventana se sigue un procedimiento similar al de crear página. Hay

que seleccionar la pestaña

Desde el menú de la Transacción: Tratar -- Ventana - Crear - Ventana

Principal ó Ventana Variable. La ventana principal es la que contendrá los datos

principales del formulario.

Page 12: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 12-79

Por cada ventana hay que definir los atributos que tendrá e ir diseñando en el

formulario.

Page 13: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 13-79

Se ha creado una ventana para para el texto, a continuación creamos una para

el logo y otra para el destinatario.

Page 14: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 14-79

Crear Párrafo

Los párrafos sirven para organizar el texto dentro del formulario.

Para crear un párrafo se hace a través de con lo que

definiremos la asignación, tabuladores, tipo de letra,…

Una vez creado se verá de la siguiente manera:

Page 15: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 15-79

Utilizando las siguientes teclas, se pueden definir todos los atributos para el

formato:

Finalizado todo el proceso, hemos de volver a la Cabecera seleccionando y

volviendo a ya podremos informar de la página que

hemos creado y del párrafo por defecto. Recordar que la Página inicial es

obligatoria.

Page 16: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 16-79

Ahora ya podemos grabarlo y activarlo utilizando el MENU.

Page 17: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 17-79

Programa de Impresión

Una vez hemos hecho la selección general de los datos, se necesita un programa de

impresión que prepara el formulario.

Dentro del programa se van haciendo llamadas a una función, “WRITE FORM”, que

va escribiendo una ventana-página. Es como si fuera imprimiendo los datos de

programa que existan en esa ventana, en cada momento que sea llamada.

Es el programa que creará el formulario y le pasa toda esta información definida

para que un SAPscripts pueda enseñarlo.

************************************************************

* Programa: ZCARTA_PGM.

* Consultor ABAP: Caterina Lombardo

************************************************************

REPORT ZREPORT_ATG.

*===================================================

========

* Tablas

*===================================================

========

*Las tablas ITCPO,TOA_DARA,ITCPP son necesarias para el

SapScript.

TABLES: SPFLI,ITCPO,TOA_DARA,ITCPP.

*===================================================

========

* Variables

*===================================================

========

DATA: V-FORM(14),

Page 18: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 18-79

V_SCRIPT.

*===================================================

========

* Tablas internas

*===================================================

========

DATA: BEGIN OF T_SPFLI OCCURS 0.

INCLUDE STRUCTURE SPFLI.

DATA: END OF T_SPFLI.

*===================================================

========

* Selection screen

*===================================================

========

SELECTION-SCREEN BEGIN OF BLOCK DATA WITH FRAME.

PARAMETERS:

P_CONNID LIKE SPFLI-CONNID.

SELECTION-SCREEN END OF BLOCK DATA.

*===================================================

========

* Start-of-selection

*===================================================

========

START-OF-SELECTION.

*En esta variable guardamos el nombre de nuestro formulario.

V-FORM = 'ZFORM'.

*Obtenemos todos los campos de la tabla SPFLI y los

Page 19: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 19-79

guardamos

*en nuestra tabla interna.

SELECT *

INTO TABLE T_SPFLI

FROM SPFLI

WHERE CONNID EQ P_CONNID.

*===================================================

========

* End-of-selection

*===================================================

========

END-OF-SELECTION.

*Cuando se termina la selección de datos, abrimos nuestro

formulario.

PERFORM ABRIR_SAPCRIPT.

*&---------------------------------------------------------*

*& Form ABRIR_SAPCRIPT

*&---------------------------------------------------------*

* Descripción

* Enviamos Datos al Formulario

*----------------------------------------------------------*

FORM ABRIR_SAPCRIPT.

*Parámetro impresión, salida inmediata.

ITCPO-TDIMMED = '*'.

*Parámetro impresión, borrar tras salida.

ITCPO-TDDELETE = '*'.

Page 20: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 20-79

*Parámetro impresión, tiempo de permanencia en SPOOL.

ITCPO-TDLIFETIME = '7'.

*Visualización de impresión.

ITCPO-TDPREVIEW = 'X'.

IF V_SCRIPT EQ SPACE.

*Con esta función abrimos el formulario.

CALL FUNCTION 'OPEN_FORM'

EXPORTING

FORM = V-FORM

LANGUAGE = 'S'

OPTIONS = ITCPO

ARCHIVE_INDEX = TOA_DARA

DEVICE = 'PRINTER'

DIALOG = 'X'

EXCEPTIONS

CANCELED = 01.

*Si hay algún error, salimos.

IF SY-SUBRC NE 0.

EXIT.

ENDIF.

V_SCRIPT = 'X'.

ENDIF.

*Hacemos que nuestro formulario empiece.

CALL FUNCTION 'START_FORM'

EXPORTING

FORM = V-FORM

Page 21: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 21-79

LANGUAGE = 'S'.

*Llamamos a la página y a su ventana página.

LOOP AT T_SPFLI.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'PAGE1'

WINDOW = 'MAIN'

EXCEPTIONS

OTHERS = 01.

ENDLOOP.

ENDFORM.

Diseño de formulario

Una vez tenemos el programa y hemos definido los datos, volvemos a nuestro

modelo para hacer el diseño del formulario con .

En el menú seleccionar Opciones - Form Painter.

Page 22: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 22-79

Marcar Form Painter gráfico.

En el menú de la transacción elegir formato de pagina y

.

Aquí también podemos ir diseñando el formulario, creando ventanas y asignándole

tamaño y atributos.

Para volver al modo de edición solamente hay que desmarcar el Form Painter

Gráfico.

Page 23: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 23-79

Para rellenar nuestro formulario con texto, hemos seleccionar Texto.

Podemos seleccionar el párrafo que hemos creado poniéndolo en el recuadro de

Form. Párrafo.

Escribimos nuestro texto y si hemos de utilizar alguna de la variables del programa,

están han de ir entre los signos &, Por ejemplo: &T_SPFLI_CONNID&

Si quisiéramos poner un texto como negrita, primero deberíamos grabar el código,

de manera que hemos de volver y grabar .

Page 24: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 24-79

Seleccionar para crear un formato de párrafo B y Significado

NEGRITA.

Page 25: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 25-79

Después elegir y marcar Negrita.

Volviendo al texto de nuestro formulario, como queremos que la variable que

hemos colocado salga en negrita y mantener P1 como formato de párrafo,

pondremos el carácter <B> y </> como en la siguiente ventana:

Page 26: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 26-79

También queremos crear una caja para mostrar los datos de nuestra variable y

además crearemos una tabulación para el párrafo P1:

Volvemos a , seleccionamos el párrafo P1 y marcamos

Informamos de la posición, la medida y la alineación. Volvemos al texto y creamos

la caja para la variable. El código es como sigue:

Page 27: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 27-79

Explicación del código:

Posición XPOS

Ancho WIDTH

Alto HEIGHT

Borde FRAME

Para ejecutar el formulario hemos de volver al editor de ABAP y seleccionar

ejecutar.

Nos mostrará la pantalla de impresión dónde le informaremos de la impresora,

copias, etc.

Ejercicio práctico con Editor de SAPscripts

I. Crear un nuevo formulario de nombre Z_EJER1_FRM.

II. Salvar y activar el formulario.

Escoger SAVE

En la ventana de Entrada de Catálogo Objeto seleccionar Objeto Privado

Local.

Elegir Activar.

III. Crear el programa para ejecutar el formulario de nombre Z_EJER1_PGM

IV. Ejecutar el programa Z_EJER1_PGM para tu nombre de formulario

Elegir Visualizar Pantalla

En el siguiente diálogo de ventana elegir Impresión Previa.

V. Hacer múltiples modificaciones a tu formulario:

Page 28: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 28-79

a. Cambiar el texto de la carta. Es importante usar la línea del

editor y el PC Editor. Hacer el cambio en uno y visualizar en el

otro. Para usar los dos editores utilizar Goto -- Cambiar Editor.

Usar las siguientes intrucciones:

- Insertar

- Seleccionar

- Copiar

- Cortar

- Pegar

b. Cambiar la dirección en el formulario

c. Suprimir el número de página en la primera página

d. Mover la FECHA de Ventana a la ventana DIRECCION

e. Crear un formato de párrafo con texto justificado y en negrita.

Añadir texto utilizando un nuevo tipo de texto.

f. Usar un estilo de fuente negrita para el campo número de vuelo

mencionado en la carta.

Aplica este formato de carácter en el PC editor y visualízalo con el

editor de línea.

g. Añade una nueva columna llamada descuento. Define nuevos

tabuladores para el formato de párrafo apropiado. Entra el descuento

en la columna.

Page 29: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 29-79

Solución al ejercicio práctico con Editor de SAPscripts

I. Crear un nuevo formulario de nombre Z_EJER1_FRM.

Escoger Herramientas - SAPscripts - Formulario

Entrar el nombre del nuevo formulario

Elegir Crear

Entrar una Descripción

II. Salvar y activar el formulario.

Elegir SAVE

En la ventana Crear entrada de Catálogo de Objeto elegir Objeto Local.

Activar el formulario elegido Formulario -- Activar.

III. Crear el programa para ejecutar el formulario de nombre

Z_EJER1_PGM

Elegir Sistema -- Servicios -- Reporting

Entrar el nombre del programa y elegir ejecutar

Entrar el nombre del formulario y elegir Visualizar Pantalla

En la siguiente ventana de diálogo elegir Impresión Previa

VI. Ejecutar el programa Z_EJER1_PGM para tu nombre de formulario

Elegir Visualizar Pantalla

En el siguiente diálogo de ventana elegir Impresión Previa.

VII. Hacer múltiples modificaciones a tu formulario:

a. Cambiar el texto de la carta. Es importante usar la línea del

editor y el PC Editor. Hacer el cambio en uno y visualizar en el

otro. Para usar los dos editores utilizar Goto -- Cambiar Editor.

Usar las siguientes intrucciones:

- Insertar

- Seleccionar

Page 30: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 30-79

- Copiar

- Cortar

- Pegar

Seleccionar usar Form Painter Gráfico.

En el menú elegir Herramientas -- Sapscripts -- Formulario y en

opciones -- Form Painter

Volver al formulario en Cambio de Modo

Elegir Informe

En el diálogo de ventana, selecciona la ventana MAIN

Elige TEXTO

Usa las siguientes funciones en los editores:

- Insertar

- Seleccionar

- Copiar

- Cortar

- Pegar

Activar el formulario elegido Formulario -- Activar y probar la

selección Formulario -- Verificar

b. Cambiar la dirección en el formulario

Cambia la dirección en tu formulario.

Marca la ventana DIRECCION

Elige Texto

Marcar cambios

Para activar el formulario elegir Formulario -- Activar y probar la

selección Formulario -- Verificar

c. Suprimir el número de página en la primera página

Volver al Form Painter Gráfico.

Page 31: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 31-79

Hacer marcar en la PRIMERA página.

Marcar en la ventana PAGENO.

Elegir Formulario -- Change página informe y Delete

d. Mover la FECHA de Ventana a la ventana DIRECCION

Volver al Form Painter Gráfico.

Hacer marcar en la PRIMERA página.

Seleccionar la Ventana FECHA con el ratón

Presionar el botón izquierdo del ratón y mover la ventana FECHA

hasta el mismo nivel de la ventana DIRECCION.

Para activar el formulario elegir Formulario -- Activar y probar la

selección Formulario -- Verificar

e. Crear un formato de párrafo con texto justificado y en negrita.

Añadir texto utilizando un nuevo tipo de texto.

Marcar la vista de párrafo seleccionando Goto -- Formato de

Párrafo

Para crear un nuevo párrafo elegir Editar -- Crear Elemento

Entrar dos caracteres clave y una descripción

Poner la alineación en JUSTIFICADA

Seleccionar Fuente activar impresión negrita y una familia fuente

Volver a la lista de informe con Goto -- Informe

Editar los elementos de texto en la ventana MAIN anterior

Insertar un nuevo párrafo

Posicionar el cursor en el párrafo y usa el ratón para seleccionar el

formato de párrafo creado nuevamente.

Elegir Goto -- Editor marcar el editor de línea

Activar el formulario elegido Formulario -- Activar y probar la

selección Formulario -- Verificar

Page 32: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 32-79

f. Usar un estilo de fuente negrita para el campo número de vuelo

mencionado en la carta.

Aplica este formato de carácter en el PC editor y visualízalo con el

editor de línea.

Editar los elementos de texto en la ventana MAIN anterior

Doble clic en el número de vuelo en cada línea marcada

Escoger formato de carácter negrita

Ir al editor de línea para ver como ha aplicado esto al formato de

carácter

g. Añade una nueva columna llamada descuento. Define nuevos

tabuladores para el formato de párrafo apropiado. Entra el descuento

en la columna.

Edita los elementos de texto en la ventana MAIN anterior

En la cabecera de línea después del precio inserta un tabulador y

entrar “Descuento”

Ir al Editor de Línea. El tabulador aplicado es doble coma (“)

Cambiar al PC Editor

Insertar un tabulador y entrar descuentos para severas líneas de

artículo

Elegir Salto

Seleccionar Goto -- Formato de Párrafo para ir al mantenimiento del

párrafo

Poner párrafo IH

Modificar los tabuladores elegidos y entrar su propia alineación y

posición para la columna descuento

Hacer lo mismo para el párrafo II

Activar el formulario desde Formulario -- Activar y probar la

selección Formulario -- Verificar

Page 33: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 33-79

Page 34: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 34-79

Lección 1

Introducción

Los formularios permiten la impresión de documentos con un diseño adecuado a

las necesidades de cada organización para su posterior impresión o envío via fax o

e-mail.

A partir de la release 4.6C, SAP ofrece una nueva herramienta para el

procesamiento de formularios: SAP Smart Forms. Esta herramienta está diseñada

para crear y mantener documentos de impresión masiva en los sistemas SAP.

SAP Smart Forms ofrece las siguientes ventajas:

Creación y mantenimiento de documentos de forma más rápida

Adaptación de documentos sin necesidad de conocimientos previos sobre

programación debido a una interfaz con el usuario muy gráfica

Integración total con las diferentes soluciones SAP

Alto rendimiento para impresiones masivas

Independencia de la plataforma

Soporte multilenguaje

Cuando se crea un formulario para una aplicación, se quieren incluir datos en en la

aplicación del formulario. La arquitectura de SAP Smart Forms separa la

recuperación de datos en la aplicación de la definición del formulario.

Page 35: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 35-79

En un Smart Form se describe:

La disposición del documento (posición de los elementos en cada página)

Los elementos que se quieren mostrar en el documento (textos, gráficos,

direcciones, tablas, etc…)

La lógica del formulario que se utiliza, por ejemplo, para leer los datos que se

recuperan desde tablas internas, para introducir condiciones, para controlar el

flujo del proceso.

La interfaz del formulario para transferir datos del programa de aplicación a la

definición del formulario

Cuando se activa el Smart Form, el sistema genera un módulo de funciones. Tan

pronto como el programa de aplicación llama al módulo de funciones, el Smart

Form utiliza la interfaz del módulo para transferir todos los datos de las tablas

previamente seleccionados para imprimir el formulario de acuerdo a su descripción.

También se pueden seleccionar datos directamente desde el Smart Form.

Page 36: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 36-79

Los pasos a seguir para la generación de un formulario con SAP Smart Forms son

los siguientes:

Ajuste del formulario.

Ajuste del programa de aplicación, en caso de ser necesario recuperar

información adicional o modificar algún criterio relevante.

Modificaciones de customizing.

El proceso de generación es el siguiente:

1. La aplicación determina, a través del customizing, que programa debe ser

llamado. Dicho programa se encarga de recuperar la información necesaria.

2. La aplicación determina, a través del customizing, que SAP Smart Form debe ser

utilizado. A continuación, se llama el correspondiente módulo de función y se lanza

el proceso del formulario. La interfaz del módulo de función se rellena con los datos

leídos.

3. Cuando se lanza el procesamiento del formulario, el procesador de formularios se

lanza automáticamente en background. Este proceso se encarga de formatear la

información de acuerdo a las especificaciones del formulario.

Page 37: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 37-79

Lección 2

Form Bui lder : Construcc ión de formular ios

Para iniciar la aplicación Smart Forms usaremos la transacción SMARTFORMS. O

desde el menú inicial Herramientas\Imprimir\Formularios\Smart Forms. Desde la

pantalla inicial podemos trabajar con formularios, estilos de fuente y módulos de

texto. También podemos crear formularios Smart Forms basados en SapScript

mediante el menú Utilidades\Migrar Formulario Sapscript.

Al trabajar con formularios se inicia el SAP Form Builder (transacción

SMARTFORMS) , esta aplicación está dividida en tres áreas:

Árbol de navegación (izquierda): Muestra la jerarquía de los elementos que

componen el formulario. Esta jerarquía y sus posiciones es la que representará

el resultado final del formulario.

Pantalla de Mantenimiento (centro): Donde podemos modificar los atributos

del nodo seleccionado en el árbol de Navegación.

Form Painter (derecha): Donde realizamos el diseño del formulario, podemos

insertar ventanas, direcciones y gráficos.

Page 38: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 38-79

Todos los elementos de un formulario están representados con un nodo en el árbol

de navegación. Los nodos inferiores heredan los atributos de los nodos de niveles

superiores (por ejemplo, el estilo).

Colgando del nodo raíz (formulario) siempre encontraremos dos nodos:

• Parametrizaciones globales, incluyendo

Atributos del formulario

Interfaz del formulario, con los campos que han de ser

rellenados por el programa de aplicación o que deben

retornarse al mismo.

Definiciones globales, donde pueden definirse campos

adicionales a usar en el formulario.

• Páginas y Ventanas.

Page 39: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 39-79

En los Atributos del Formulario del árbol de navegación tenemos:

• Propiedades Generales: se presenta información acerca del autor y

fecha de creación del formulario, clase de desarrollo y los atributos de

idioma donde podemos indicar a qué idiomas permitimos que se

traduzca el formulario.

• Opciones de salida o Edición: Opciones modificables acerca del

formato de página, estilo de letra, modo de salida y dispositivo. Puede

asociarse un formato de página por defecto. Debe asociarse un estilo al

formulario.

Cuando modifiquemos un formulario debemos guardar los cambios y activarlo, si no

existe ningún error se creará un módulo de función al que llamaremos desde

nuestro programa de Control. Para saber el nombre de dicho módulo de función

iremos al menú: Entorno\Nombre del módulo de funciones.

Muchas veces necesitamos datos variables en los formularios, por ejemplo, la fecha

actual, datos de tablas en forma dinámica o puede que necesitemos definir

condiciones para la secuencia de proceso de los nodos.

Page 40: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 40-79

Existen diferentes tipos de datos en un formulario:

Parámetros llamados desde la interfase, son datos que se pasan al

formulario desde el programa de aplicación y al revés.

Datos globales se pueden usar en todos los nodos

Campos de sistema, por ejemplo la fecha actual o el número de página

Datos locales, creados en las líneas de programa.

Para llamar a un formulario SmartForm desde un programa debemos ejecutar el

módulo de función del formulario. Este módulo de función recibe y retorna

parámetros, tablas y excepciones. ( Como todos los módulos de función ).

Los parámetros de Import son leídos por el programa de aplicación. Existen

parámetros definidos por defecto. Los parámetros por defecto contienen todos los

datos de control del formulario; impresora destino, copias, formato de salida, etc...

Todos los parámetros definidos llevaran los datos definidos por el programa. Todos

los parámetros definidos por la interfase son globales, es decir, los datos son

visibles por todos los nodos del formulario.

Se utiliza la Interfase del Formulario del árbol de navegación para definir

parámetros de entrada, de salida, tablas y excepciones. Por defecto la interfase

contiene varios parámetros estándar. El programa de aplicación proporciona los

datos que se quieren utilizar en el formulario.

Page 41: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 41-79

En la interfase de formulario hay cuatro pestañas:

Export -> parámetros que se envían del programa al formulario.

Import -> parámetros que se retornan desde el formulario al programa.

Tables -> tablas con datos que enviamos desde el programa al formulario.

Exceptions -> variables para control de errores.

Todos los parámetros se les debe asignar tipo. El sistema permite los siguientes

tipos:

Tipo ABAP (C, N, D, T, X, I, P, F, STRING, XSTRING).

Tipo definidos en dictionary.

Elementos del diccionario de datos.

Se permite asignar valores de inicio por Defecto.

En la parte de Definiciones Globales, se pueden definir campos y variables

propias, que podrán ser utilizadas en cualquier parte del formulario. Se usan como

áreas de trabajo de tablas, loops, estructuras, etc,...

Page 42: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 42-79

Podemos definir tipos de datos para usar como referencia en el formulario. También

podemos declarar variables o bien hacer referencia a los tipos del diccionario. La

definiciones se pueden verificar.

La opción de Inicialización de los datos globales permite definir su propio código

ABAP. Este se ejecuta antes que el sistema procese la primera página. Esto es muy

útil para inicializar valores. Podemos recibir y retornar datos.

Se pueden definir tipos diferentes de datos, en este apartado podemos crear

nuevas estructuras, hacer referencia a tipos del diccionario y realizar declaraciones

con los tipos convencionales. También es posible crear field-symbols con las

asignaciones (TYPE, LIKE, TYPE REF TO).

Cada formulario tiene, al menos, una página. Una página está representada por un

nodo en el árbol de navegación. Haciendo doble-click sobre un nodo

correspondiente a una página aparecen las opciones disponibles que son

relevantes. Cada página tiene un nombre técnico y una descripción. El carácter ‘%’

es usado por SAP Form Builder para generar nombres de manera automática. Por

tanto, no debemos usar dicho signo en el nombre técnico de una página. Se pueden

definir una o varias páginas con diferentes layouts para un documento.

Page 43: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 43-79

La página superior en el árbol (1ª página del documento) es la que se procesa en

primer lugar. La siguiente página puede determinarse de manera estática (en los

atributos de una página) o dinámicamente, basada en condiciones. En función del

volumen de información, una página puede ser procesada más de una vez en un

formulario.

En las Propiedades de Página podemos configurar las siguientes opciones:

• Propiedades Generales

Siguiente página, por defecto es la misma que tratamos.

Tipo de Numeración de página automática: deberemos

indicar el formato que queremos (letras, números, etc...).

Modo: indicar si queremos aumentar el contador de página,

inicializar, etc...

• Opciones de Edición

En el apartado atributos de impresión podemos especificar si la

impresión en la hoja será vertical o apaisada, el tamaño del papel

(ejemplo DINA4) y podemos especificar impresora y modo de

impresión.

Page 44: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 44-79

• Imagen de Fondo

Podemos insertar como fondo de formulario una imagen, siempre

y cuando la imagen esté disponible en el sistema. Deberemos

indicar el nombre de la imagen y el formato. Por defecto, es el

objeto GRAPHICS y el ID BMAP (bitmap)-> mapa de bits.

También podemos indicar si la imagen es en color o en blanco y

negro.

En el apartado Atributos de edición podemos indicar la resolución

de la imagen, el modo de salida y la orientación horizontal o

vertical.

En el modo de salida se puede determinar si se quiere que la

imagen solamente se visualice al trabajar con el Form Builder o si

también debe ser impresa.

También debemos determinar la posición horizontal y vertical en

relación con los límites de la página.

Page 45: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 45-79

Para poder mostrar información en un formulario, deben crearse áreas de salida

adecuadas (ventanas) en las diferentes páginas relevantes. Las áreas de salida de

que disponemos son:

Ventanas: utilizadas para mostrar texto y datos.

Ventanas de dirección (ADDRESS Windows), para formatear direcciones

de manera sencilla.

Ventanas de gráficos.

Las diferentes ventanas se representan como nodos en el árbol de navegación.

Desde el árbol de navegación podemos realizar acciones de arrastrar y soltar, y

podemos insertar diferentes tipos de nodos. Si ubicamos una ventana en diferentes

páginas, los cambios efectuados en un nodo, afectan a todos los demás (dado que

el nombre técnico es el mismo). Si ubicamos una misma ventana varias veces en la

misma página, el sistema crea copias con nombres técnicos diferentes.

Page 46: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 46-79

Hay dos tipos de ventana: ventana principal (main window) y ventanas

secundarias (secondary windows). En la ventana principal o main se ubicarán

texto y datos que puedan ocupar más de una página (el sistema controla la ruptura

de página, de forma que cuando un área main se llena, se pasa a escribir en el área

main de la siguiente página). Sólo puede haber una ventana MAIN por página. En

las ventanas secundarias, el texto y los datos se muestran en un área predefinida

(no hay saltos de página). Si el texto no cabe, será truncado.

En las Propiedades de Ventana encontraremos tres pestañas con diferentes

funciones:

• Propiedades Generales: Podemos chequear todas las ventanas de forma

independiente para asegurarnos de que están libres de errores, para ello nos

situaremos en la pestaña Propiedades Generales de pantalla, indicaremos si

es la ventana principal o no, y haremos click en el botón verificar.

• Opciones de Edición: Aquí podemos especificar la posición de la ventana

respecto a la página. Podemos dibujar, modificar y borrar ventanas desde el

Form Painter. Para determinar la posición de ventanas tenemos disponibles

diferentes unidades de medida. También podemos enmarcar las ventanas

con líneas de grosor indicado y sombrearlos si es necesario.

Page 47: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 47-79

• Condiciones: Pueden especificarse condiciones para la impresión de la

ventana. Por ejemplo, imprimir solo en la primera página o en la última,

imprimir un texto para un determinado proveedor y otro texto para un

proveedor diferente, etc.

Utilizaremos el Form Painter para chequear o modificar el layout de un formulario.

Desde el Form Builder, podremos decidir visualizar u ocultar el Form Painter.

Para ejecutar el Form Painter usaremos el botón de la caja de Herramientas de

aplicación. El Form Painter siempre muestra la página seleccionada en el árbol de

navegación, e incluye las subáreas y ventanas que ésta contenga. Para editar

cualquier elemento que contenga la página seleccionada, debemos hacer clic sobre

el mismo.

Page 48: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 48-79

El Form Painter, tiene una barra de herramientas desde la que podemos realizar las

acciones más comunes. Si el botón Dibujar Ventana está activo podemos dibujar

directamente en la ventana, haciendo clic en un área de la ventana libre. Existen

también varias opciones de visualización de ventana y zoom. La opción de zoom

automático es la más cómoda. Para asegurar la alineación de las diferentes

ventanas, puede visualizarse una rejilla en el Form Painter. Pueden establecerse

opciones/preferencias de visualización.

Page 49: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 49-79

Dentro de cualquier ventana podemos crear diferentes tipos de nodos, para ello nos

situaremos en la ventana que nos interese hacemos clic con el botón derecho del

ratón y seleccionaremos el objeto deseado. Algunos de estos objetos o nodos son

gráficos, textos, tablas, etc...

Existe un tipo de nodo para insertar texto en los formularios. Todos los textos que

se quieran mostrar se crearán como nodos de texto (excepto los de tipo ADDRESS).

Los nodos de texto, son subnodos de ventanas, o subnodos de subnodos, como

tablas o plantillas. Podemos utilizar el menú contextual (botón derecho del ratón)

para ejecutar las acciones relevantes sobre nodos de texto. Los nodos de texto no

pueden tener subnodos. Los nodos de texto que no caben en una ventana son

truncados, excepto en la ventana main, cuyo proceso continua en la ventana

siguiente.

Dentro de un nodo de texto, tenemos tres pestañas similares a las existentes para

las ventanas:

Propiedades Generales

El tipo de texto permite controlar si el texto debe ser guardado y

editado en el formulario (como un elemento de texto) o fuera del

formulario (como un modulo de texto de SAP Smart Forms o como un

texto include SAPscript.

Page 50: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 50-79

También podemos especificar como se combinan dos nodos de texto

consecutivos:

Nuevo párrafo: el texto se creará en una nueva línea y en el

formato de párrafo especificado.

Nueva línea: el texto se crea en una nueva línea con el formato

de párrafo que se utilizó la última vez.

Añade directamente: se combinan dos nodos de texto sucesivos

sin líneas o espacios en blanco.

Opciones de salida

Son aplicables las mismas normas que para ventanas.

Puede asignarse un estilo a un nodo de texto.

Si el texto está en una ventana MAIN, tenemos la opción de protegerlo,

para evitar que pueda ser separado en más de una página.

Si el nodo de texto está dentro de una plantilla, se le indica la línea y

columna que ocupará en dicha plantilla.

Condiciones

El uso de condiciones es el mismo que para las ventanas.

Page 51: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 51-79

También debemos elegir el tipo de texto a insertar:

Elemento de texto: podemos insertar texto directamente con el teclado,

podemos seleccionar con el ratón, copiar, pegar, etc...

Módulo de texto: para insertar un bloque de texto.

Include de texto: para insertar bloques de texto con formato SapScript.

Cuando insertamos texto podemos darle formato según el tipo de letra o párrafo

que nos interese en cada momento, para ello debemos seleccionar el texto a

formatear y utilizar las herramientas de formato de párrafo o de carácter. Estas

herramientas están situadas encima del editor de texto, en dos bloques

desplegables. Podemos insertar bloques de texto usando Copy/Cut/Paste. El botón

Caracteres Párrafo on/off permite visualizar todos los caracteres no-imprimibles que

contiene el texto, (espacios, tabuladores, marcas de párrafos, saltos de línea,...).

Se puede formatear el texto usando formato de párrafo y formato de caracteres, las

opciones disponibles dependen del estilo seleccionado.

El estilo de un nodo supedita al estilo de los atributos del formulario.

El estilo del nodo de nivel más bajo supedita a los estilos de los

nodos de nivel superior. Para los nodos de texto el estilo usado

primero es el que tiene definido el mismo nodo, si el nodo no tiene

definido estilo, el estilo del nodo superior es el usado, y así hasta

llegar a la raíz.

Si no se formatea el texto con párrafo, el sistema determina el

párrafo por defecto del estilo.

Page 52: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 52-79

Existe también la posibilidad, de que en los formularios insertemos texto estático o

variables que hagan referencia a campos que se lean de la Base de Datos en

tiempo de ejecución o bien introducidos por el usuario en un pantalla de selección.

Si hacemos clic en el botón correspondiente o bien por Utilidades\Listar campos

on/off, podemos ver las tablas, campos y variables que podemos introducir en

nuestro formulario, arrastrándolos desde la lista de campos al formulario.

Los tipos de datos que podemos usar son: parámetros importados, exportados o

tablas que usemos desde el programa de aplicación y todos los campos globales y

field-symbols (símbolos de campo) que tengamos declarados en los apartados de

definiciones globales o interface de formulario. También podemos insertar campos

de sistema en formularios de forma automática (arrastrando y soltando).

Page 53: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 53-79

La opción de formatear permite ajustar el valor del campo antes de su salida. Las

opciones de formateo no pueden adaptarse a todos los tipos de datos. ( No se

puede limitar mediante offset el valor de un campo numérico ). Podemos distinguir

entre campos numéricos y caracteres.

Page 54: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 54-79

Los módulos de texto son bloques de texto que usamos de manera centralizada.

Esto nos permite simplificar el mantenimiento de los formularios debido a que se

puede utilizar un mismo módulo de texto en distintos formularios. Los módulos de

texto se pueden traducir según las necesidades de los formularios a otros idiomas.

Para crear y mantener los módulos de texto debemos ir a la pantalla inicial de

Smart Forms (transacción smartforms) e indicar módulo de texto.

Para insertar un módulo de texto en un formulario debemos crear un nodo del tipo

texto. En sus propiedades generales debemos indicar el tipo de texto, Módulo de

Texto y a continuación indicar el módulo de texto creado anteriormente,

presionaremos el botón tomar. También se puede determinar el módulo de texto de

forma dinámica. Para hacerlo introduciremos el nombre de una variable definida en

el formulario entre &...&.

También podemos insertar textos include, esta funcionalidad de tratamiento de

textos es idéntica a la existente en SapScript. Para el mantenimiento de estos tipos

de texto usaremos la transacción SO10. Se puede copiar el módulo de texto

Page 55: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 55-79

presionando el botón de Tomar y el sistema copia el texto, y lo convierte a un

elemento de texto perteneciente al formulario.

Mediante los nodos de dirección podemos insertar direcciones usando el

tratamiento centralizado CAM ( Central Address Management). CAM identifica las

direcciones mediante una codificación numérica.

En el tratamiento de direcciones el sistema permite el uso de direcciones estáticas o

dinámicas, indicando una variable conocida por el formulario entre &..&.

SAP Smart Forms permite usar CAM. No es necesario ningún conocimiento técnico

sobre CAM o sobre el formato de direcciones. Las direcciones son formateadas de

acuerdo a las regulaciones internacionales de cada país (Basado en ISO 11180 y las

directrices de Universal Postal Union).

Dentro de un nodo dirección, tenemos tres pestañas similares a las existentes para

las ventanas y para los nodos de texto:

Propiedades Generales: especificamos qué tipo de dirección usaremos.

Existen tres tipos de direcciones:

Page 56: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 56-79

Tipo '1': Direcciones de empresas o organizaciones.

Tipo '2': Dirección de personas.

Tipo '3': Direcciones de personas de contacto.

Para determinar cuándo una dirección es local o extranjera, siempre se tiene

que introducir el identificador del país destino.

Opciones de salida: Podemos indicar su posición y alineación en la

ventana, también podemos sombrearla y enmarcarla.

Condiciones: podemos especificar condiciones cuando queramos que

aparezca la imagen.

Para insertar una imagen deberemos crear un tipo de nodo función gráfica. No

sólo podemos poner una imagen de fondo en una página, también podemos

insertar cualquier imagen disponible en el sistema, en una ventana. Las imágenes

que insertemos serán visibles desde el Form Painter. Podemos insertar una imagen

que se determine de manera dinámica.

Page 57: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 57-79

Dentro de un nodo función gráfica, tenemos tres pestañas similares a las existentes

para otros nodos:

Propiedades Generales: Nombre de la Imagen, tipo y objeto, resolución y

si la imagen la mostraremos en blanco y negro o en color.

Opciones de Edición: Podemos indicar su posición y alineación en la

ventana, también podemos sombrearla y enmarcarla.

Condiciones: podemos especificar condiciones cuando queramos que

aparezca la imagen.

Dos nodos que permiten la inserción de datos en el formulario son tablas y

plantillas. La diferencia más importante entre estos dos tipos de nodo, es su

diseño.

- Tabla: El tamaño y el diseño de la tabla se precisa en tiempo de ejecución y

depende del tipo de dato (tamaño) y cantidad de registros leídos de la Base

de Datos por el programa de aplicación.

- Plantilla: El diseño se realiza completamente en el Form Painter, de esta

forma el tipo y el número de celdas no se modifica en tiempo de ejecución.

Page 58: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 58-79

En las Tablas y Plantillas debemos especificar tipos de línea con el formato que nos

convenga, para ello deberemos crear primero los tipos de línea y definir su formato

de carácter y párrafo.

Antes de insertar texto en las tablas debemos determinar el ancho de la tabla y

definir tipos de línea en el mantenimiento de la tabla. Para realizarlo definiremos

tantos tipos de línea como diseños diferentes por línea haya en el formulario e

indicaremos cuántas celdas tendrá cada tipo de línea y la longitud de cada una de

ellas.

Page 59: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 59-79

Usando el botón Table Painter, podemos ver el gráfico de la tabla (líneas y celdas) y

modificarlas con el ratón. También podemos especificar la alineación de los

campos: derecha, izquierda o central. Nos permite crear, modificar y borrar celdas

de cada tipo de línea distinta que tenga nuestra tabla. Debemos tener en cuenta

que el ancho de las celdas se determina dinámicamente por el programa en tiempo

de ejecución y debemos prever que el tipo de dato que inserte quepa en las celdas.

Page 60: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 60-79

Se puede insertar datos en las tablas con tablas internas o con field-symbols desde

la pestaña datos. Debemos tener en cuenta que las tablas que contienen los datos

enviados por el programa son las definidas en la interfase del formulario, pero para

poder trabajar con esos datos es necesario declarar estructuras internas del mismo

tipo en la sección datos globales y utilizar estas para las tablas y demás nodos del

formulario.

Podemos añadir condiciones lógicas para determinar que líneas de la tabla interna

debemos procesar. Esto correspondería a la cláusula WHERE de ABAP dentro el

comando LOOP AT. Se puede usar cualquier operador relacional definido en ABAP;

With/without pattern, Equal to, Not equal to, Greater than or equal to, Greater,

Less than or equal to, Less. Si no se selecciona ninguno el sistema usa el operador

por defecto equal. Se puede encadenar diferentes condiciones usando AND y OR.

En la pestaña datos de los nodos del tipo tabla, podemos realizar criterios de

ordenación de forma ascendente o descendente. Deberemos indicar el campo por el

que queremos que ordene y el tipo de orden. También con los correspondientes

checkboxes se puede indicar que los datos se agrupen por un determinado campo

(el que ordena) y se puede especificar que la agrupación se realice al principio del

nivel de control o al final. Ordenar se usa para tratar totales, subtotales,...

Page 61: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 61-79

Si especificamos principio o fin del nivel de control para especificar un criterio de

orden, veremos que aparece un nodo nuevo en el árbol de navegación. El nivel de

control (nodo nuevo) debe contener todos los registros de la tabla interna y estos

se agruparán por el campo especificado en el criterio de clasificación.

Page 62: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 62-79

Las tablas tienen eventos (cabecera, área principal, pie) que podemos utilizar para

realizar cabeceras y pies en las tablas. Para las cabeceras podemos indicar que se

realice la salida al inicio de la sección y/o en el salto de página. Para los pies de

tabla podemos indicar la altura del pie y en qué momentos de salida en salto de

página o al final de la sección.

Dentro de cada evento, mediante clic derecho con el ratón, se pueden crear

entradas en la tabla. Una vez creada se le tiene que indicar obligatoriamente el tipo

de línea que se quiere en cada caso (de entre los tipos de línea que hayan sido

definidos anteriormente). Una vez indicado el tipo de línea el sistema crea un nodo

por cada una de las celdas que tenga ese tipo de línea indicado. A su vez, dentro

de cada celda y también mediante clic derecho con el ratón, se pueden crear

distintos nodos (función gráfica, dirección, texto,…..) que se insertarán en dicha

celda. De esta forma se insertará texto en una celda determinada de la tabla.

Page 63: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 63-79

Usaremos plantillas (o máscaras de edición) cuando queramos mostrar tablas

con un diseño y tamaño fijo. Son muy usadas por ejemplo para imprimir datos en

formularios pre-definidos, por ejemplo recibos, facturas, vales, etc... Las plantillas

no se pueden anidar. Se puede especificar ancho, alineaciones e indicar tipos de

línea, también se puede usar el Table Painter. Al igual que con las tablas es posible

crear un patrón de tabla (cuadrícula) e indicar el grosor de las líneas.

Page 64: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 64-79

Como el tamaño y diseño de las plantillas es fijo, se debe de indicar a través de los

tipos de línea, creando tantos tipos de línea como diseños diferentes por línea haya

en el formulario. A cada línea se le da un nombre único y el rango de líneas en las

que se utiliza ese tipo. Si en las siguientes líneas se quiere usar un tipo de línea

creada anteriormente, se definirá un tipo de línea nuevo que haga referencia a ese

tipo de línea, indicándolo en el campo de referencia. En los campos DE y A de cada

tipo de línea se indicará desde qué número de fila (no de columna) hasta qué fila se

usará ese tipo de línea.

Page 65: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 65-79

Lección 3

Contro l de f lu jo

Los elementos presentados se procesan en un orden predefinido en el formulario.

Empezando por la primera página, los nodos de toda la estructura son procesador

de arriba hacia abajo.

En algunos casos, el sistema determina en tiempo de ejecución que partes del

formulario debe ser ejecutadas. Un ejemplo claro, son las tablas: El contenido, y el

número de registros son determinados durante la lectura de los mismos registros.

En esta parte trataremos sobre las opciones al control de flujo de datos

proporcionados por SAP Smart Forms:

Condiciones: a nivel de nodos.

Alternativa: Una alternativa es una condición que afecta a dos nodos. Un

nodo se procesa si la condición se cumple, sino se procesa el otro.

Líneas de programa: permite insertar código ABAP en el formulario.

Comando: Se usa para saltos dinámicos de páginas por ejemplo.

Subnodos pertenecientes a loops son ejecutados diferentes veces.

Carpetas: permite agrupar diferentes nodos.

Cada tipo de Nodo tiene una pestaña llamada Condiciones en la que se puede

realizar comparaciones y limitar la salida de los datos del nodo. Se debe introducir

Page 66: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 66-79

el nombre del campo sin ‘&’, el operador y el valor de comparación (pueden ser

campos o valores fijos). Los campos que utilizados deberán estar declarados en la

Interfase del Formulario o en los Datos Globales, también es posible usar las

variables del sistema disponibles. El apartado Momento adicional, ofrece la

posibilidad de indicar además cuando se quiere que aparezca el nodo tratado.

Para procesamiento condicional se puede procesar un nodo alternativa. Dicho

nodo contiene dos subnodos, uno si se cumple la condición y otro si esta no se

cumple. Los nodos de tipo Alternativa se pueden anidar. Esto permite definir

selecciones complejas.

Atención con la diferencia:

En la pestaña de Propiedades Generales, se asignan condiciones que

determinan cuando se procesa el nodo Verdadero o el nodo Falso.

En la pestaña de Condiciones, se asignan las condiciones para ejecutar el

nodo Alternativa.

Page 67: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 67-79

El tipo de nodo líneas de programa permite integrar código en nuestro

formulario, que en numerosas situaciones puede ser de gran ayuda, por ejemplo

para:

-Obtener datos que no se suministren por el programa de aplicación a través

de la interfase.

-Inicializar variables contador.

-Calcular subtotales, totales o hacer cálculos

Los nodos de este tipo se procesan de principio a fin según el orden que ocupen en

la jerarquía del árbol de navegación. En este tipo de nodo es posible crear

variables locales con DATA y se permite recibir y retornar parámetros globales en

el formulario, que deberán estar definidos en la Interfase del Formulario o en las

Definiciones Globales, en cambio sí se pueden utilizar directamente las variables

de sistema disponibles. El nodo de tipo Líneas de programa no puede generar

salida alguna y tampoco tener subnodos.

Page 68: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 68-79

El nodo comando permite:

Ir a la siguiente página: la que tengamos especificada en los Atributos

Generales de la página actual.

Reinicializar numeración de párrafo: si tenemos definidos estilos que

contengan párrafos del tipo esquema o numeración, este checkbox inicializa

el contador.

Incluir Printer Control: Los Printer Control son instrucciones generales para el

control de impresión que se pueden insertar en un texto en forma de comandos de

formato (ejemplo para modificar el tipo de tamaño). Durante la impresión, los

Print-Controls se convierten en secuencias de escape específicas para la impresora.

Page 69: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 69-79

El nodo Loop es muy parecido al nodo Tabla, tiene las mismas pestañas y

funcionalidades, a excepción de la pestaña Tabla (no la tiene) y en que la salida de

datos no está predefinida. Los nodos Loop son como las tablas internas que se leen

línea a línea. Los nodos LOOP se pueden anidar, esto sólo es posible con los Loops

y Plantillas.

En la pestaña Datos se pueden realizar las mismas funciones que en la tabla:

indicar tabla interna, número de líneas, condiciones, ordenar y agrupar. En la

pestaña Eventos, al igual que en las Tablas podemos crear cabeceras y pie.

Page 70: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 70-79

Cuando tenemos formularios muy grandes y complejos, en la jerarquía de nodos

por razones de claridad podemos crear carpetas para agrupar los nodos, de forma

que nos resulte más claro trabajar con ellos. Debemos tener cuidado a la hora de

mover los nodos a las carpetas y que esto no afecte a su jerarquía.

Page 71: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 71-79

Lección 4

Programa de contro l

Desde la perspectiva Smart Forms, el programa que llama al formulario contiene

tres partes:

• Selección de datos de la Base de datos

• Generación del Nombre del módulo de función generado para el formulario:

Deberemos llamar desde el programa al módulo

SSF_FUNCTION_MODULE_NAME y enviarle el nombre del módulo anterior de

tipo fdsfname y nos retornará un tipo de dato rs38l_fnam que será el

nombre del módulo de función real creado para ese formulario. Se deben

realizar estos pasos ya que el nombre del módulo de función creado para el

formulario, varía según el sistema y formulario.

• Deberemos llamar al módulo de función tantas veces como documentos

nuevos necesitemos crear.

Page 72: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 72-79

Los parámetros del módulo de función generado para el formulario y el que usamos

en nuestro programa tienen que corresponder con los parámetros definidos en la

Interfase del Formulario.

Es aconsejable usar la función SSF_FUNCTION_MODULE_NAME que devuelve el

nombre del módulo de función generado durante tiempo de proceso.

La función generada tiene parámetros opcionales y obligatorios.

Parámetros opcionales: Son datos de aplicación usados para mostrar o

calcular datos en el formulario

Parámetros obligatorios: Estos existen en cada formulario.

control_parameters: Salida general.

output_options: Opciones de salida. ( estructura ssfcompop en el

Diccionario)

user_settings: Si es 'X', los datos de usuario son copiados. Sino los

valores de output_options son usados.

archive_index, archive_index_tab, archive_parameters: Parámetros

para archivar.

mail_appl_obj, mail_recipient, mail_sender: Parámetros para Interfaz

de Business Comunication para enviar formularios como e-mails.

Page 73: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 73-79

Una de las estructuras más importantes es control_parameters:

no_open y no_close: Este parámetro te permite añadir diferentes forms en

una orden:

Primera llamada : no_open = space, no_close = 'X'.

Todas las siguientes llamadas: no_open = 'X', no_close = 'X'.

Última llamada: no_open = 'X', no_close = space.

device: Output device ('PRINTER', 'TELEFAX', 'MAIL').

no_dialog: Sin pantalla pop-up.

preview: visualización por pantalla.

langu: Idioma.

replangu1, replangu2, replangu3: Idiomas alternativos.

startpage: otra página en vez de la definida en el TOP del árbol de

SAPFORMS.

getotf: No imprime, muestra o envía fax, sino que genera un OTF (Output

Text Format) output.

Page 74: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 74-79

Lección 5

SmartSty les

En un Smart Style se definen formatos de párrafo y de carácter que luego se

podrán asignar a los textos y campos en el Smart Form. Se crean y se mantienen

los Smart Styles en el Style Builder.

Se debe asignar un Smart Style a cada Smart Form. Esto se hace de forma global

para todo el Smart Form en los atributos de formulario. Pero también se puede

asignar un estilo para algunos nodos determinados, por ejemplo para un nodo de

texto. En este caso el estilo que se aplicará sobre el nodo de texto será el que se

haya asignado a su nodo directamente (y no el asignado en los atributos del

formulario). A los módulos de texto en particular se les asigna un estilo al

definirlos, por lo que se le podrá asignar un formato de párrafo y de carácter de los

que contenga dicho estilo. Esta asignación también se realiza en la definición del

módulo de texto.

Para crear estilos hay que ir a la pantalla inicial de Smart Forms (transacción

smartforms) y seleccionar Estilos. Los estilos que se creen deben comenzar por Z o

Y.

Page 75: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 75-79

De esta forma se accede al Style Builder. El Style Builder consiste en dos áreas:

En la parte izquierda está el árbol de navegación, con tres nodos

predeterminados: datos de cabecera, formatos de párrafo y formatos

de caracteres.

La parte derecha muestra datos sobre el nodo seleccionado en el árbol.

En los datos de cabecera se informan los valores por defecto del Smart Style. Si

no se asignan valores diferentes en los formatos de párrafo y de carácter del Smart

Form, el sistema usará estos valores por defecto. Se informan los siguientes

valores:

• Párrafo Standard: Aquí se especifica el formato del texto si este no tiene

formato definido.

• Tabuladores: Se define el valor por defecto entre tabuladores.

• Caracteres por pulgada, Líneas por pulgada.

Page 76: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 76-79

Formatos de caracteres y formatos de párrafos se muestran en el árbol de

navegación. Se codifican con dos caracteres. Para crear, modificar o renombrar un

formato de párrafo o carácter, se utiliza el menú de Edición, en la barra de menú o

el botón derecho del ratón.

En el Formato de Párrafo aparecen varias pestañas. Las más importantes son:

• Sangrías e interlineado. Se pueden indicar las siguientes opciones:

Sangría del margen Izqda/dcha. : Cantidad de espacio entre ventana

y texto.

Se puede determinar margen Izqdo para la primera línea de párrafo

Espacio Anterior/Posterior

Interlineado: El interlineado en un párrafo es la distancia entre la

línea de base inferior de un renglón de texto y la línea de base

superior del renglón siguiente.

Page 77: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 77-79

Fuente: en donde se indica el tipo de letra, el tamaño, el estilo, si se quiere

subrayado o en color.

Tabuladores: Se puede especificar salto de tabulador especiales para cada

caso :

El tipo de alineación permite definir tabuladores a derecha, tomando

en cuenta el signo menos en los números.

Alineación numérica permite alinear las claves numéricas controlando

el punto decimal.

Page 78: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 78-79

Numeración y esquema: sirve para definir párrafos numerados. Se

permite definir párrafos numerados de distintos niveles (como 1, 1.1, 1.2,

1.2.1,…). Se debe crear un párrafo para cada nivel.

Page 79: Formularios 2-79formacion.desarrollando.net/cursosfiles/formacion/curso_390/sap-10.pdfMarcar Form Painter gráfico. En el menú de la transacción elegir formato de pagina y . Aquí

Formularios 79-79

El Formato de carácter tiene dos pestañas: Parametrización estándar y Fuente. Las

configuraciones de Fuente sobrescriben a la configuración de cabecera. En

parametrización estándar se pueden asignar atributos como subíndice o

superíndice. También se trata códigos de barras.