SmartForms .pdf

38
ABAP/4 Smart Forms SMART FORMS Página 1 de 38

Transcript of SmartForms .pdf

Page 1: SmartForms .pdf

ABAP/4 Smart Forms

SMART FORMS

Página 1 de 38

Page 2: SmartForms .pdf

ABAP/4 Smart Forms

INDICE. SMART FORMS ....................................................................................................................................................... 1

CARACTERISTICAS: .......................................................................................................................................... 3 Ventajas: ............................................................................................................................................................ 3

Creación de un smart form..................................................................................................................................... 4 Tipos de nodos. ...................................................................................................................................................... 6

Áreas salida. ....................................................................................................................................................... 6 Salida Tabla. ...................................................................................................................................................... 6 Flow control. ...................................................................................................................................................... 6 Otros nodos. ....................................................................................................................................................... 6

Ejecución de los nodos........................................................................................................................................... 7 Parametrizaciones globales.................................................................................................................................... 7

Interface Formulario: ......................................................................................................................................... 8 Definiciones globales......................................................................................................................................... 9 Para crear una página nueva ........................................................................................................................... 10 Ventanas ......................................................................................................................................................... 12 Para crear un Texto de una ventana: .............................................................................................................. 13 Para mostrar los datos de una tabla interna ..................................................................................................... 16 Table Painter: ................................................................................................................................................... 18 Forma de imprimir Títulos y datos en la tabla................................................................................................. 21

Loop sobre la tabla a imprimir: ................................................................................................................. 25 Objeto ALTERNATIVE................................................................................................................................ 30 Objeto COMMAND....................................................................................................................................... 30 Objeto Program Line. .................................................................................................................................... 31

Smart Styles. ........................................................................................................................................................ 32 Migración de Sapscript a Smart forms................................................................................................................. 33 System Field......................................................................................................................................................... 34 Formatos de Campos............................................................................................................................................ 35 CODIGO PROGRAMA IMPRESOR. ................................................................................................................ 36

Página 2 de 38

Page 3: SmartForms .pdf

ABAP/4 Smart Forms

Smart Forms es la nueva herramienta de sap para la creación de formularios y su posterior mantenimiento . Igual Sapscript se va a mantener en el futuro pudiendo elegir utilizar uno u otro.

CARACTERISTICAS: Soporta salidas a impresoras, fax, email e internet (generando archivos xml).

Ventajas: • menos tiempo de creación y mantenimiento. • Interfase de usuario grafica • Publicación web Para imprimir un formulario se necesita un programa impresor y el smart form. Pero a diferencia de sapscript la lógica puede estar dentro del smart form; esto es lo que lo hace inteligente. El programa impresor solo pasa los datos, luego las condiciones, el filtrado de datos, ordenamiento, etc; se realiza a través de la lógica del smart form.

Página 3 de 38

Page 4: SmartForms .pdf

ABAP/4 Smart Forms

Creación de un smart form. • Elija la transacción SMARTFORMS. Ingrese en Form el nombre del objeto y presione el botón Create.

• También se puede realizar una copia de un smart form estándar y trabajar sobre la copia.

Página 4 de 38

Page 5: SmartForms .pdf

ABAP/4 Smart Forms

• El Form Builder aparece en la pantalla. Cualquier objeto se puede seleccionar o ampliar en el menú de navegación que se encuentra a la izquierda.

Navigation Menu: recorrer los distintos objetos (nodos). Maintenance Frame: propiedades y atributos de los objetos. Desde acá se setean todas las características. Form Painter: se utiliza para diseñar el Layout del smartform. Se pueden incorporar ventanas y gráficos determinando sus posiciones y eligiendo sus tamaños.

La lógica del formulario es representada por una estructura en forma de árbol que consiste en nodos individuales, como seteo global, textos, tablas de salida, gráficos, etc.

Página 5 de 38

Page 6: SmartForms .pdf

ABAP/4 Smart Forms

Tipos de nodos.

Áreas salida. PAGE. Una pagina de un formulario (sucesores: Windows, gráficos, direcciones).

WINDOWS. Área de salida en una pagina (todos menos Windows y page nodes).

Nodos elementales. TEXT. Para imprimir cualquier texto o contenido de tablas. GRAPHIC. Para imprimir gráficos.

ADDRESS. Para incluir una dirección

Salida Tabla. TEMPLATE. Salida de una tabla conteniendo datos estáticos (todos menos Windows, page, table, y template)

TABLE. Salida de una tabla conteniendo datos de aplicación. (igual).

Flow control. COMMAND. Ejecuta comandos especiales, next page, numeración de párrafos, printer control)

LOOP. Procesa el nodo sucesor repetidamente. (todos menos Windows y page ) ALTERNATIVE. Control de flujo dependiente de condición (todos menos Windows y page).

Otros nodos. FÓLDER. Combina nodos sucesores en grupos lógicos (todos menos Windows y page). COMPLEX SECTION. Combina todos los atributos de los nodos tipos template, table, loop, fólder (ídem). PROGRAM LINES. Ejecuta código abap (por ejemplo rutinas de conversión).

Página 6 de 38

Page 7: SmartForms .pdf

ABAP/4 Smart Forms

Ejecución de los nodos Los nodos (objetos) se ejecutan de arriba hacia abajo, uno a uno. Tener en cuenta esto cuanto se lean variables por que se puede dar que la quiera imprimir y todavía no llego a el objeto que la lee.

Parametrizaciones globales

Definición de opciones de página y parámetros utilizados en el formulario.

Página 7 de 38

Page 8: SmartForms .pdf

ABAP/4 Smart Forms

Interface Formulario: Se define en Import o Tablas las tablas internas que se utilizaran en el formulario. Por una cuestión de funcionamiento interno el tipo referencia de las tablas que se importan debe ser un tipo tabla definido por el usuario con la transacción SE11. En la interface Formulario se definen todos los argumentos ya sean de salida (export) como de entrada (import, tablas).

Tipo tabla definido por el usuario

Página 8 de 38

Page 9: SmartForms .pdf

ABAP/4 Smart Forms

Definiciones globales Se puede utilizar cualquier objeto definido en todos los nodos del árbol jerárquico. En Definiciones Globales se definen todas las variables que se van a utilizar en el smart form. El tipo referencia puede ser cualquiera (estándar, definido por el usuario).

Es la tabla o tipo de referencia. Ej. MKPF.

Se puede ingresar código en las lengüetas de Inicialización y Rutinas FORM.

Página 9 de 38

Page 10: SmartForms .pdf

ABAP/4 Smart Forms

Para crear una página nueva Hacer clic con el botón derecho del mouse y seleccionar Crear-> Página.

Una nueva página se agrega al árbol. Si se setea solo una pagina (por ejemplo FIRST) cuando la ventana MAIN se llena, automáticamente se realiza un salto de pagina pero siempre conservando la estructura de FIRST. Al crear una próxima pagina (por ejemplo NEXT) cuando se llena la ventana MAIN, se salta a esa pagina (la que corresponda) pudiendo esta pagina tener diferente estructura.

NEXT Si hay una proxima pagina. FIRST Si siempre es la misma.

Página 10 de 38

Page 11: SmartForms .pdf

ABAP/4 Smart Forms

• Se debe indicar en las Propiedades generales, la página que sigue a la actual si es que la hay(en este caso Next, de lo contrario First). De está manera se puede modificar el contenido de las páginas, como por ejemplo, imprimir la cabecera de un documento solo en la primera página.

Las paginas individuales de un formulario pueden diferir en su estructura. Por cada pagina se puede especificar una próxima pagina. También se puede repetidamente llamar a la misma pagina (por ejemplo cuando todas las paginas a imprimir son iguales).

Página 11 de 38

Page 12: SmartForms .pdf

ABAP/4 Smart Forms

Ventanas Los smart form están divididos en ventanas, cada una de estas se puede manejar en forma independiente siendo la única condición de que solo exista una ventana MAIN por pagina. Al Layout del smart form se accede seleccionando el botón Form Painter ( ).

Para crear una nueva ventana desde el smart painter botón derecho Create->ventana. Dentro de cada ventana se pueden incorporar los nodos (objetos) que se necesiten.

Página 12 de 38

Page 13: SmartForms .pdf

ABAP/4 Smart Forms

Para crear un Texto de una ventana: Hacer clic con el botón derecho del mouse y seleccionar Crear-> Texto

Los textos pueden ser tanto literales, como campos.

Página 13 de 38

Page 14: SmartForms .pdf

ABAP/4 Smart Forms

Se pueden agregar distintos tipos cambiando el Tipo texto:

• Elementos de texto • Módulos de texto (SE32) • Texto desde SAPscript text

Texto Literal

Página 14 de 38

Page 15: SmartForms .pdf

ABAP/4 Smart Forms

• Se debe aclarar en Nodos texto, el lugar en donde se ingresaran los textos.

• Para ingresar al Editor de texto hacer clic en el botón Editor txt ( )

Tablas y Campos a imprimir en el Smart Form.

Página 15 de 38

Page 16: SmartForms .pdf

ABAP/4 Smart Forms

Para mostrar los datos de una tabla interna Se debe crear una Sección compleja en el Main. Este combina los atributos de distintos tipos de nodos:

Table, Loop, Folder y Template. También se puede crear con los objetos Table y Loop.

Página 16 de 38

Page 17: SmartForms .pdf

ABAP/4 Smart Forms

• Se debe aclarar la clase de salida, en este ejemplo Tabla. También que se realizará un Proceso repetido para loopear la tabla

• También se puede poner a Table sin proceso repetido loopeando la tabla con un objeto Loop dentro de table. En ese caso Table solo define el formato de la tabla a visualizar (no confundir con la tabla de datos).

• En caso de trabajar con objeto tabla y loop la tabla de datos se recorre en el objeto loop solamente.

Página 17 de 38

Page 18: SmartForms .pdf

ABAP/4 Smart Forms

• En la lengüeta Tabla se define el tamaño de la tabla, las tabulaciones, el marco y el layout de la tabla con

el Table Painter ( )

Table Painter: Funciones:

- Dibujar líneas y columnas - Insertar, cortar, copiar, y borrar líneas - Borrar celdas - Cambiar el tamaño de las celdas y mover el separador de las celdas - Separar celdas - Seleccionar modelo de tablas

Página 18 de 38

Page 19: SmartForms .pdf

ABAP/4 Smart Forms

Para ejecutar una función, seleccionar la celda y elegir la función en el menú contextual (botón derecho del mouse).

Página 19 de 38

Page 20: SmartForms .pdf

ABAP/4 Smart Forms

• En la lengüeta de datos se asigna la tabla interna a una tabla local para luego ser recorrida. Esta puede tener alguna condición y algún criterio de ordenamiento.

Página 20 de 38

Page 21: SmartForms .pdf

ABAP/4 Smart Forms

Forma de imprimir Títulos y datos en la tabla Esto se realiza seleccionando en la solapa Eventos las opciones Ámbito Cabecera y Pie de pagina. El ámbito cabecera (dentro de la tabla formato) se va a imprimir en cada salto de pagina (cuando la ventana esta completa) , al inicio, o de ambas formas dependiendo del seteo. El Pie de Pagina (también dentro de la tabla formato) se va a imprimir dentro de cada salto de pagina , al final (en la ultima pagina , al final de la ultima línea mostrada en la tabla) o de ambas formas.

Para imprimir el titulo de los campos de la tabla.

Página 21 de 38

Page 22: SmartForms .pdf

ABAP/4 Smart Forms

Para imprimir la cabecera y pie se crean objetos de texto dentro de estas .

Titulo para el campo.

Luego hay que definir el formato de tabulación dentro de la tabla.

Página 22 de 38

Page 23: SmartForms .pdf

ABAP/4 Smart Forms

Para la primera columna:

Página 23 de 38

Page 24: SmartForms .pdf

ABAP/4 Smart Forms

Para las próximas:

Página 24 de 38

Page 25: SmartForms .pdf

ABAP/4 Smart Forms

Loop sobre la tabla a imprimir:

Página 25 de 38

Page 26: SmartForms .pdf

ABAP/4 Smart Forms

Tabla a loopear: Siempre se tiene que pasar la tabla importada a una tabla interna del smart form

Página 26 de 38

Page 27: SmartForms .pdf

ABAP/4 Smart Forms

Dato a Imprimir: Para imprimir un campo se tiene que crear un objeto texto por cada uno.

Página 27 de 38

Page 28: SmartForms .pdf

ABAP/4 Smart Forms

Primer columna:

Página 28 de 38

Page 29: SmartForms .pdf

ABAP/4 Smart Forms

Próximas columnas:

Página 29 de 38

Page 30: SmartForms .pdf

ABAP/4 Smart Forms

Objeto ALTERNATIVE

Los nodos en la estructura son procesados en orden descendente. En cada nodo condición hay dos subnodos

TRUE FALSE

dependiendo del resultado de la condición se ejecutan los nodos que están adentro de uno u otro subnodo. Otra utilización es la de imprimir una próxima pagina en forma dinámica.

Objeto COMMAND. Cuando se cumple la condición se ejecuta algunos de estos eve

Página 30 de 38

Condicion

ntos.

Page 31: SmartForms .pdf

ABAP/4 Smart Forms

Objeto Program Line. Con este objeto se puede ingresar código Abap al smart form, que se ejecuta cuando la secuencia llega al objeto. En este Objeto se tienen que definir los parámetros de entrada (variables de entrada) y los parámetros de salida (variables de salida). Ambos deben estar previamente definidos en el nodo Definiciones Globales en la solapa Datos globales.

Página 31 de 38

Page 32: SmartForms .pdf

ABAP/4 Smart Forms

Smart Styles. Con esta Transacción se pueden crear distintos formatos de párrafos y caracteres. Luego esos formatos se incorporan al smart form.

En el Smart Form en los objetos texto se selecciona el estilo creado.

Luego se establece el párrafo a imprimir

Página 32 de 38

Page 33: SmartForms .pdf

ABAP/4 Smart Forms

Migración de Sapscript a Smart forms

Pasos que ejecuta el sistema en la migración:

1- copia los atributos de lenguaje y opciones de salida 2- migra información de Layout. Incluidas paginas, ventanas, y sus atributos y posiciones. 3- Copia el texto en el formulario. 4- Despliega los campos en el texto. 5- Convierte los comandos sapscript a líneas comentadas y los despliega en texto. Lo único que no migra es el programa impresor.

Página 33 de 38

Page 34: SmartForms .pdf

ABAP/4 Smart Forms

System Field. Field name Description

&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. See also: Creating Pages.

&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. See also: Creating Pages.

&SFSY-JOBPAGES& Contains the total page number of all forms in the currently processed print request. See also: Creating Pages.

&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 or command-controlled)

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

Página 34 de 38

Page 35: SmartForms .pdf

ABAP/4 Smart Forms

&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 >). See also: Checking and Testing a Smart Form.

Formatos de Campos. Syntax Description

&field+<offset>& Skips <offset> places of the field value (character fields only). If the offset is greater than the length of the value, nothing is displayed.

&field(<length>)& Sets the output length to <length>.

&field(*)& If the field is defined by a Data Dictionary type, Smart Forms set the output length to the value specified there.

&field(S)& Suppresses the sign

&field(<)& Displays the sign to the left of the number

&field(.<nat.number>)& Limits output of decimal places to <nat.number>

&field(E<nat.number>)& Displays the field value with the fixed exponent <nat.number>. The mantissa is adapted to this exponent by shifting the decimal character and inserting zeros.

&field(T)& Suppresses thousand indicators when displaying fields of types DEC , CURR , INT , and QUAN .

&field(Z)& Suppresses leading zeros of numbers

&field(I)& Suppresses display of initial values

Página 35 de 38

Page 36: SmartForms .pdf

ABAP/4 Smart Forms

&field(K)& Deactivates a conversion routine specified in the Data Dictionary.

&field(R)& Right-justified display. Use this option only when specifying an output length as well.

&field(F<filler>)& Replaces left-justified blanks in the value by the fill character <filler>.

&field(L)& Converts and a date field to a local date and displays it. The date is then formatted using edit mask JPDAT . Since this representation uses Japanese characters, use it in the Japanese version of the SAP System only.

&field(C)& The system takes the field value as a sequence of words separated by blanks. Option C shifts these words to the left and leaves only one blank inbetween as separator. Any leading blanks are suppressed. This effect corresponds to that of the ABAP statement CONDENSE.

CODIGO PROGRAMA IMPRESOR. *----------------------------------------------------------------------- * Programa Impresor ejemplo curso Smart Forms * LER2 * GAP1 *----------------------------------------------------------------------- REPORT z_impresor_curso_sf . *----------------------------------------------------------------------- * Definicion de Tablas *----------------------------------------------------------------------- TABLES: bkpf, bseg. *----------------------------------------------------------------------- * Parameters *----------------------------------------------------------------------- DATA: fm_name TYPE rs38l_fnam. PARAMETERS: p_form TYPE tdsfname DEFAULT 'Z_SMARTFORM_CURSO', p_soci TYPE bkpf-bukrs, "sociedad p_ejer TYPE bkpf-gjahr, "ejercicio p_docu TYPE bkpf-belnr. "documento *----------------------------------------------------------------------- *Declaracion de Variables *-----------------------------------------------------------------------

Página 36 de 38

Page 37: SmartForms .pdf

ABAP/4 Smart Forms

DATA: t_bkpf TYPE z_bkpf_curso_sf, t_bseg TYPE z_bseg_curso_sf. *----------------------------------------------------------------------- *Carga los datos *----------------------------------------------------------------------- SELECT * INTO TABLE t_bkpf FROM bkpf WHERE bukrs = p_soci AND gjahr = p_ejer AND belnr = p_docu. * cargo toda la tabla para demostrar la seleccion en el SF. SELECT * INTO TABLE t_bseg FROM bseg. ************************************************************************ * CARGO DATOS PARA EL SMART FORM * ************************************************************************ CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = p_form * EL SF QUE VOY A LLAMAR * variant = ' ' * direct_call = ' ' IMPORTING fm_name = fm_name * ES EL PROGRAMA GENERADO POR EL SF EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0. * error handling MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. EXIT. ENDIF. ************************************************************************ * now call the generated function module * ************************************************************************ CALL FUNCTION fm_name EXPORTING * archive_index = * archive_parameters = * control_parameters = * mail_appl_obj = * mail_recipient = * mail_sender = * output_options = * user_settings = 'X'

Página 37 de 38

Page 38: SmartForms .pdf

ABAP/4 Smart Forms

t_bkpf = t_bkpf t_bseg = t_bseg * TABLA QUE EXPORTA AL SF * importing document_output_info = * job_output_info = * job_output_options = EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. IF sy-subrc <> 0. * error handling MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

Página 38 de 38