En este tema veremos como activar la barra de herramientas estándar de SAP y como procesar los eventos que se disparan cuando se hace clic sobre la barra de herramientas.
Primero necesitamos algún programa con algún dynpro y en el include Top vamos a declarar dos variables:
data: ok_code TYPE SYUCOMM, save_ok TYPE SYUCOMM.
Ahora hacemos doble clic sobre el dynpro y en la pestaña Atrib.gral. encontraremos el elemento OK que es generado automáticamente en cada dynpro, a este le vamos a asociar la variable ok_code que declaramos previamente.
Luego en la pestaña Log.proceso vamos a eliminar los comentarios de las lineas 3 y 6 y luego damos doble clic sobre cada una para crear los módulos STATUS_0001 y STATUS_0001, al hacerlo se nos preguntará en que Include crearlo, como regla general vamos a crear los módulos STATUS_xxxx en los include xxxx_o01 y los modulos USER_COMMAND_xxxx en los include xxxxx_i01
Al crear el modulo STATUS_0001 debemos definir su PF-STATUS (barra de herramientas, y menú) y su TITLEBAR (barra de titulo)
Ahora al dar doble clic sobre el texto TITULO_01 podemos crear un objeto que contenga el titulo del dynpro. Para crear la barra de herramientas hacemos doble clic sobre el texto BARRA_HERRAMIENTAS.
Expandimos la sección Teclas de función y activamos el tercer botón asignándole un código, en este caso ATRAS
Luego en la pestaña Atrib.gral vamos a asociar la variable que declaramos como ok_code en el elemento OK, con esto haremos que cuando alguien de un clic sobre el botón de la barra de herramientas, SAP va a almacenar su código (ATRAS) en esta variable.
Ahora debemos ingresar un poco de codigo en el modulo que procesa las entradas del usuario, para esto hacemos doble clic sobre el nombre del modulo dentro del dynpro
E ingresamos un poco de código en el modulo de forma que quede asi:
MODULE user_command_0001 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'ATRAS'. set screen '0'. WHEN OTHERS. ENDCASE. ENDMODULE.
Lo primero que hacemos es guardar el valor de ok_code en una variable temporal y luego limpiarla para quedarnos trabajando con la variable temporal. Dentro de una sentencia CASE preguntamos si el valor que corresponde a la entrada del usuario es ATRAS entonces aplicamos el comando set screen ‘0’, que finaliza el programa.
Ahora podemos correr el programa y ver que el icono de la barra de herramientas se ha activado y podemos usarlo para cerrar nuestra aplicación.