Indicador de progresso
2011-03-07
![images/thumbnail.jpg - Thumbnail](/2011/03/indicador-de-progresso/images/thumbnail_hua56c2a37fe6387e758cb9ba49281c8d1_4602_300x0_resize_q75_box.jpg)
Sabes aquelas barras de progresso que vão indicando quanto falta para terminar um processo? Aquelas que às vezes quando chegam ao fim voltam ao princípio e te deixam frustrado e baralhado sem entender para que servem afinal? Eis como as podes usar num programa ABAP.
DATA: lv_texto TYPE char40,
lv_valor type i.
DO 10 TIMES.
WAIT UP TO 1 SECONDS.
CLEAR lv_texto.
lv_valor = sy-index * 10.
lv_texto(3) = lv_valor.
CONCATENATE lv_texto '%!' INTO lv_texto.
CONCATENATE 'Já só falta' lv_texto INTO lv_texto SEPARATED BY space.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = lv_valor
text = lv_texto.
ENDDO.
Nota que o cronómetro vai ficando preenchido. Infelizmente o comando WAIT UP TO N SECONDS está limitado a inteiros e por isso não sei como se pode fazer uma contagem mais rápida. Mas já é melhor que nada.
E atenção ao comando WAIT porque faz um COMMIT à base de dados.
O Abapinho saúda-vos.