Merge pull request #1563 from mkaesemann/feature/limit_progress_indicator_update

Limit Progress Indicator Updates
This commit is contained in:
Lars Hvam 2018-07-06 15:23:10 +02:00 committed by GitHub
commit 17d59cc28f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 46 additions and 6 deletions

View File

@ -22,6 +22,9 @@ CLASS zcl_abapgit_progress DEFINITION
RETURNING RETURNING
VALUE(rv_pct) TYPE i . VALUE(rv_pct) TYPE i .
PRIVATE SECTION. PRIVATE SECTION.
DATA mv_cv_time_next TYPE sy-uzeit .
DATA mv_cv_datum_next TYPE sy-datum .
ENDCLASS. ENDCLASS.
@ -52,14 +55,37 @@ CLASS ZCL_ABAPGIT_PROGRESS IMPLEMENTATION.
METHOD show. METHOD show.
DATA: lv_pct TYPE i. DATA: lv_pct TYPE i.
DATA: lv_time TYPE t.
lv_pct = calc_pct( iv_current ). CONSTANTS: c_wait_secs TYPE i VALUE 2.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' GET TIME.
EXPORTING lv_time = sy-uzeit.
percentage = lv_pct IF mv_cv_time_next IS INITIAL AND mv_cv_datum_next IS INITIAL.
text = iv_text. mv_cv_time_next = lv_time.
mv_cv_datum_next = sy-datum.
ENDIF.
"We only do a progress indication if enough time has passed
IF lv_time >= mv_cv_time_next AND sy-datum = mv_cv_datum_next OR
sy-datum > mv_cv_datum_next.
lv_pct = calc_pct( iv_current ).
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = lv_pct
text = iv_text.
mv_cv_time_next = lv_time + c_wait_secs.
ENDIF.
IF sy-datum > mv_cv_datum_next.
mv_cv_datum_next = sy-datum.
ENDIF.
IF mv_cv_time_next < lv_time.
mv_cv_datum_next = sy-datum + 1.
ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -14,6 +14,20 @@
<FIXPT>X</FIXPT> <FIXPT>X</FIXPT>
<UNICODE>X</UNICODE> <UNICODE>X</UNICODE>
</VSEOCLASS> </VSEOCLASS>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_ABAPGIT_PROGRESS</CLSNAME>
<CMPNAME>MV_CV_DATUM_NEXT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Date or Earliest, Next Progress Display</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_ABAPGIT_PROGRESS</CLSNAME>
<CMPNAME>MV_CV_TIME_NEXT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Time of Earliest, Next Progress Display</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values> </asx:values>
</asx:abap> </asx:abap>
</abapGit> </abapGit>