Smart Forms

Post on 13-Dec-2014

234 views 51 download

Transcript of Smart Forms

SMARTFORMS

Módulo de texto Equivalente a la SO10 (esta quedando obsoleta)

(Similar al texto estandar visto para los strip-forms)

Podemos crear los estilos que queramos y llamarlos desde cualquier formulario.

En datos de cabecera (por defecto), ponemos cursiva, negrita,… . Podemos poner color…

Quien lo creó…

Creamos formato de parrafo…

En caso de que queramos agruparlos por párrafo, todas las demás pestañas son igualesPoner en el significado, una descripción completa del formato: Courier, negrita, 12, justificado… así cuando ya estemos en smartform ya lo identificamos directamente.

Para el formato para caracteres…

Hay que activar los estilos…

Ventaja: Si cambio el estilo, ya se cambia solo y no hay que tocar el formulario.

Desventaja: AL cambiar el estilo, te puede afectar a 5 formularios y ya no quedan bien.

Si migramos formulario a SAP-script HORROR. Muchas cosas se quedan en el aire.

Nos lo baja a un fichero XML

Y con upload de formulario, nos lo sube…

Entramos en Smartforms!!!

Índice // Ventana de trabajo // form-painter

Deshabilitar el form-painter. (BOTON DE FORM PAINTER)

Vemos las variables sin pinchamos el botón listar campos on/off

De esta forma nos comunicamos con nuestro fichero ejecutable. Todo esto son variables que tenemos en nuestro programa.

Abajo salen todas las variables definidas. La ventaja es que es cómo porque si definimos cualquier variable la vemos aquí, la pinchamos, arrastramos y la colocamos en el import. No evita errores lexicográficos.

Sería como el TOP y el FORM.

En la pestaña datos globales, se usa para definir variables.

Podemos definir si es constante, haciendo clic.

Si me voy a datos globales, estará la variable. Ahí estarán todas las variables que creemos.

Para referenciar a tipos definidos por uno mismo. Luego nos vamos a datos globales, y ya lo podemos usar.

No se suele usar mucho. Es para usar una especie de alias.

Es la rutina que se utiliza nada más empezar el programa. Ya que a lo largo podemos ir metiendo código, lo ideal es que en la inicialización hagamos las recuperaciones de datos. Para nuestra práctica 5, todo lo que es recuperar clientes y ver sus vuelos, hacerlo aquí. Luego a lo largo del formulario, hacemos las pequeñas conversiones, así nos evitamos salpicar de código todo el programa. Para usar parámetros globales tiene que estar como parámetro de entrada. Puedo definir en el cuadrado de texto, variables locales.

Ojo siempre es necesario usar un print-program. Hay un zesqueleto_smartforms

Se pueden definir todos los FORMs que quieras, se podrían hacer performs desde cualquier lado del formulario (inicialización, o cualquier punto del formulario que yo meta código).

En caso de que haya moneda o cantidad, hacer un campo de referencia. Todo precio tenía que estar referenciado a una moneda… (recordar).

Creamos nueva página…

Ponemos pág. Subsiguiente. (similar a sap-script)

Nos permite marca de agua.

Visualización de impresión. “Con esta forma podemos escanear un cheque y ajustarlo al milímetro”…. OJO Esta opción le gusta mucho al cliente. Y no es muy conocida.

Las siguientes subventanas, aparecen anidadas.

Ventana principal, una por página.Ventana de cierre, es la última, usar las auxiliares.

Le podemos poner marco, sombreados y con presentación preeliminar, color…

Condiciones para imprimir, exclusivamente esta ventana.

Podemos exigir que V_NUM = 1.,,, etc. Sólo se mostrará si se cumplen estas condiciones. Ojo poner &variable&

También observar, las condiciones por defecto en donde la podemos usar con clic.

ERROR de traducción sale dos veces “sólo en primera página”. Si nos vamos a la versión inglesa

Only on First PageNot on First Page

Para los logos…También la puedo crear en la carpeta principal de la ventana.

dirección de la empresa. PERNR (personal number) ADRNR (address)

Con texto include, te trae el texto hecho con las SO10

Haciendo clic en la conservar lineas juntas, actúa como PROTECT /END_PROTECT. Sólo tiene sentido en el main.

La tabla es dinámica, se va a ir incrementando en función de los datos que tenga dentro.

Los marcos y sombreados, es independiente de la ventana.

En el 90% de los casos la tabla debe ir en la MAIN, ya que la tabla tiene propiedad dinámica y no se sabe cuántos registros va a tener. Así que la única tabla capaz de almacenar registros sin saber su número y sin perder información es la MAIN. Si sabemos que nuestra tabla va a tener 1 – 3 registros, se podría usar una VENTANA, pero lo normal es que no se sepa.

El ancho de la tabla se ajusta al ancho de la ventana

En criterios de clasificación podemos hacer lo de AT NEW, AT END…

Decimos la operación, nombre del campo, evento… Útil para hacer medias y totales, todo en función del LOOP, lo hace automático lo mete en 1 variable y la podemos usar

Al iniciar la tabla, pasamos por el ámbito de cabecera, en cada loop pasamos por área principal, y al finalizar pasa por ámbito pie página.

Dentro de cada una de las celdas escribimos lo que queremos

Igual que la tabla, pero totalmente estático.

Al ser estático hay que fijarle la altura.

Para meter información dentro…

Indicamos la línea y la columna, e irá imprimiendo el texto en la posición queindicamos abajo a la izquierda.

Esto es como un IF – ELSE

Como si metiéramos performs en cualquier línea del códigoSe puede usar código, así ponemos las líneas de código que queramos lo ideal es no hacer un select ni nada grande aquí, ya que está muy anidado y es difícil encontrarlo.

Con esto se podría cargar el flujo lógico del programa, puedo dar saltos, a la página que quiero poniendo condiciones.

Se crean carpetas para agrupar elementos. Un elemento de ordenación.

Podemos tener condición también en las carpetas.

Tenemos que crear un print_program

* Llamada al modulo de funciones que ejecuta el Smart-forms. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = lf_formname IMPORTING fm_name = lf_fm_name.

POnemos el nombreNos devuelve un nombre, al que hacemos cALL FUNCTION

* Llamada al smart-forms. CALL FUNCTION lf_fm_name EXPORTING archive_index = toa_dara archive_parameters = arc_params control_parameters = ls_control_param mail_recipient = ls_recipient mail_sender = ls_sender output_options = ls_composer_param user_settings = space is_nast = nast is_repeat = repeat* num_vuelo = p_vuelo* TABLES* i_final = i_final* i_final1 = i_final1 EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5.

Le añadimos el campo vuelo

FORMAS DE HACER BREAKPOINT:

1. DARLE AL BOTÓN STOP2. ESCRIBIR EN EL CÓDIGO: BREAK NOMBRE_USUARIO3. ESCRIBIR EN EL CÓDIGO: BREAK POINT.

En la opción 2,3 tener cuidado porque se olvida… y vuelve aparecer cuando el cliente lo está viendo.

MODIFICANDO Y MEJORANDO LO ANTERIOR

Modifico el título

Enlace TEXTO legal

Voy a la SO10

Añado COSTE y TEXTO LEGAL al final de la última hoja. Para ello creo unas ventanas superpuestas, hay que tener cuidado de que no se solapen.

Añado un texto después de la tabla, con tantas lineas en blanco como el texto legal.

En la ventana que se solapa encima, pongo la siguiente condición:

Añado el COSTE

Añado el texto legal, para todo esto creo dos TEXTOS que enlacen de la ventana que se solapa encima del MAIN

Hago un TEMPLATE para los datos del vuelo

Ojo con la altura y anchura de la tabla de la ventana. Los tabuladores deben de coincidir exactamente.