Smartforms Como Hacerlo

33
Smartforms Se necesitan dos transacciones: 1. SMARTSTYLES: Definición de tipos de estilos: alineación, márgenes, tabuladores, tipo, y estilo tamaño de fuente, etc. 2. SMARTFORMS: Definición de ventanas y páginas y su contenido, utiliza el estilo creado con la transacción SMARTSTYLES. Transacción SMARTSTYLES Pasos para crear un estilo: En la transacción SMARTSTYLES definir el nombre del estilo y darle crear. Clic derecho en Paragraph Formats, opción Create Node y definir un identificador del párrafo cuyo estilo se utilizará de forma predeterminada, por ejemplo P0. 1

Transcript of Smartforms Como Hacerlo

Page 1: Smartforms Como Hacerlo

Smartforms

Se necesitan dos transacciones:

1. SMARTSTYLES: Definición de tipos de estilos: alineación, márgenes, tabuladores, tipo, y estilo tamaño de fuente, etc.

2. SMARTFORMS: Definición de ventanas y páginas y su contenido, utiliza el estilo creado con la transacción SMARTSTYLES.

Transacción SMARTSTYLES

Pasos para crear un estilo:

En la transacción SMARTSTYLES definir el nombre del estilo y darle crear.

Clic derecho en Paragraph Formats, opción Create Node y definir un identificador del párrafo cuyo estilo se utilizará de forma predeterminada, por ejemplo P0.

En el panel derecho aparecerán las opciones para ir personalizando el formato del párrafo y visualizar los cambios.

Pestaña Indent and Spacing:o Alineación.

1

Page 2: Smartforms Como Hacerlo

o Márgenes izquierdo y derecho y sangría de la primera línea del párrafo.o Espaciado entre el párrafo anterior y el siguiente y espaciado entre líneas.o Opciones para el flujo del texto: protección de página (determina si se debe mostrar el párrafo

completo en una página, en caso de que no exista el suficiente espacio, éste se imprimirá en la siguiente hoja) y el indicador de si el párrafo siguiente de debe de mostrar en la misma página que el anterior, es decir, que no están separados por un salto de página.

Pestaña Font:o Fuente, tamaño, estilo, subrayado y color.Nota: la fuente y el tamaño estándar es: HELVE 10.

2

Page 3: Smartforms Como Hacerlo

Pestaña Tabs:o Tabuladores: posición, unidad de medida y alineación.

Pestaña Numbering and Outline:o Párrafo del nivel más alto en una jerarquía de esquema:

La jerarquía de esquema se forma mediante la asignación de un párrafo de nivel máximo común a todos los párrafos del esquema.Ejemplo: si se tienen tres párrafos, AA, BB, y CC, dónde AA es el más alto y CC el más bajo de la jerarquía. AA se va a utilizar, por ejemplo, para títulos de los capítulos, BB para los títulos de las secciones y CC para las partidas dentro de las secciones. El párrafo AA debe ser especificado como el punto de más alto nivel del esquema de los tres párrafos. Se debe asegurar de que AA, este mismo párrafo se consigna, según el párrafo esquema del más alto nivel de AA.

o Nivel del esquema:Ejemplo: si se tienen tres párrafos, AA, BB, y CC, dónde AA es el más alto y CC el más bajo de la jerarquía. AA se va a utilizar, por ejemplo, para títulos de los capítulos, BB para los títulos de las secciones y CC para las partidas dentro de las secciones. Los niveles de esquema, que son necesarios introducir en los tres párrafos son: párrafo AA = Nivel de esquema 1, párrafo BB = Nivel de esquema 2 y párrafo CC = Nivel de esquema: 3.

o Tipo de lista numerada.o Carácter o caracteres fijos que precederán al párrafo.o Delimitador a la izquierda y/o a la derecha para listas de tipo numérico.o Longitud de salida para números arábigos.

3

Page 4: Smartforms Como Hacerlo

o Posición entre el número del párrafo y el margen izquierdo.o Formato diferente de los predeterminados para la lista numerada.o Encadenamiento de los números de las listas.

Ejemplo: si se tienen tres párrafos, AA, BB, y CC, dónde AA es el más alto y CC el más bajo de la jerarquía. AA se va a utilizar, por ejemplo, para títulos de los capítulos, BB para los títulos de las secciones y CC para las partidas dentro de las secciones. Si la numeración de los AA y BB está encadenada, pero no la de CC. La siguiente lista muestra la numeración de los párrafos de un cierto orden de los párrafos en el texto:Párrafo AA: Número: 1.Párrafo BB: Número: 1.1.Párrafo CC: Número: 1.Párrafo BB: Número: 1.2.Párrafo CC: Número: 1.Párrafo CC: Número: 2.Párrafo BB: Número: 1.3.Párrafo AA: Número: 2.Párrafo BB: Número: 2.1.Párrafo BB: Número: 2.2.

Estas mismas configuraciones se repiten para cada tipo de párrafo.

Una vez definido el párrafo predeterminado, doble click en Header Data (en el árbol del lado derecho) y establecer este párrafo en la opción Standar Paragraph.

4

Page 5: Smartforms Como Hacerlo

Pestaña Standard Settings: En caso de que no se especifique un párrafo predeterminado, aquí se pueden establecer las características de fuente que se tomaran como predeterminadas.

5

Page 6: Smartforms Como Hacerlo

Transacción SMARTFORMS

Pasos para crear una smartform:

En la transacción SMARTFORMS seleccionar la opción de Form, definir el nombre de la smartform y darle crear.

Si se selecciona la opción Style y se escribe el nombre del estilo, permite editar el éste sin necesidad de ir a la transacción SMARTSTYLES.

Una vez creada la smartform, el botón Form Painter, permite visualizar u ocultar el panel de diseño.

Al hacer doble click sobre el nodo Form Attibutes, se muestran los atributos básicos.

Pestaña General Attributes: Aquí se muestra cuando fue creado el smartform y se controla principalmente las opciones de traducción.

Pestaña Output Options:o Formato de página que se va a utilizar, la que se usa habitualmente es DINA4.o Caracteres por pulgada.

6

Page 7: Smartforms Como Hacerlo

o Líneas por pulgada.o Estilo.o Formato, modo y dispositivo de salida.

Para definir la primera página hacer doble click en el árbol de la izquierda en el nodo %PAGE1 debajo de Pages and Windows, colocar el nombre de la página y su descripción.

Pestaña General Attributes:o Nombre de la página siguiente.o Formato y modo del contador de páginas.

Pestaña Output Options:o Formato de la página.o Bandeja de papel.o Modo de impresión (simple o dúplex).

Pestaña Background Picture: Establecer una imagen de fondo.

7

Page 8: Smartforms Como Hacerlo

Expandir el nodo de PAGINA1 y hacer doble clic en el nodo MAIN.

Pestaña General Attributes:o Tipo de ventana: el predeterminado para la ventana principal es M (Main Window).

Pestaña Output Options:o Márgenes.o Formato de las líneas del marco.o Indicador de mostrar siempre el marco aunque no se traiga información.

8

Page 9: Smartforms Como Hacerlo

Pestaña Conditions: Condiciones de impresión.

9

Page 10: Smartforms Como Hacerlo

Para probar lo que se tiene hasta el momento, click en el botón Test (F8).

Aparece el nombre del programa que se creó automáticamente. Darle click en el botón Test/Execute (F8).

Click en el botón Execute (F8).

10

Page 11: Smartforms Como Hacerlo

Elegir la impresora y click en el botón Print o en el botón Print preview.

Para crear el título, click derecho en PAGINA1, opción Create / Window y establecer el identificador de la ventana y su descripción.

En la pestaña General Attributes, establecer Window type = T Secondary Window.

En la pestaña Output Options, establecer las opciones de salida:

11

Page 12: Smartforms Como Hacerlo

Para crear el texto del título, click derecho en el nodo TITULO, opción Create / Text y establecer el identificador de la ventana y su descripción.

En la pestaña General Attributes, colocar el texto del título, seleccionarlo y aplicar el estilo en la lista desplegable Paragraph Formats.

12

Page 13: Smartforms Como Hacerlo

Para crear el contador de páginas, click derecho en PAGINA1, opción Create / Window y establecer el identificador de la ventana y su descripción.

En la pestaña General Attributes, establecer Window type = T Secondary Window.

En la pestaña Output Options, establecer las opciones de salida:

13

Page 14: Smartforms Como Hacerlo

Para crear el texto del contador, click derecho en el nodo CONTADOR, opción Create / Text y establecer el identificador de la ventana y su descripción.

En la pestaña General Attributes, colocar el texto del contador, seleccionarlo y aplicar el estilo en la lista desplegable Paragraph Formats.

14

Page 15: Smartforms Como Hacerlo

El resultado al probar el formulario es: La página actual es 1 de 1.

Para insertar un campo en el texto, click en el botón Insert Field.

Los campos se deben de colocar entre &&.

15

Page 16: Smartforms Como Hacerlo

Mostrar información de las tablas

En el Smatform se deben declarar los datos que va a recibir de un programa ABAP. Para este ejemplo, se va a mostrar información de la tabla MKPF.

En el árbol, dar doble click en Form Interface (se encuentra dentro de Global Settings), en la pestaña Tables se va a declarar la tabla interna.

También se debe declarar una Work Area, esto se hace con doble click en Global Definitions (se encuentra dentro de Global Settings) y en la pestaña Global Data.

En la ventana Main se debe crear la tabla donde se mostrará la información: click derecho en el nodo MAIN, opción Create / Table, y establecer el nombre y la descripción.

Pestaña Table: Muestra las opciones para la cuadrícula de la tabla.

16

Page 17: Smartforms Como Hacerlo

Dar click en el botón Details y renombrar %LTYPE1 como LINEA.

Pestaña Data: Se debe establecer la tabla interna que contendrá la información y a la work area que permita hacer el ciclo LOOP dentro de esta tabla. Ambas son las que se declararon en los pasos anteriores.Esto tiene el efecto de que internamente crea el siguiente código:LOOP AT it_mkpf INTO wa_mkpf.…ENDLOOP.

17

Page 18: Smartforms Como Hacerlo

Pestaña Output Options: Establecer el estilo.

Para definir el encabezado de la tabla, doble clic en el nodo Header de IT_MKPF, opción Create / Table Line, y establecer el nombre y la descripción.

En la pestaña Output Options elegir el tipo de línea que se definió anteriormente.

18

Page 19: Smartforms Como Hacerlo

Doble click en %CELL1 (debajo de LINEA_ENCABEZADOS), establecer el nombre y la descripción y en la pestaña Output Options elegir el estilo.

Click derecho en COLUMNA_ENCABEZADO1, opción Create / Text, establecer el nombre y la descripción.

En la pestaña General Attributes, colocar el texto de los encabezados, seleccionarlo y aplicar el estilo en la lista desplegable Paragraph Formats.

Nota, los tabuladores funcionan de acuerdo a como fueron definidos en el estilo seleccionado.

Para definir el texto de la tabla, doble clic en el nodo Main Area de IT_MKPF, opción Create / Table Line, y establecer el nombre y la descripción.

19

Page 20: Smartforms Como Hacerlo

En la pestaña Output Options elegir el tipo de línea que se definió anteriormente.

Doble click en %CELL1 (debajo de LINEA_DATOS), establecer el nombre y la descripción y en la pestaña Output Options elegir el estilo.

Click derecho en COLUMNA_DATOS1, opción Create / Text, establecer el nombre y la descripción.

En la pestaña General Attributes, colocar el texto de los datos, seleccionarlo y aplicar el estilo en la lista desplegable Paragraph Formats.

Esto muestra los campos MBLNR Y CPUTM.

20

Page 21: Smartforms Como Hacerlo

Programa de control del formulario

Básicamente el programa de control hace dos cosas:

1. Selecciona los datos a mostrar de la tabla MKPF.2. Invoca al smartform ZSMART04_01.

Para llamar al smartform se utilizan dos funciones:

1. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' que obtiene el nombre del módulo de función asociado al smartform, es decir, el programa autogenerado al crear el smartform y lo guarda en la variable nombre_modulo_funcion.

2. CALL FUNCTION nombre_modulo_funcion que llama al módulo autogenerado.

Código principal:

*&---------------------------------------------------------------------**& Report  Z04SMARTFORM_MKPF*&*&---------------------------------------------------------------------*

REPORT  Z04SMARTFORM_MKPF.

INCLUDE Z04SMARTFORM_MKPF_DECLARACION.

INCLUDE Z04SMARTFORM_MKPF_FUNCIONES.

start-of-selection.

perform cargar_datos.

perform llamar_smartform.

end-of-selection.

INCLUDE Z04SMARTFORM_MKPF_DECLARACION:

*&---------------------------------------------------------------------**&  Include           Z04SMARTFORM_MKPF_DECLARACION*&---------------------------------------------------------------------*

tables mkpf.

data: begin of it_mkpf occurs 0.  include structure mkpf.data: end of it_mkpf.

21

Page 22: Smartforms Como Hacerlo

data: nombre_modulo_funcion type rs38l_fnam.

INCLUDE Z04SMARTFORM_MKPF_FUNCIONES:

*----------------------------------------------------------------------****INCLUDE Z04SMARTFORM_MKPF_FUNCIONES .*----------------------------------------------------------------------*

*&---------------------------------------------------------------------**&      Form  cargar_datos*&---------------------------------------------------------------------**       Carga la información a mostrar*----------------------------------------------------------------------*form cargar_datos .  clear it_mkpf.  refresh it_mkpf.

  select * up to 50 rows    from mkpf    into corresponding fields of table it_mkpf.endform.                    " cargar_datos

*&---------------------------------------------------------------------**&      Form  llamar_smartform*&---------------------------------------------------------------------**       Llama al smartform*----------------------------------------------------------------------*form llamar_smartform .  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'    EXPORTING      formname                 = 'ZSMART04_01'  " Nombre del Smartform*     VARIANT                  = ' '*     DIRECT_CALL              = ' '    IMPORTING      FM_NAME                  = nombre_modulo_funcion    EXCEPTIONS      NO_FORM                  = 1      NO_FUNCTION_MODULE       = 2      OTHERS                   = 3            .  IF sy-subrc <> 0.    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  ENDIF.

  CALL FUNCTION nombre_modulo_funcion    TABLES      it_mkpf = it_mkpf    EXCEPTIONS      formatting_error = 1      internal_error = 2      send_error = 3      user_canceled = 4    OTHERS = 5.

22

Page 23: Smartforms Como Hacerlo

  IF sy-subrc <> 0.    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  ENDIF.

endform.                    " llamar_smartform

23

Page 24: Smartforms Como Hacerlo

Agregar código ejecutable al Smartform

Se puede agregar código ejecutable a un smartform, por ejemplo, para acceder a una tabla SAP directamente:

Doble click en Global Definitions. En la pestaña Global Data declara una work area de tipo LFA1.

En la pestaña Initialization, declarar en Output Parameters la work area WA_LFA1 y en el texto colocar el código:

select single * from lfa1 into wa_lfa1.

Ahora se puede ocupar esta work area para imprimir sus campos en el formulario:

Click derecho en PAGINA1, opción Create / Window y establecer el identificador de la ventana y su descripción.

En la pestaña General Attributes, establecer Window type = T Secondary Window.

24

Page 25: Smartforms Como Hacerlo

En la pestaña Output Options, establecer las opciones de salida:

Para crear el texto del proveedor, click derecho en el nodo PROVEEDOR, opción Create / Text y establecer el identificador de la ventana y su descripción.

En la pestaña General Attributes, colocar el texto del título, seleccionarlo y aplicar el estilo en la lista desplegable Paragraph Formats.

25

Page 26: Smartforms Como Hacerlo

26

Page 27: Smartforms Como Hacerlo

SmartForms System Fields

Within a form you can use the field string SFSY with its system fields. During form processing  the system replaces these fields with the corresponding values. The field values come from the  SAP System or are results of the processing.

System fields of Smart Forms

&SFSY-DATE&  Displays the date. You determine the display format in the user master record.

&SFSY-TIME&  Displays the time of day in the form HH:MM:SS.

&SFSY-PAGE&  Inserts the number of the current print page into the text. You determine the  format of the page number (for example, Arabic, numeric) in the page node. 

&SFSY-FORMPAGES&  Displays the total number of pages for the currently processed form. This  allows you to include texts such as'Page x of y' into your output. 

&SFSY-JOBPAGES&  Contains the total page number of all forms in the currently processed print  request. 

&SFSY-WINDOWNAME&  Contains the name of the current window (string in the Window field)

&SFSY-PAGENAME&  Contains the name of the current page (string in the Page field)

&SFSY-PAGEBREAK&  Is set to 'X' after a page break (either automatic [Page 7] or  command-controlled [Page 46])

&SFSY-MAINEND&  Is set as soon as processing of the main window on the current page ends

&SFSY-EXCEPTION& Contains the name of the raised exception. You must trigger your own  exceptions, which you defined in the form interface, using the user_exception macro (syntax:  user_exception <exception name >).   

27