|
Hola
Juan:
Excelente idea lo de la
ventanita.
En relaci�n al mensaje en
la linea 24, te adjunto el contenido de un correo enviado al Foro por Miguel
Angel Aragones para solucionar este punto. Aunque te soy franco, me parece m�s
interesante tu soluci�n.
Saludos.
Erwin
Toledo
From:
Miguel Angel Aragones [[EMAIL PROTECTED]]
Sent: Mi�rcoles, 06 de Marzo de 2002 04:35 a.m. To: Forum Help400 Subject: Mensajes de interrupci�n Por si a
alguien le interesa, adjunto una soluci�n que he encontrado en
una web dedicada al AS/400. Se trata de conseguir que los mensajes de interrupci�n aparezcan en la �ltima l�nea de la pantalla. /*
program to handle break messages
*/
PGM PARM(&MSGQ &MSGQLIB &MSGK) DCL VAR(&MSGQ) TYPE(*CHAR) LEN(10) DCL VAR(&MSGQLIB) TYPE(*CHAR) LEN(10) DCL VAR(&MSGK) TYPE(*CHAR) LEN(4) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(132) DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) DCL VAR(&MSGTXT) TYPE(*CHAR) LEN(132) /* receive the break message */ RCVMSG MSGQ(&MSGQLIB/&MSGQ) MSGKEY(&MSGK) RMV(*NO) + MSGDTA(&MSGDTA) MSGID(&MSGID) MSGF(&MSGF) + SNDMSGFLIB(&MSGFLIB) MSG(&MSGTXT) IF COND(&MSGID
= ' ') THEN(DO)
/* if there's no msgid, use &msgtxt and CPF9897 */ /* to satisfy status message requirements */ CHGVAR VAR(&MSGID) VALUE('CPF9897') CHGVAR VAR(&MSGFLIB) VALUE('QSYS') CHGVAR VAR(&MSGF) VALUE('QCPFMSG') CHGVAR VAR(&MSGDTA) VALUE(&MSGTXT) ENDDO /*
resend it as a status message
*/
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) TOPGMQ(*EXT) MSGTYPE(*STATUS) MONMSG MSGID(CPF0000) ENDPGM Give this
program a meaningful name (perhaps something like MSGH, for
message handler) and compile it using Create CL Program (CRTCLPGM) command. Next,
determine the name of your user profile's message queue. Your
message queue is probably named the same as your user profile, because the default value for the MSGQ parameter of the Create User Profile (CRTUSRPRF) command is *USRPRF. If you're in doubt, use the Display User Profile (DSPUSRPRF) command to see what message queue you're using. Every
time you sign on, you have to tell the system that this program is
going to handle break messages for your user profile's message queue. To do that, I added the following line to my initial program. I'm referring to the one specified in the INLPGM parameter of the Create User Profile (CRTUSRPRF) command. CHGMSGQ MSGQ(THOLT) DLVRY(*BREAK)
PGM(MSGH)
If
you don't have your own initial program, but have to share one with
other people, maybe you could create your own initial program that changes the message queue and then calls the shared initial program.
|
- Re: L�nea 24 (Os deb�a laexplicaci�n) Erwin Toledo
- Re: L�nea 24 (Os deb�a laexplicaci�n) Andoni (Infonegocio)
