Réaffichage automatique d’un DSPF
Vous avez besoin d’avoir un écran qui se met à jour automatiquement voici un exemple qui fait ca.
Cette une barre d’avancement qui rafraichit également l’heure affichée.
DSPF
A DSPSIZ(24 80 *DS3)
A CA03(03)
A* Test écran en réaffichage auto
A*
A R FMT01
A*%%TS SD 20231026 124638 PLB REL-V7R4M0 5770-WDS
A PUTOVR
A OVRDTA
A OVRATR
A 5 27'Barre d''avancement'
A DSPATR(HI)
A TEXTE 50A O 11 15
A 22 4'F3=Exit'
A STATUS 15A O 9 27
CLLE
/* Ecran en mise à jour automatique */
PGM
DCLF reaf
dcl &i *int
dcl &wtime *char 6
chgvar &lancer 'Appuyez sur <ENTER> pour démarrer'
chgvar &status 'Arrêté '
rtvsysval qtime &wtime
chgvar &time (%sst(&wtime 1 2) *tcat ':' *tcat +
%sst(&wtime 3 2) *tcat ':' *tcat +
%sst(&wtime 5 2))
SNDRCVF RCDFMT(FMT01) WAIT(*YES)
DOUNTIL COND(&IN03)
if cond(&in03) then(leave)
chgvar &lancer ' '
chgvar &status 'Démarré'
DOFOR VAR(&I) FROM(1) TO(50)
DLYJOB DLY(1)
rtvsysval qtime &wtime
chgvar &time (%sst(&wtime 1 2) *tcat ':' *tcat +
%sst(&wtime 3 2) *tcat ':' *tcat +
%sst(&wtime 5 2))
chgvar &texte (&texte *tcat '>')
SNDRCVF RCDFMT(FMT01) WAIT(*NO)
enddo
chgvar &texte ('Chargé ')
SNDRCVF RCDFMT(FMT01) WAIT(*NO)
DLYJOB DLY(2)
chgvar &in03 '1'
enddo
ENDPGM
Remarque :
Votre écran doit être compiler avec l’option DFRWRT(*NO)