添加进度条功能
为了更加清晰的了解到程序执行进度,可以在程序中添加显示进度条功能。
DATA:BEGIN OF gt_result OCCURS 0,
sel(1),
matnr TYPE mara-matnr,
zz_edi_grp TYPE mara-zz_edi_grp,
werks TYPE mseg-werks,
eknam TYPE eknam,
maktx TYPE maktx,
num TYPE sy-tabix,
row TYPE sy-tabix,
icon TYPE icon-id,
mess TYPE string,
flag(1),
END OF gt_result.
DATA: lt_result LIKE STANDARD TABLE OF gt_result WITH HEADER LINE.
DATA: l_perc TYPE int4,
l_perc_cnt TYPE int4,
l_perc_i TYPE int4,
l_perc_stxt TYPE string,
l_sperc(3) TYPE c.
READ TABLE gt_result WITH KEY sel = 'X'.
IF sy-subrc <> 0.
MESSAGE 'Please select at leaset one line.' TYPE 'E' .
ENDIF.
lt_result[] = gt_result[].
DELETE lt_result[] WHERE sel <> 'X'.
l_perc = 0.
l_perc_i = 0.
l_perc_cnt = LINES( lt_result ). "DESCRIBE TABLE itab LINES n "
LOOP AT lt_result.
l_perc_i = l_perc_i + 1.
l_perc_stxt = ''.
l_perc = l_perc_i * 100 / l_perc_cnt.
l_sperc = l_perc.
CONCATENATE 'Processing: ' l_sperc '% …… ' lt_result-matnr '@ plant:' lt_result-werks
INTO l_perc_stxt.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = l_perc
text = l_perc_stxt.
........
ENDLOOPG.