|
Its been some time, but I seem to recall (as I'm having problems) that
the sequence of the writes and reads to multiple formats on one screen
can have an affect (effect?) on how the cursor is placed when dspatr(PC)
is used on one or both records.
It may well be that the TN5250 is the problem, but more likely my
program.
I have reduce the program to just a few components, like wise the
display and the problem persists.
My problem is that I am outputting:-
D1HDR00 , A header,
D1PNL02A , A two line i/o format
D1PNL02D , A single line i/o format
D1FTR00 , A footer.
As far as I can tell the order in which the records are read makes no
difference.
However the order of writes seems to cause problems with the cursor
position.
If I write D1PNL02A then D1PNL02D with errors in both, the cursor is at
D1PNL02D which is wrong.
Errors in just one positions the cursor correctly.
If I write 02D then 02A and error in both the cursor is correctly
positioned.
If an error is in 02A only the cursor is correctly positioned.
An error in 02D and none in 02A positions the cursor goes to 02A which
is wrong.
Am I doing something silly, or is this as designed? Could someone test
this to see if the same problems happens for them?
CODE FOLLOWS>>>>
* ________________________________________________________________________
* !"£$%^&*()_+{}:@~<>?
* |Description : Standard template
* |Programmer : Jonathan Wilson
* |Date Created : 31/10/1994
* |-----------------------------------------------------------------------
* |MODIFICATIONS
* |-----------------------------------------------------------------------
* |By : Jonathan Wilson
* |Date : 28/07/1995
* |Scan :
* |Description : Bibliographic maintenance
*-------------------------------------------------------------------------
DSPSIZ(24 80 *DS3)
ALTHELP
ALTPAGEUP
ALTPAGEDWN
CF02
CF03
CF04
CF05
CF06
CF09
CF10
CF11
CF12
CF13
CF14
CF15
CF16
CF17
CF18
CF19
CF20
CF21
CF22
CF23
CF24
HELP
VLDCMDKEY(22)
ROLLUP(23)
ROLLDOWN(24)
*-------------------------------------------------------------------------
R D1HDR00
*-------------------------------------------------------------------------
TEXT('D1 header')
KEEP
RTNCSRLOC(&D@CRCD &D@CFLD &D@CPSN)
D@CRCD 10A H
D@CFLD 10A H
D@CPSN 4S 0H
P00#01 20A H TEXT('Save field, *IN01-20')
P00#88 10A H TEXT('Save field, *IN88-97')
*-------------------------------------------------------------------------
R D1PNL02A
*-------------------------------------------------------------------------
TEXT('D1 panel 02')
CHANGE(21)
KEEP
OVERLAY
P02A60 38A H TEXT('Save field, *IN60-97')
3 2'Published date . . . . . . .'
D1#09 1A O 3 31
D1PBDT 10A B 3 33
DSPATR(UL)
97 DSPATR(RI)
97 DSPATR(PC)
4 2'Reprint date . . . . . . . .'
D1#10 1A O 4 31
D1RPDT 10A B 4 33
DSPATR(UL)
95 DSPATR(RI)
95 DSPATR(PC)
*-------------------------------------------------------------------------
R D1PNL02D
*-------------------------------------------------------------------------
TEXT('D1 panel 02')
CHANGE(21)
KEEP
OVERLAY
P02D60 38A H TEXT('Save field, *IN60-97')
21 2'Just stuff to prove . . . .'
D1#15 1A O 21 31
D1RPDD 10A B 21 33
DSPATR(UL)
97 DSPATR(RI)
97 DSPATR(PC)
*-------------------------------------------------------------------------
R D1FTR00
*-------------------------------------------------------------------------
TEXT('List footer record')
KEEP
OVERLAY
23 2'F3=Exit F5=Refresh F12=Cancel'
COLOR(BLU)
*
H 1 D
*
FSO1711D CF E WORKSTN
*
*
C EXSR @EDT01
C SETON LR
C RETRN
*
*-------------------------------------------------------------------------
C @EDT01 BEGSR
*-------------------------------------------------------------------------
*
C MOVE '*ENT' @FMT 4
*
* Do while exit not requested
B1 C @FMT DOWNE*BLANKS
*
*
B2 C @FMT IFEQ '*ENT'
C EXSR @VLP00
E2 C ENDIF
*
* Process display format
C WRITED1HDR00
*
C MOVEAP02D60 *IN,60
C WRITED1PNL02D
*
C MOVEAP02A60 *IN,60
C WRITED1PNL02A
*
C WRITED1FTR00
*
*
*
C READ D1HDR00 99
*
C READ D1PNL02A 99
*
C READ D1PNL02D 99
*
*
C MOVE *IN22 @VCF 1
C CLEAR@FMT
*
* Test and validate display format
B2 C SELEC
*
* F3=Exit
W2 C *INKC WHEQ *ON
*
* Enter, RollUp, RollDown,
W2 C @VCF WHNE *ON
*
*
C EXSR @VLP00
*
*
C MOVE '*DSP' @FMT
*
*
E2 C ENDSL
*
*
E1 C ENDDO
*
*
C ENDSR
*
*-------------------------------------------------------------------------
C @VLP00 BEGSR
*-------------------------------------------------------------------------
*
*
*
C EXSR @VP02A
*
*
C EXSR @VP02D
*
*
C ENDSR
*
*-------------------------------------------------------------------------
C @VP02A BEGSR
*-------------------------------------------------------------------------
*
*
C MOVE *ZEROS P02A60
C MOVEAP02A60 *IN,60
*
*
C D1PBDT IFNE *BLANKS
C MOVE *ON *IN97
C MOVE '*ERR' @FMT
C ENDIF
*
*
C D1RPDT IFNE *BLANKS
C MOVE *ON *IN95
C MOVE '*ERR' @FMT
C ENDIF
*
*
C MOVEA*IN,60 P02A60
*
*
C ENDSR
*
*-------------------------------------------------------------------------
C @VP02D BEGSR
*-------------------------------------------------------------------------
*
*
C MOVE *ZEROS P02D60
C MOVEAP02D60 *IN,60
*
*
C D1RPDD IFNE *BLANKS
C MOVE *ON *IN97
C MOVE '*ERR' @FMT
C ENDIF
*
*
C MOVEA*IN,60 P02D60
*
*
C ENDSR
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.