PDA

Ver la Versión Completa : Colocar un Mensaje de Sistema en loops


Aascan
15/03/10, 17:35:12
Hola a todos.

Mi situación es la siguiente. Tengo un programa de report donde hago varios loops a una tabla interna para buscar ciertos datos. Ahora, lo que quisiera es saber si existe alguna manera de colocar, en cada uno de estos loops, un mensaje tipo sistema es decir, que se muestre en la esquina inferior izquierda de la pantalla, -como por ejemplo cuando se graba un documento- y el programa continúe con su ejecución normal.

Actualmente, lo que hago es llamar a la función SAPGUI_PROGRESS_INDICATOR, que, aunque hace lo que necesito, en ocasiones retarda la ejecución del report.

Resumiendo, lo que necesito es que el mensaje se despliegue y el programa continúe ejecutándose, desdeluego, sin que el usuario tenga que pulsar ninguna tecla para interactuar con el mensaje.

De pronto esto es una tontería, pero debo reconocer que no soy un experto en Abap, estoy comenzando.

Agradezco de antemano a quien pueda ayudarme con este tema.

Saludos,

Asdrúbal Ascanio
aascan@gmail.com

temaljose
15/03/10, 19:17:52
Buenas tardes, amigo, crea una tabla tipo log y luego al finalizar el loop la lees y despliegas los mensajes, saludos

Aascan
15/03/10, 20:43:44
Buenas tardes, amigo, crea una tabla tipo log y luego al finalizar el loop la lees y despliegas los mensajes, saludos

Gracias amigo, eso ya lo pensé y no me resultó por lo siguiente: Sabes que los tipos de mensaje (A,W,E,I,S) o bien requieren una acción del usuario (como pulsar enter) o bien te sacan de la ejecución del programa, y eso no es lo que necesito. Lo que necesito es que antes de cada uno de los Loops que manejo, se despliegue un mensaje en particular.

Lo logré finalmente, llamando a la función SAPGUI_PROGRESS_INDICATOR, pero la "engañé", haciéndola correr 3 veces y la puse antes de cada loop. (Originalmente la función se utiliza evaluando la cantidad de registros para determinar el porcentaje de ejecución ¿si?)

Te muestro como:

data: x_pass(2) type i.
clear x_pass.
do 3 times.
add 1 to x_pass.
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
percentage = x_pass
text = 'Creando Tabla Interna'.
enddo.

El mensaje se mantiene hasta que llamo o muestro al siguiente mensaje.

Como ves, lo que hago es parecido a lo que me sugieres, sólo que me apoyo en la función, que sí me muestra el mensaje y continúa la ejecución sin que el usuario intervenga, en vez de hacer loop a una tabla y usar la sentencia MESSAGE.

De todas formas aprecio el apoyo.

Muchas Gracias nuevamente, Temaljose.