вот такой вродебы простенький алгоритм:
data: pr0 pr1 pr2 type i.
select чегото_много
into itab.
* расчет параметров прогрессбара
describe table imara lines n.
prtxt = text-001. "текст сообщения
pr2 = 1 + ( n / 100 ). "шаг прогрессбара (число записей на 1%)
pr1 = pr2. "счетчик записей в одном шаге
pr0 = 0. "индикатор (1-100%)
*обработка данных
loop at itab.
* чегото делаем с каждой записью
perform Progress.
endloop.
form Progress.
* отображает каждый цикл обработки
pr1 = pr1 - 1.
if ( pr1 = 0 ). "следующий шаг - перегружаем счетчик
pr1 = pr2.
pr0 = pr0 + 1.
if pr0 = 100. "оборачивание через 100%
pr0 = 0.
endif.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = pr0
TEXT = prtxt.
endif.
endform.
т.е. ход обработки отображается на экране индикатором 0-100%
только вот странно - в процессе работы индикатор постоянно "мигает" - т.е. появится на несколько секунд, потом опять исчезнет, потом снова появляется .... Такое очучение, что у него есть некий "таймаут" отображения на экране sapgui. И на очень длинном цикле получается, что значительную часть времени индикатор не виден
Как-то можно пофиксить, чтобы он совсем не исчезал? ... Или накрайняк какойто иной индикатор того, что цикл идёт а не завис (песочные часики не предлагать - малоинформативно)