Visualiser l'état d'avancement d'un processus

Visualiser l'état d'avancement d'un processus

Messagede ghosteur » 03 Février 2010, 14:10

L’exécution d’un programme, malgré tous les efforts du développeur pour optimiser son code, peut parfois durer plusieurs minutes. Il peut être alors intéressant pour l’utilisateur de connaître l’état d’avancement du processus d’exécution. C’est en outre plus rassurant que de voir un sablier immobile, dont on ne sait jamais s’il indique un « patinage » quelconque, un dump imminent ou tout simplement un fonctionnement normal mais un peu long.
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 !!!'.
ghosteur
Posteur débutant
Posteur débutant
 
Messages: 8
Inscription: 01 Février 2010, 11:12

Re: Visualiser l'état d'avancement d'un processus

Messagede jlegal » 03 Février 2010, 19:28

Merci pour le programme! Très bonne idée!
Avatar de l’utilisateur
jlegal
Administrateur
Administrateur
 
Messages: 68
Inscription: 02 Juillet 2009, 22:56


Retourner vers ABAP

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités