You are on page 1of 27

Smartforms Se necesitan dos transacciones: 1.

SMARTSTYLES: Definicin de tipos de estilos: alineacin, mrgenes, tabuladores, tipo, y estilo tamao de fuente, etc. 2. SMARTFORMS: Definicin de ventanas y pginas y su contenido, utiliza el estilo creado con la transaccin SMARTSTYLES.

Transaccin SMARTSTYLES Pasos para crear un estilo: En la transaccin SMARTSTYLES definir el nombre del estilo y darle crear.

Clic derecho en Paragraph Formats, opcin Create Node y definir un identificador del prrafo cuyo estilo se utilizar de forma predeterminada, por ejemplo P0.

En el panel derecho aparecern las opciones para ir personalizando el formato del prrafo y visualizar los cambios. Pestaa Indent and Spacing: o Alineacin. o Mrgenes izquierdo y derecho y sangra de la primera lnea del prrafo. o Espaciado entre el prrafo anterior y el siguiente y espaciado entre lneas. 1

Opciones para el flujo del texto: proteccin de pgina (determina si se debe mostrar el prrafo completo en una pgina, en caso de que no exista el suficiente espacio, ste se imprimir en la siguiente hoja) y el indicador de si el prrafo siguiente de debe de mostrar en la misma pgina que el anterior, es decir, que no estn separados por un salto de pgina.

Pestaa Font: o Fuente, tamao, estilo, subrayado y color. Nota: la fuente y el tamao estndar es: HELVE 10.

Pestaa Tabs: o Tabuladores: posicin, unidad de medida y alineacin.

Pestaa Numbering and Outline: o Prrafo del nivel ms alto en una jerarqua de esquema: La jerarqua de esquema se forma mediante la asignacin de un prrafo de nivel mximo comn a todos los prrafos del esquema. Ejemplo: si se tienen tres prrafos, AA, BB, y CC, dnde AA es el ms alto y CC el ms bajo de la jerarqua. AA se va a utilizar, por ejemplo, para ttulos de los captulos, BB para los ttulos de las secciones y CC para las partidas dentro de las secciones. El prrafo AA debe ser especificado como el punto de ms alto nivel del esquema de los tres prrafos. Se debe asegurar de que AA, este mismo prrafo se consigna, segn el prrafo esquema del ms alto nivel de AA. o Nivel del esquema: Ejemplo: si se tienen tres prrafos, AA, BB, y CC, dnde AA es el ms alto y CC el ms bajo de la jerarqua. AA se va a utilizar, por ejemplo, para ttulos de los captulos, BB para los ttulos de las secciones y CC para las partidas dentro de las secciones. Los niveles de esquema, que son necesarios introducir en los tres prrafos son: prrafo AA = Nivel de esquema 1, prrafo BB = Nivel de esquema 2 y prrafo CC = Nivel de esquema: 3. o Tipo de lista numerada. o Carcter o caracteres fijos que precedern al prrafo. 3

o o o o o

Delimitador a la izquierda y/o a la derecha para listas de tipo numrico. Longitud de salida para nmeros arbigos. Posicin entre el nmero del prrafo y el margen izquierdo. Formato diferente de los predeterminados para la lista numerada. Encadenamiento de los nmeros de las listas. Ejemplo: si se tienen tres prrafos, AA, BB, y CC, dnde AA es el ms alto y CC el ms bajo de la jerarqua. AA se va a utilizar, por ejemplo, para ttulos de los captulos, BB para los ttulos de las secciones y CC para las partidas dentro de las secciones. Si la numeracin de los AA y BB est encadenada, pero no la de CC. La siguiente lista muestra la numeracin de los prrafos de un cierto orden de los prrafos en el texto: Prrafo AA: Nmero: 1. Prrafo BB: Nmero: 1.1. Prrafo CC: Nmero: 1. Prrafo BB: Nmero: 1.2. Prrafo CC: Nmero: 1. Prrafo CC: Nmero: 2. Prrafo BB: Nmero: 1.3. Prrafo AA: Nmero: 2. Prrafo BB: Nmero: 2.1. Prrafo BB: Nmero: 2.2.

Estas mismas configuraciones se repiten para cada tipo de prrafo.

Una vez definido el prrafo predeterminado, doble click en Header Data (en el rbol del lado derecho) y establecer este prrafo en la opcin Standar Paragraph.

Pestaa Standard Settings: En caso de que no se especifique un prrafo predeterminado, aqu se pueden establecer las caractersticas de fuente que se tomaran como predeterminadas.

Transaccin SMARTFORMS Pasos para crear una smartform: En la transaccin SMARTFORMS seleccionar la opcin de Form, definir el nombre de la smartform y darle crear.

Si se selecciona la opcin Style y se escribe el nombre del estilo, permite editar el ste sin necesidad de ir a la transaccin SMARTSTYLES. Una vez creada la smartform, el botn Form Painter, permite visualizar u ocultar el panel de diseo.

Al hacer doble click sobre el nodo Form Attibutes, se muestran los atributos bsicos. Pestaa General Attributes: Aqu se muestra cuando fue creado el smartform y se controla principalmente las opciones de traduccin.

Pestaa Output Options: o Formato de pgina que se va a utilizar, la que se usa habitualmente es DINA4. o Caracteres por pulgada. o Lneas por pulgada. o Estilo. o Formato, modo y dispositivo de salida.

Para definir la primera pgina hacer doble click en el rbol de la izquierda en el nodo %PAGE1 debajo de Pages and Windows, colocar el nombre de la pgina y su descripcin. Pestaa General Attributes: o Nombre de la pgina siguiente. o Formato y modo del contador de pginas.

Pestaa Output Options: o Formato de la pgina. o Bandeja de papel. o Modo de impresin (simple o dplex).

Pestaa Background Picture: Establecer una imagen de fondo.

Expandir el nodo de PAGINA1 y hacer doble clic en el nodo MAIN. Pestaa General Attributes: o Tipo de ventana: el predeterminado para la ventana principal es M (Main Window).

Pestaa Output Options: o Mrgenes. o Formato de las lneas del marco. o Indicador de mostrar siempre el marco aunque no se traiga informacin.

Pestaa Conditions: Condiciones de impresin.

Para probar lo que se tiene hasta el momento, click en el botn Test (F8). 10

Aparece el nombre del programa que se cre automticamente. Darle click en el botn Test/Execute (F8).

Click en el botn Execute (F8).

Elegir la impresora y click en el botn Print o en el botn Print preview.

Para crear el ttulo, click derecho en PAGINA1, opcin Create / Window y establecer el identificador de la ventana y su descripcin. 11

En la pestaa General Attributes, establecer Window type = T Secondary Window.

En la pestaa Output Options, establecer las opciones de salida:

Para crear el texto del ttulo, click derecho en el nodo TITULO, opcin Create / Text y establecer el identificador de la ventana y su descripcin.

12

En la pestaa General Attributes, colocar el texto del ttulo, seleccionarlo y aplicar el estilo en la lista desplegable Paragraph Formats.

Para crear el contador de pginas, click derecho en PAGINA1, opcin Create / Window y establecer el identificador de la ventana y su descripcin. En la pestaa General Attributes, establecer Window type = T Secondary Window.

En la pestaa Output Options, establecer las opciones de salida:

13

Para crear el texto del contador, click derecho en el nodo CONTADOR, opcin Create / Text y establecer el identificador de la ventana y su descripcin. En la pestaa General Attributes, colocar el texto del contador, seleccionarlo y aplicar el estilo en la lista desplegable Paragraph Formats.

14

El resultado al probar el formulario es: La pgina actual es 1 de 1.

Para insertar un campo en el texto, click en el botn Insert Field.

Los campos se deben de colocar entre &&.

Mostrar informacin de las tablas 15

En el Smatform se deben declarar los datos que va a recibir de un programa ABAP. Para este ejemplo, se va a mostrar informacin de la tabla MKPF. En el rbol, dar doble click en Form Interface (se encuentra dentro de Global Settings), en la pestaa Tables se va a declarar la tabla interna.

Tambin se debe declarar una Work Area, esto se hace con doble click en Global Definitions (se encuentra dentro de Global Settings) y en la pestaa Global Data.

En la ventana Main se debe crear la tabla donde se mostrar la informacin: click derecho en el nodo MAIN, opcin Create / Table, y establecer el nombre y la descripcin. Pestaa Table: Muestra las opciones para la cuadrcula de la tabla.

16

Dar click en el botn Details y renombrar %LTYPE1 como LINEA.

Pestaa Data: Se debe establecer la tabla interna que contendr la informacin 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 cdigo: LOOP AT it_mkpf INTO wa_mkpf. ENDLOOP.

17

Pestaa Output Options: Establecer el estilo.

Para definir el encabezado de la tabla, doble clic en el nodo Header de IT_MKPF, opcin Create / Table Line, y establecer el nombre y la descripcin. En la pestaa Output Options elegir el tipo de lnea que se defini anteriormente.

18

Doble click en %CELL1 (debajo de LINEA_ENCABEZADOS), establecer el nombre y la descripcin y en la pestaa Output Options elegir el estilo.

Click derecho en COLUMNA_ENCABEZADO1, opcin Create / Text, establecer el nombre y la descripcin. En la pestaa 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.

19

Para definir el texto de la tabla, doble clic en el nodo Main Area de IT_MKPF, opcin Create / Table Line, y establecer el nombre y la descripcin. En la pestaa Output Options elegir el tipo de lnea que se defini anteriormente.

Doble click en %CELL1 (debajo de LINEA_DATOS), establecer el nombre y la descripcin y en la pestaa Output Options elegir el estilo.

Click derecho en COLUMNA_DATOS1, opcin Create / Text, establecer el nombre y la descripcin. En la pestaa General Attributes, colocar el texto de los datos, seleccionarlo y aplicar el estilo en la lista desplegable Paragraph Formats.

20

Esto muestra los campos MBLNR Y CPUTM.

Programa de control del formulario Bsicamente 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 mdulo de funcin 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 mdulo autogenerado.

Cdigo 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

data: nombre_modulo_funcion type rs38l_fnam.

INCLUDE Z04SMARTFORM_MKPF_FUNCIONES:
*----------------------------------------------------------------------* ***INCLUDE Z04SMARTFORM_MKPF_FUNCIONES . *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form cargar_datos *&---------------------------------------------------------------------* * Carga la informacin 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

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

Agregar cdigo ejecutable al Smartform 23

Se puede agregar cdigo ejecutable a un smartform, por ejemplo, para acceder a una tabla SAP directamente: Doble click en Global Definitions. En la pestaa Global Data declara una work area de tipo LFA1.

En la pestaa Initialization, declarar en Output Parameters la work area WA_LFA1 y en el texto colocar el cdigo:
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, opcin Create / Window y establecer el identificador de la ventana y su descripcin. En la pestaa General Attributes, establecer Window type = T Secondary Window.

24

En la pestaa Output Options, establecer las opciones de salida:

Para crear el texto del proveedor, click derecho en el nodo PROVEEDOR, opcin Create / Text y establecer el identificador de la ventana y su descripcin. En la pestaa General Attributes, colocar el texto del ttulo, seleccionarlo y aplicar el estilo en la lista desplegable Paragraph Formats. 25

SmartForms System Fields


26

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

You might also like