Le code que je vous propose permet de visualiser l’avancement du processus par le biais de l’icone d’un chronomètre dont l’aiguille tourne lentement. Lorsqu’elle a fait un tour complet, le traitement est terminé (c'est d'ailleurs la même icone que lorsqu'on compile un programme).
Pour ce faire, on utilise le module fonction SAPGUI_PROGRESS_INDICATOR.
Vous pouvez tester ce programme en l’état. Renseignez en écran de sélection un nombre de boucles (évitez un nombre trop grand… ça risque sinon de durer longtemps…)
- Code: Tout sélectionner
REPORT ZPROGRESSION.
***********************************************************************
* V A R I A B L E S G L O B A L E S *
***********************************************************************
DATA: W_AVCMT TYPE I VALUE 0,
W_INDEX TYPE STRING,
W_MESS TYPE STRING.
***********************************************************************
* E C R A N D E S E L E C T I O N *
***********************************************************************
PARAMETERS P_BOUCLE TYPE I DEFAULT '10'.
***********************************************************************
* S T A R T O F S E L E C T I O N *
***********************************************************************
START-OF-SELECTION.
DO P_BOUCLE TIMES.
* CALCUL DE L'ETAT D'AVANCEMENT
W_AVCMT = ( SY-INDEX * 100 ) / P_BOUCLE.
* GESTION DU MESSAGE
MOVE SY-INDEX TO W_INDEX.
CONCATENATE 'TRAITEMENT DE LA BOUCLE'
W_INDEX
INTO W_MESS
SEPARATED BY SPACE.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = W_AVCMT
TEXT = W_MESS.
* CETTE TEMPO, JUSTE POUR LA DEMO !!!
WAIT UP TO '1' SECONDS.
ENDDO.
WRITE 'C''EST FINI !!!'.



News