|
That last post probably does not make any sense :) 1. Add a field to the DB2File that contains a NextReviewDate with a Date Type. 2. Update the current records. 3. Make the adding of the NextReviewDate automatic when someone is added to DB2File. 4. When report is run, loop through the DB2File and compare the NextReviewDate to the current system date and if it is 30 days or less, add to the report. ..... -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Douglas Palme Sent: Thursday, November 09, 2006 2:34 PM To: 'RPG programming on the AS400 / iSeries' Subject: RE: How to select for future event So if the hire date is say 07/31/2000 I would just add an additional field and give it the next review date....then simply compare the current date to that one and if the current date is 30 or less days send the notice..... In my opinion it would certainly be cleaner and more straight forward -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Kim Spears Sent: Thursday, November 09, 2006 2:16 PM To: RPG programming on the AS400 / iSeries Subject: RE: How to select for future event Hello Lim, The selection is based on Hire Date. The rule in english would be: If the "hire date" is one month in the future, were the "hire date" in this year, send a notice; proivided that the actual "hire date" is a year or more in the past. I think that gets it. Thank you pointing out the deficient specfication. Sincerely, Kim -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Lim Hock-Chai Sent: Thursday, November 09, 2006 1:17 PM To: RPG programming on the AS400 / iSeries Subject: RE: How to select for future event Probably need to provide more business rules on how to determine the review date and the layout of the primary input file. Example, Is the review date determine by the hired date, last review date, seniority Date... -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Kim Spears Sent: Thursday, November 09, 2006 10:13 AM To: RPG400-L@xxxxxxxxxxxx Subject: How to select for future event Hello Friends, I have been looking at this too long and have concluded that I may be missing something simple. My assignment is to make an application to notify supervisors that a review is due for a team member one month in the future. I have tried several approaches; the first one wound up missing team members (bad), my current approach duplicates notice events when the previous month is longer then the succeeding month, i.e. January (better). I cannot seem to devise a simple way to filter the extra selections, which leads me to believe that I might be headed in the wrong direction entirely. It occurs to me that I may be trying to reinvent the wheel. Does anyone here have an elegant routine for matching a date in the past to the current date plus a month, without missing or duplicating events? Here is what I have done so far: *************** Beginning of data ***************************************** H dftactgrp(*no) bnddir('BINDDIR') FDB2FILE IF E K DISK FQPRINT O F 198 PRINTER /COPY QSOURCE,$DATE_P D compareDate S D D compareYear S 4 0 D fileDate S D D fileYear S 4 0 D runDate S D INZ(D'2006-01-01') C DO 365 C EVAL compareDate = runDate + %MONTHS(1) C EVAL compareYear = %subdt(compareDate : *YEARS) C EXSR $runDate C EVAL runDate += %DAYS(1) C ENDDO C EVAL *INLR = *ON ************************************************************************ ** C $runDate BEGSR C *LOVAL SETLL DB2FILE 99 C READ DB2FILE 99 C DOW ( *IN99 = *OFF) * Convert file date format to ISO format. C EVAL fileDate = $D5toISO(ehdate) C EVAL fileYear = %subdt(fileDate : *YEARS) C IF ( fileYear < compareYear ) * Synchronize years so comparison can be made C EVAL fileDate += %YEARS(compareYear - fileYear) C IF ( fileDate = compareDate ) C EXCEPT LINE C ENDIF * If September, April, June or November... extend comparison to 31 days C IF ( %subdt(runDate : *MONTHS) = 9 ) OR C ( %subdt(runDate : *MONTHS) = 4 ) OR C ( %subdt(runDate : *MONTHS) = 6 ) OR C ( %subdt(runDate : *MONTHS) = 11 ) C IF ( %subdt(runDate : *DAYS) = 30 ) AND C ( fileDate = compareDate + %DAYS(1) ) C EXCEPT LINE C ENDIF C ENDIF C ENDIF C READ DB2FILE 99 C ENDDO C ENDSR ****** OQPRINT E LINE 01 O FName 16 O LName 38 O HDate 46 O runDate 65 O compareDate 87 ****************** End of data ******************************************** -- This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-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.