Добрый день.
В цикле обрабатываю таблицу, хочу выводить процент выполнения. Нарисовал код:
DATA: num_lines TYPE I, "Количество записей
curr_line TYPE I, "Текущая запись
percentage TYPE I, "Процент обработанных записей
old_percentage TYPE I. "Процент обработанных записей
curr_line = sy-tabix.
COMPUTE percentage = FLOOR( curr_line / num_lines * 100 ).
IF old_percentage <> percentage.
old_percentage = percentage.
PERFORM gui_text USING 'Обработка продаж' percentage.
ENDIF.
Смотрю, что происходит в отладчике. В таблице 137 строк.
1) Первая строка, percentage = 0 (правильно, ближайшее меньшее целое к 1/137*100 - ноль)
2) Вторая строка percentage=0, хотя 2/137*100=1,46
3) И так для всех строк...
Соответственно, непонятно, как в этом случае отрабатывает FLOOR...
Может еще чего забыл дописать?
|