Javier,
Te adjunto un CL y una pantalla que hace algo parecido. Es una pantalla que
se va refrescando cada 5 segundos y cambiando cada vez de color una barra en
la parte inferior de la pantalla.
La línea realmente importante es la 41/42:
0001.00 PGM
060323
0002.00 DCLF FILE(LATENCIA)
060323
0003.00 CHGVAR VAR(&IN91) VALUE('1')
060323
0004.00 INI:
060323
0005.00 IF COND(&IN91 = '1') THEN(DO)
060323
0006.00 CHGVAR VAR(&IN91) VALUE('0')
060323
0007.00 CHGVAR VAR(&IN92) VALUE('1')
060323
0008.00 GOTO CMDLBL(REFRESCO)
060323
0009.00 ENDDO
060323
0010.00 IF COND(&IN92 = '1') THEN(DO)
060323
0011.00 CHGVAR VAR(&IN92) VALUE('0')
060323
0012.00 CHGVAR VAR(&IN93) VALUE('1')
060323
0013.00 GOTO CMDLBL(REFRESCO)
060323
0014.00 ENDDO
060323
0015.00 IF COND(&IN93 = '1') THEN(DO)
060323
0016.00 CHGVAR VAR(&IN93) VALUE('0')
060323
0017.00 CHGVAR VAR(&IN94) VALUE('1')
060323
0018.00 GOTO CMDLBL(REFRESCO)
060323
0019.00 ENDDO
060323
0020.00 IF COND(&IN94 = '1') THEN(DO)
060323
0021.00 CHGVAR VAR(&IN94) VALUE('0')
060323
0022.00 CHGVAR VAR(&IN95) VALUE('1')
060323
0023.00 GOTO CMDLBL(REFRESCO)
060323
0024.00 ENDDO
060323
0025.00 IF COND(&IN95 = '1') THEN(DO)
060323
0026.00 CHGVAR VAR(&IN95) VALUE('0')
060323
0027.00 CHGVAR VAR(&IN96) VALUE('1')
060323
0028.00 GOTO CMDLBL(REFRESCO)
060323
0029.00 ENDDO
060323
0030.00 IF COND(&IN96 = '1') THEN(DO)
060323
0031.00 CHGVAR VAR(&IN96) VALUE('0')
060323
0032.00 CHGVAR VAR(&IN97) VALUE('1')
060323
0033.00 GOTO CMDLBL(REFRESCO)
060323
0034.00 ENDDO
060323
0035.00 IF COND(&IN97 = '1') THEN(DO)
060323
0036.00 CHGVAR VAR(&IN97) VALUE('0')
060323
0037.00 CHGVAR VAR(&IN91) VALUE('1')
060323
0038.00 GOTO CMDLBL(REFRESCO)
060323
0039.00 ENDDO
060323
0040.00 REFRESCO:
060323
0041.00 SNDRCVF RCDFMT(R1) WAIT(*NO)
060323
0042.00 MONMSG MSGID(CPF0887) EXEC(GOTO CMDLBL(FIN))
060323
0043.00 DLYJOB DLY(5)
140221
0044.00 GOTO CMDLBL(INI)
990717
0045.00
990717
0046.00 FIN:
990717
0047.00 ENDPGM
990717
Pantalla:
0000.10 A*%%TS SD 20140221 113548 XEM REL-V5R2M0 5722-WDS
140221
0000.20 A*%%EC
140221
0000.30 A DSPSIZ(24 80 *DS3)
140221
0000.40 A R DUMMY
011122
0000.50 A*%%TS SD 20011122 115052 XEM REL-V5R2M0 5722-WDS
011122
0000.60 A ASSUME
011122
0000.70 A 1 2' '
011122
0000.80 A R R1
140221
0000.90 A*%%TS SD 20140221 113548 XEM REL-V5R2M0 5722-WDS
140221
0001.00 A WINDOW(8 20 8 30
*NOMSGLIN) 140221
0001.10 A CF03(03 'Salir')
140221
0001.20 A CF12(12 'Salir')
140221
0001.30 A OVERLAY
140221
0001.40 A 1 1'Refresco de pantalla'
140221
0001.50 A DSPATR(HI)
140221
0001.60 A 3 1'Esta ventana se
actualiza cada' 140221
0001.70 A 4 1'5 segundos.'
140221
0001.80 A 5 1'Pulse Intro para
continuar' 140221
0001.90 A 7 1SYSNAME
140221
0002.00 A 7 11DATE
140221
0002.10 A EDTCDE(Y)
140221
0002.20 A 7 21TIME
140221
0002.30 A 8 1'
' 140221
0002.40 A DSPATR(RI)
140221
0002.50 A 91 COLOR(BLU)
140221
0002.60 A 92 COLOR(GRN)
140221
0002.70 A 93 COLOR(PNK)
140221
0002.80 A 94 COLOR(RED)
140221
0002.90 A 95 COLOR(TRQ)
140221
0003.00 A 96 COLOR(WHT)
140221
0003.10 A 97 COLOR(YLW)
140221
****************** Fin de datos
****************************************************************************
*************
La he usado alguna vez para evitar que una sesión de C.A. se interrumpiera
haciendo pruebas.
Saludos,
Xavier Estrems
De: [email protected]
[mailto:[email protected]] En nombre de Javier B.
Enviado el: divendres, 8 d'agost de 2014 12:38
Para: Foro-Help400
Asunto: RE: No me muestra registro de pantalla
Gracias Bernabé pero me temo que no surge ningún efecto :
SNDPGMMSG MSGID(CPF9898)
MSGF(QCPFMSG)
MSGDTA(&MSG)
TOPGMQ(*EXT)
MSGTYPE(*STATUS)
A mi no me visualiza nada, seguramente es algo que hago mal pero no se qué.
Saludos,
Javier
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 7 Aug 2014 08:39:16 -0600
> From: Bernabé Estrada <[email protected]
<mailto:[email protected]> >
> Subject: RE: No me muestra registro de pantalla
> To: "'forum.help400'" <[email protected]
<mailto:[email protected]> >
> Message-ID: <[email protected]
<mailto:[email protected]> >
> Content-Type: text/plain; charset="iso-8859-1"
>
> Mismo ejemplo en RPG 3
>
>
>
> FPANTALLACF E WORKSTN
>
> F KNUM 1
>
> C *IN03 DOUEQ*ON
>
> C WRITEREGISTRO 77
>
> C READ PANTALLA 8899
>
> C *IN03 IFEQ *OFF
>
> C DATO MULT 2 RESUL
>
> C ENDIF
>
> C ENDDO
>
> C MOVE *ON *INLR
>
>
>
> En lugar del maxdev de ile es el knum todo lo demás es prácticamente lo
> mismo.
>
> Yo lo he usado para hacer precisamente pantallas que van indicando el
> porcentaje de avance de un proceso.
>
> Tambien, si lo único que queres es mostrar el avance, podrías probar
> enviando un mensaje de estado con un comando:
>
>
>
> En el programa principal leo el archivo (o lleno el subfile o lo que
> querras) y armo el mensaje (campo MSG) que se envía como parámetro a una
CL
> que lo único que hace es desplegar el mensaje en la línea de estatus:
>
> FCVDCOVENIP E DISK
>
> E ARR 1 1 80
>
> I DS
>
> I 1 80 MSG
>
> I I 12 160REGIS
>
> I I 31 350TOTAL
>
> C ADD 1 CONTA 50
>
> C MOVEAARR,1 MSG
>
> C Z-ADD312 TOTAL
>
> C Z-ADDCONTA REGIS
>
> C CALL '$$'
>
> C PARM MSG
>
> C FREE '$$'
>
> **
>
> PROCESADOS $$$$$ REGISTROS DE $$$$$
>
>
>
>
>
> Y aquí está la CL.
>
>
>
> PGM PARM(&MENSAJE)
>
> DCL VAR(&MENSAJE) TYPE(*CHAR) LEN(80)
>
> SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) +
>
> MSGDTA(&MENSAJE) TOPGMQ(*EXT) +
>
> MSGTYPE(*STATUS)
>
> ENDPGM
>
>
>
>
>
>
>
> Saludos.
>
>
>
> From: [email protected]
<mailto:[email protected]>
> [mailto:[email protected]] On Behalf Of Javier B.
> Sent: jueves, 07 de agosto de 2014 06:43 a.m.
> To: Foro-Help400
> Subject: RE: No me muestra registro de pantalla
>
>
>
> Pues me temo que no porque no utilizo ILE y porque me sale otro error :
>
> "No hay coincidencia INDARA entre el programa y el archivo PMTU140"
>
>
>
> Saludos y gracias de todas formas,
>
>
>
> Javier
>
>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.