Estimado,
Si requieres ejecutar el proceso On-Line, lo puedes solucionar utilizando la funcion : SAPGUI_PROGRESS_INDICATOR
Por si no sabes como implemetar esto en tu programa, mas abajo te dejo un ejemplo :
Cualquier duda o problema que tengas avisame....
Saludos.
Atte.,
Malioni
REPORT Y_TEST_PROGRESS_INDICATOR.
*
*---->
*
TYPES: BEGIN OF t_mara,
matnr LIKE mara-matnr,
END OF t_mara.
DATA: it_mara TYPE STANDARD TABLE OF t_mara INITIAL SIZE 0,
wa_mara TYPE t_mara.
DATA: mara_lines TYPE i,
gd_percent TYPE i.
*
*----> START-OF-SELECTION
*
START-OF-SELECTION.
*
SELECT matnr INTO TABLE it_mara FROM mara.
*
CHECK sy-subrc EQ 0.
mara_lines = sy-dbcnt.
CLEAR : gd_percent.
*
LOOP AT it_mara INTO wa_mara.
PERFORM progress_bar USING 'Procesando Archivo...'(001)
sy-tabix
mara_lines.
*
*----> Si tu tabla MARA posee pocos registros desmarca la linea de mas abajo
*----> Donde esta el WAIT..asi podras ver el reloj en la barra de tareas.
*
* WAIT UP TO 2 SECONDS.
ENDLOOP.
*
END-OF-SELECTION.
*
*----> INICIO DE SECCION DE RUTINAS FORM's DEL PR0GRAMA
*
*
*======================================================================*
* FORM : PROGRESS_BAR
*======================================================================*
*
FORM progress_bar USING p_value
p_tabix
p_nlines.
*
DATA : w_text(40),
w_percentage TYPE p,
w_percent_char(3).
*
w_percentage = ( p_tabix / p_nlines ) * 100.
w_percent_char = w_percentage.
SHIFT w_percent_char LEFT DELETING LEADING ' '.
CONCATENATE p_value w_percent_char '% Procesado'(002) INTO w_text.
*
*
*----> Ojo con queres desplegar el "Indicador de Progreso" para todos los registros
*----> que son procesados dentro del "LOOP"...eso te ocasionaria que el programa
*----> fuese extremadamente "LENTO" ... es por eso que se acota su aparicion en
*----> la pantalla....
*
if w_percentage gt gd_percent or p_tabix eq 1.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = w_percentage
text = w_text.
gd_percent = w_percentage.
endif.
endform.