|
I don't understand... it looks like you are rolling your own subfile and not using the one defined and supplied by DDS? --------------------------------- Booth Martin http://www.martinvt.com --------------------------------- -------Original Message------- From: Midrange Systems Technical Discussion Date: 03/31/05 13:15:14 To: Midrange Systems Technical Discussion Subject: RE: ERRSFL keyword, and WINDOW 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. -- 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-2024 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.