|
Hi Scott,
Hate to disagree, but you should not need to display the subfile for the
subsequent READC to work.
The technique I have always used with "load all subfiles" is to perform
a validation pass over a subfile (using a READC loop) and update each
subfile record with SFLNXTCHG set. If any record is invalid, the subfile
is re-displayed. Otherwise, another READC loop is performed - without
any interim reference to the subfile control record.
Only difference I see here is that a CHAIN is being used on the first
read through the subfile.
Regards
Paul Tuohy
ComCon
www.comconadvisor.com
www.systemideveloper.com
Scott Klement wrote:
hi Florin,
After marking the records changed (with the indicator for SFLNXTCHG) you
need to display the subfile before READC will see that the records are
changed.
When I do something like this, I typically will use the WRITE opcode to
redisplay the SFLCTL record without waiting for user input. That way, I
can go ahead and start reading them immediately.
On 9/30/2010 2:18 PM, Florin Todor - YYZ Concord wrote:
Hello,
I have an issue, which, in my opinion shouldn't be an issue at all
because it is pretty straight forward...
Anyway, I have a subfile where I need to check (for ALL records) if a
specific field has a certain value. I do this using CHAIN RRN op-code.
I, also, want to make EVERY record available for the next READC
operation; pretty simple, right? The only problem is it doesn't work!
The READC does not see any "changed" record...
Here is the relevant code:
C sr_chkhaz begsr
/Free
s1rrn = 1;
Dow s1rrn<= 30 and
v_hazfrt = 'N';
Chain s1rrn R010D02;
If %found();
If #DHAZ = 'X' or
#DHAZ = 'H';
v_hazfrt = 'Y';
Endif;
*in37 = *on;
Update R010D02;
*in37 = *off;
Endif;
s1rrn += 1;
Enddo;
s1rrn = 1;
Write R010D03;
/End-free
C endsr
*in37 turns on/off SFLNXTCHG for R010D02 Subfile record:
A R R010D02 SFL
A 37
AO 69 SFLNXTCHG
The excerpt of the main program:
......................................................
C exsr sr_chkhaz
C move *off *in35
C *in35 doweq *off
C readc r010d02 35
<<<<<<----------*in35 is turned *on
C *in35 ifeq *off
........................................................................
.............
Any thoughts?
Thank you
Florin Todor
<mailto:ftodor@xxxxxxxxxxxxxxxx>
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.