|
Odd. I get the "+" sign next to the messages for the equivalent of line
23 on a full display. Is it the job messages you are saying don't show
the "+" sign?
Here is the code from my test sample. It displays the "+" sign. The
program was created by first creating a module and then using CRTPGM to
create an executable program.
A*** Display file TESTSTUFF
A DSPSIZ(24 80 *DS3)
A PRINT
A ERRSFL
A CF03
A CF12
A*
A R RECORD1A
A WINDOW(TESTWIN)
A VLDCMDKEY(25)
A BLINK
A MSGALARM
A OVERLAY
A 1 16'Window title'
A DSPATR(HI)
A 3 1'An input field'
A FIELDNAME 10A B 3 22TEXT('Field name')
A 9 1'F3=Exit F12=Cancel'
A COLOR(BLU)
A*
A R ERRMSGSFL SFL
A SFLMSGRCD(10)
A ERRMSGKEY SFLMSGKEY
A PGMNAME SFLPGMQ(10)
A*
A R ERRMSGSFLC SFLCTL(ERRMSGSFL)
A BLINK
A OVERLAY
A 88 SFLDSP
A 88 SFLINZ
A 88 SFLEND
A SFLSIZ(0002)
A SFLPAG(0001)
A WINDOW(TESTWIN)
A 81 USRRSTDSP
A PGMNAME SFLPGMQ(10)
A*
A R TESTWIN
A OVERLAY
A WINDOW(1 6 11 42)
A WDWBORDER((*DSPATR RI) (*CHAR
'...:-
A ::.:'))
A*
A R DUMMYFMT
A OVERLAY
A KEEP
A ASSUME
A 22 27'(No records to be displayed)'
A COLOR(WHT)
H* Program Source for TESTSTUFF
H DEBUG(*yes)
F*
FTESTSTUFF CF E WORKSTN INFDS(XINFDS)
F*
D*
D* Program Status Data Structure
D*
D ProgramStsDS SDS
D PgmName 1 10
D PgmMsgId 40 46
D PgmErrMsg 91 170
D PgmCntnProc 334 343
D ModuleCntnPrc 344 353
D*
D*
D* Display file information status data structure
D*
D XINFDS DS
D AttnIndByte 369 369
D CursorLoc 370 371
D ActualDtaLen 372 375B 0
D SFLRelRec 376 377B 0
D MinRelRec 378 379B 0
D NbrRelRecs 380 381B 0
D*
D* Function Keys
D*
D FunctionKeysDS DS
D*
D F03 1 Inz(x'33')
D F12 1 Inz(x'3C')
D*
D* Working Variables
D*
D RtnIndicator S N
D*
D NumberDS DS
D X 1 4 0
D Number 1 4
D*
D MessageData S 80
D*
D* SendAMsg Prototype
D*
D SendAMsg PR N
D 80
D*
C*
C Eval *IN88 = *On
C Eval X = 0
C*
C DoW AttnIndByte <> F03
C*
C Write TESTWIN
C Write ERRMSGSFLC
C ExFmt RECORD1A
C*
C If AttnindByte = F03
C Leave
C EndIf
C*
C If AttnindByte = F12
C Leave
C EndIf
C*
C Do 10
C Eval X = ( X + 1 )
C Eval MessageData = 'Message # ' + Number
C Eval RtnIndicator = SendAMsg(MessageData)
C EndDo
C*
C EndDo
C*
C* End Program
C*
C*
C MOVE *ON *INLR
C*
P*
P*
P* Send Program Message API
P*
P* Begin Procedure
P*
P SendAMsg B
D*
D* Procedure Interface
D*
D SendAMsg PI N
D MessageData 80
D*
D MsgIdToSend S 7
D*
D QualMsgFile DS
D MsgFileName 10
D MsgFileLib 10
D*
D DataForMsg S 256
D*
D DtaForMsgLen S 10I 0
D*
D MessageType S 10
D*
D CallStkEntry S 10
D*
D CallStkCntr S 10I 0
D*
D MessageKey S 4
D*
D SPMAPIError DS
D SPMBytesAval 10I 0 Inz(272)
D SPMBytesRtn 10I 0 Inz(0)
D SPMErrMsgId 7
D SPMReserved 1
D SPMErrMsgDta 256
D*
D CallStkLen S 10I 0
D*
D CallStkQual S 20
D*
D ScreenWait S 10I 0 Inz(0)
D*
C*
C* Send the message
C*
C Eval MsgIdToSend = 'CPF9897'
C*
C Eval MsgFileName = 'QCPFMSG'
C Eval MsgFileLib = '*LIBL '
C Eval DataForMsg = MessageData
C Eval DtaForMsgLen = %Len(%Trim(DataForMsg))
C Eval MessageType = '*INFO'
C Eval CallStkEntry = PgmCntnProc
C Eval CallStkQual = %Trim(PgmName)
C Eval %Subst(CallStkQual:11:10) = %Trim(PgmName)
C Eval CallStkLen = 20
C Eval CallStkCntr = 0
C*
C Call (E) 'QMHSNDPM'
C Parm MsgIdToSend
C Parm QualMsgFile
C Parm DataForMsg
C Parm DtaForMsgLen
C Parm MessageType
C Parm CallStkEntry
C Parm CallStkCntr
C Parm MessageKey
C Parm SPMAPIError
C If %Error
C EndIf
C*
C* End Procedure
C*
C Return *On
P*
P SendAMsg E
P*
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Booth Martin
Sent: Thursday, March 31, 2005 9:27 AM
To: Midrange Systems Technical Discussion
Subject: RE: ERRSFL keyword, and WINDOW
You are right, as far as you go. I'd done that. Where the issue
existed
for me is this:
On a full screen if the user has generated 5 error messages s/he can put
the
cursor on the message on line 24 and page through all 5 messages.
(You'd
notice the "+" sign on the bottom right of the screen.)
The same scenario, but done on a window, displays only the first error
message.
---------------------------------
Booth Martin
http://www.martinvt.com
---------------------------------
-------Original Message-------
From: Midrange Systems Technical Discussion
Date: 03/31/05 11:11:39
To: Midrange Systems Technical Discussion
Subject: RE: ERRSFL keyword, and WINDOW
Booth,
Have you tried leaving two lines at the bottom of the window for
messages? Try the following.
1. As you normally would add the ERRSFL keyword at the file level.
2. Make your window 1 line larger than it is now and make your subfile
message
line the equivalent of line 23 for a full display. So for a window
with 11
lines you make line 10 the SFLMSGRCD line. This does assume the
message
subfile's size is 2 and the message subfile's page is 1.
My experience has been that messages you send to the program message
queue show up in the SFLMSGRCD line and job messages show up in the last
line (equivalent of line 24 on a full display).
Gary Monnier
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Booth Martin
Sent: Wednesday, March 30, 2005 10:00 AM
To: Midrange Systems Technical Discussion
Subject: ERRSFL keyword, and WINDOW
ERRSFL keyword, and WINDOW
What am I misunderstanding? I used ERRSFL for error messages on full
screens, and the error(s) are accumulated and I can roll through them on
the
bottom of the screen. Identical code, but in a window, shows only the
first
error message.
I've looked carefully for a typo, and am beginning to wonder if ERRSFL
works
differently in a window than on a screen?
---------------------------------
Booth Martin
http://www.martinvt.com
---------------------------------
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.