Close

enero 8, 2014

Smart forms: Métodos para ingresar código ABAP en formularios

En ocasiones puede ser necesario agregar código de ABAP en nuestros formularios de Smart Forms, por ejemplo si recibimos como parámetro el código del cliente, pero no su nombre entonces podemos ejecutar en el formulario una sentencia SQL para recuperar el nombre. Otro ejemplo podría ser si deseamos modificar una variable en base a ciertas condiciones. Ahora veremos las opciones que tenemos para agregar código a nuestros formularios.

Inicialización

En esta sección podemos inicializar variables, llamar funciones, ejecutar sentencias SQL, etc. Es recomendable que este sea el único lugar en el que ingreses código, de esta manera será más sencillo revisar el código del formulario por que estará en un único lugar donde se encuentre.

Para ingresar código hacemos doble clic en Definiciones globales, luego clic en la pestaña Inicialización, ahora debemos indicar cuales son los parámetros de entrada y de salida y finalmente ingresamos el código que necesitemos.

smartforms-codigo-inicializacion

Debemos tener en cuenta que las variables que definamos como parámetros de entrada o salida deben haberse declarado previamente ya sea como parámetros del formulario o como variables globales en la pestaña Datos glob. (en la misma pantalla anterior). Dentro del código también podemos declarar y usar variables pero serán locales y no podrán ser utilizadas en las demás secciones del formulario,

Rutinas FORM

Aquí podemos crear subrutinas como las que creamos en nuestros programas en las transacciones SE38 y SE80, estas pueden ser utilizadas en las Inicializaciones o en Lineas de programa. Ahora veremos como declararlas y como ingresarles código, en la siguiente sección Lineas de programa veremos como utilizar estas subrutinas.

Para crear las subrutinas hacemos doble clic en Definiciones globales, luego clic en Rutinas FORM, e ingresamos el código.

smartforms-rutina-form

Lineas de programa

Son objetos de código que se insertan de la misma forma que los textos, para ello hacemos clic derecho sobre la ventana principal o sobre alguna otra área del árbol Paginas y ventanas, y luego elegimos Crear > Lógica proceso > Líneas de programa.

smartforms-insertar-lineas-programa

Ahora ingresamos el código que deseemos, recordando declarar las variables de entrada y salida, en este caso llamo a la subrutina creada en la sección anterior.

smartforms-lineas-programa

Alternativa

Las alternativas permite decidir si se mostrará o ejecutará algún objeto en base a una condición, un uso común es el de mostrar un logo dependiendo de la empresa para la que se imprima el formulario.

Para agregar una alternativa hacemos clic derecho sobre algún elemento dentro del árbol Páginas y ventanas y seleccionamos del menú la opción Crear > Lógica proceso > Alternativa.

En la pestaña Propiedades generales ingresamos la condición en base a una variable del formulario, luego indicamos la comparación ( igual, diferente, mayor, menor, etc) haciendo clic sobre el botón en blanco y escribimos el valor con el que se compara, en este caso fue el texto 1000.

smartforms-alternativa

Para definir el objeto que se mostrará en caso de que la condición resulte ser verdadera, hacemos clic derecho sobre el icono verde TRUE a la izquierda de la pantalla y seleccionamos en el menú Crear el objeto que deseemos mostrar, en este caso fue una función gráfica la cual permite mostrar una imagen. Hacemos el mismo proceso para la condición falsa, con el icono rojo FALSE a la izquierda de la pantalla.

En las secciones TRUE y FALSE podemos crear cualquier tipo de objeto ya sea textos, imágenes, lineas de programa, etc y solo se ejecutarán o mostraran las que correspondan al resultado de la condición. También podemos anidar  Alternativas

Comando

Con esta opción se puede realizar saltos de páginas, podemos obtener más detalle de como realizar esto en el tema Trabajando con páginas y ventanas.

Loop

Esta opción permite recorrer una tabla interna, no entraremos en detalle ya que podemos lograr el mismo resultado al trabajar con tablas.