home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.databases
- Path: sparky!uunet!almserv!mimas!g9utxu
- From: g9utxu@fnma.COM (Tanin Uthayanaka)
- Subject: Re: Pls help: algorithm wanted (xbase, pref foxpro)
- Message-ID: <1992Dec31.154449.632@almserv.uucp>
- Sender: usenet@almserv.uucp
- Nntp-Posting-Host: mimas
- Reply-To: g9utxu@fnma.COM
- Organization: Fannie Mae
- References: <durai.104.725756985@ortta.umn.edu>
- Date: Thu, 31 Dec 1992 15:44:49 GMT
- Lines: 81
-
- I don't know how you converted the Clipper program to be Foxpro compatible but even
- with the bugs the program should have generated results using the following:
-
- RATE.DBF Record RATE START_DATE END_DATE STATUS
- 1 15000 07/01/91 06/30/92 Covered
- 2 20000 07/01/92 06/30/93 Covered
-
- dStart = 01/01/92
- dEnd = 12/31/93
-
- RESULTS: 01/01/92 - 06/30/92 Uncovered
- 07/01/92 - 06/30/93 Covered
- 07/01/93 - 12/31/93 Uncovered
-
-
- So just for fun I fixed the program to generate the following:
-
- RESULTS: 01/01/92 - 06/30/92 Covered
- 07/01/92 - 06/30/93 Covered
- 07/01/93 - 12/31/93 Uncovered
-
- **NOTE: The program did not assume that between 01/01/92 and 06/30/93 the statuses are
- both "Covered" because one record could have been "Provisional"
-
- The program is listed below
-
- CLEAR
- dStart:=dEnd:=CTOD(" / / ")
- @ 3,5 SAY "Starting Date: " GET dStart PICTURE "99/99/99"
- @ 4,5 SAY " Ending Date: " GET dEnd PICTURE "99/99/99"
- READ
-
- @ 10,10 SAY "Subcontract Period: "+DTOC(dStart)+" - "+DTOC(dEnd)
- @ 11,0 SAY ""
- USE RATE
- INDEX ON START_DATE TO START
- SET SOFTSEEK ON
- SEEK dStart
- IF ! EOF()
- SKIP -1
- IF RATE->END_DATE >= dStart
- @ ROW()+1,15 SAY DTOC(dStart)+" - "+DTOC(RATE->END_DATE)
- @ ROW(), 40 SAY RATE->STATUS
- ENDIF
- SKIP +1
- DO WHILE RATE->START_DATE >= dStart
- IF RATE->END_DATE <= dEnd
- @ ROW()+1,15 SAY DTOC(RATE->START_DATE)+" - "+DTOC(RATE->END_DATE)
- @ ROW(), 40 SAY RATE->STATUS
- ELSE
- @ ROW()+1,15 SAY DTOC(RATE->END_DATE+1)+" - "+DTOC(dEnd)
- @ ROW(), 40 SAY "Uncovered"
- EXIT
- ENDIF
- SKIP +1
- IF EOF()
- SKIP -1
- @ ROW()+1,15 SAY DTOC(RATE->END_DATE+1)+" - "+DTOC(dEnd)
- @ ROW(), 40 SAY "Uncovered"
- EXIT
- ENDIF
- ENDDO
- ELSE
- SKIP -1
- IF RATE->END_DATE >= dStart
- @ ROW()+1,15 SAY DTOC(dStart)+" - "+DTOC(RATE->END_DATE)
- @ ROW(), 40 SAY RATE->STATUS
- @ ROW()+1,15 SAY DTOC(RATE->END_DATE+1)+" - "+DTOC(dEnd)
- @ ROW(), 40 SAY "Uncovered"
- ELSE
- @ ROW()+1,15 SAY DTOC(dStart)+" - "+DTOC(dEnd)
- @ ROW(), 40 SAY "Uncovered"
- ENDIF
- ENDIF
- SET SOFTSEEK OFF
- SET INDEX TO
- USE
-
-
-
-
-