Indicador de progresso
2011-03-07
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.