On 31/03/2009, at 4:41 AM, Blake.Moorcroft@xxxxxxxxxx wrote:
This subfile procedure is used in a number of programs. I use it
any time
we need a subfile - basically cloned code. None of the other programs
that use this code are having the same issue - there are around 40
different programs using it. The logical that is used during the
fill of
this particular subfile is not unusual - a three key index with
ascending
controls on the keys - there are no omit or select functions. I have
checked the logical to verify the index properties.
I've read all the various comments on this problem. Let's see if this
is an accurate summary. Correct any wrong presumption:
o You have 40 programs that share the same subfile handling code.
o The subfile are SFLPAG=SFLSIZ
o You have generic code that handles both page-up and page-down
o In 39 programs the output on paging backwards through the file is
correct but in this one it is reversed.
o Debug shows that you read the expected records.
o Your code does the following:
- read 1st record from file and add to record 1 in subfile
- read 2nd record from file and add to record 2 in subfile
- . . .
- read 10th record from file and add to record 10 in subfile
- subfile is now full so you display it
- user presses page down
- clear the subfile
- read 11th record and add to record 1 in subfile
- read 12th record and add to record 2 in subfile
- . . .
- read 20th record and add to record 10 in subfile
- subfile is now full so you display it
- user presses page up
- clear the subfile
- position to record 10 (i.e., current=20 minus size=10)
- read 10th record and add to record 10 in subfile
- read 9th record and add to record 9 in subfile
- . . .
- read 1st record and add to record 1 in subfile
- subfile is now full so you display it
The problem is the instead of 10th record being in record 10 it is in
record 1 and each file record follows it thus the subfile is in
reverse sequence.
If this is an accurate representation of the processing and result
then the problem is likely due to an un-initialised subfile. I expect
that the original code is depending on the use of SFLRNA. This keyword
is either:
o specified in the DDS for the working 39 programs and omitted from
yours
o specified in your DDS but conditioned off
o specified and conditioned on but you've incorrectly mapped display
file indicators to named indicators and are not actually setting it on.
If it appears that SFLRNA is specified and activated correctly then
the likely cause is that your decrementing loop counter is not
correctly mapped to the SFILE variable.
Regards,
Simon Coulter.
--------------------------------------------------------------------
FlyByNight Software OS/400, i5/OS Technical Specialists
http://www.flybynight.com.au/
Phone: +61 2 6657 8251 Mobile: +61 0411 091 400 /"\
Fax: +61 2 6657 8251 \ /
X
ASCII Ribbon campaign against HTML E-Mail / \
--------------------------------------------------------------------
As an Amazon Associate we earn from qualifying purchases.