×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
The key is to have the date in reverse format, in other words Year, Month
Day as that will put the dates in the correct order. For example, suppose
you had the following dates:
01/11/07
02/10/07
03/09/07
Sequencing them in DD/MM/YY doesn't give you the correct order or records.
If you tried to select records from 01/09/07 to 30/09/07 the first record
you would read would be the 01/11/07 which isn't in the date range.
Depending on how the program was written you may or may not read any more
programs in the loop.
If you store the dates on your file in YYMMDD order (or better still, use a
date type field in *ISO format - YYYY-MM-DD) then the records would be in
the following order:
2007-09-01
2007-10-02
2007-11-03
Which is the correct sequence. In your program you can now use SETLL to
position to the 'first' record in your range and have a loop that tests the
record you've read against the last date of your range. For example:
FMyFile IF E K Disk
D FromDate s d DatFmt(*ISO)
D ToDate s d DatFmt(*ISO)
C FromDate SetLL(e) MyFile
C DoU (RecordDate > ToDate) or (%Eof(MyFile))
C Read(e) MyFile
C If Not %Eof(MyFile) and (RecordDate <=
ToDate)
C ...
C ... do some processing ...
C ...
C EndIf
C EndDo
C Eval *InLR = *On
C Return
Here the assumption is that MYFILE is keyed on RECORDDATE order and that
RECORDDATE is a date type field in*ISO format. The DOU statement tests to
see whether or not you need to read any more records and the IF statement
makes sure that the record you read is in the correct range.
All the best
Jonathan
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Srinivas Boggula
Sent: 12 September 2007 09:31
To: RPG programming on the AS400 / iSeries
Subject: Dates Problem
Hi every one,
How do I Select from Date To - To Date in RPGLE
Say suppose I have 20 records in a Physical File and I have 8 fields in
it.
Now I want to retrieve from Dates To - To Date.
I tried with the following way created a logical file of eight fields
all of them are keyed
In RPGLE program I have created KLIST ( KEY AND KEY1)
C KEY KLIST
C KFLD FDD
C KFLD FMM
C KFLD FCC
C KFLD FYY
C*
C KEY1 KLIST
C KFLD TDD
C KFLD TMM
C KFLD TCC
C KFLD TYY
With the help of KEY & Chain I can able to set pointer to from date and
read the record.
But how do I stop at To-Date.
0004.43 C KEY CHAIN DSPREC 90
Please Can any one guide me on this issue.
Thanks in Advance
Regards,
Srinivas
I want to retrieve records from 10 to 15, I can able to set pointer and
read 10th
record using SETLL and READE but how do I Stop at 15th record.
Thanks in Advance
Regards,
Srinivas
iGATE is ranked as 3rd best IT employer in India as per DQ-IDC Best Employer
Survey-2007
----------------------------------------------------------------DISCLAIMER--
-------------------------------------------------------
Information transmitted by this EMAIL is proprietary to iGATE Group of
Companies and is intended for use only by the individual
or entity to whom it is addressed and may contain information that is
privileged, confidential, or exempt from disclosure under
applicable law. If you are not the intended recipient of this EMAIL
immediately notify the sender at iGATE or mailadmin@xxxxxxxxx
and delete this EMAIL including any attachments
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.