home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / comp / database / 8743 < prev    next >
Encoding:
Text File  |  1992-12-31  |  2.6 KB  |  95 lines

  1. Newsgroups: comp.databases
  2. Path: sparky!uunet!almserv!mimas!g9utxu
  3. From: g9utxu@fnma.COM (Tanin Uthayanaka)
  4. Subject: Re: Pls help: algorithm wanted (xbase, pref foxpro)
  5. Message-ID: <1992Dec31.154449.632@almserv.uucp>
  6. Sender: usenet@almserv.uucp
  7. Nntp-Posting-Host: mimas
  8. Reply-To: g9utxu@fnma.COM
  9. Organization: Fannie Mae
  10. References: <durai.104.725756985@ortta.umn.edu>
  11. Date: Thu, 31 Dec 1992 15:44:49 GMT
  12. Lines: 81
  13.  
  14. I don't know how you converted the Clipper program to be Foxpro compatible but even 
  15. with the bugs the program should have generated results using the following:
  16.  
  17. RATE.DBF        Record  RATE    START_DATE      END_DATE        STATUS
  18.                 1       15000   07/01/91        06/30/92        Covered
  19.                 2       20000   07/01/92        06/30/93        Covered
  20.  
  21. dStart = 01/01/92
  22. dEnd   = 12/31/93
  23.  
  24. RESULTS: 01/01/92 - 06/30/92 Uncovered
  25.          07/01/92 - 06/30/93 Covered
  26.          07/01/93 - 12/31/93 Uncovered
  27.  
  28.  
  29. So just for fun I fixed the program to generate the following:
  30.  
  31. RESULTS: 01/01/92 - 06/30/92 Covered
  32.          07/01/92 - 06/30/93 Covered
  33.          07/01/93 - 12/31/93 Uncovered
  34.  
  35. **NOTE: The program did not assume that between 01/01/92 and 06/30/93 the statuses are 
  36.         both "Covered" because one record could have been "Provisional"
  37.  
  38. The program is listed below
  39.  
  40. CLEAR
  41. dStart:=dEnd:=CTOD("  /  /  ")
  42. @ 3,5 SAY "Starting Date: " GET dStart PICTURE "99/99/99"
  43. @ 4,5 SAY "  Ending Date: " GET dEnd PICTURE "99/99/99"
  44. READ
  45.  
  46. @ 10,10 SAY "Subcontract Period: "+DTOC(dStart)+" - "+DTOC(dEnd)
  47. @ 11,0  SAY ""
  48. USE RATE
  49. INDEX ON START_DATE TO START
  50. SET SOFTSEEK ON
  51. SEEK dStart
  52. IF ! EOF()
  53.    SKIP -1
  54.    IF RATE->END_DATE >= dStart
  55.       @ ROW()+1,15 SAY DTOC(dStart)+" - "+DTOC(RATE->END_DATE)
  56.       @ ROW(),  40 SAY RATE->STATUS
  57.    ENDIF
  58.    SKIP +1
  59.    DO WHILE RATE->START_DATE >= dStart
  60.       IF RATE->END_DATE <= dEnd
  61.          @ ROW()+1,15 SAY DTOC(RATE->START_DATE)+" - "+DTOC(RATE->END_DATE)
  62.          @ ROW(),  40 SAY RATE->STATUS
  63.       ELSE
  64.          @ ROW()+1,15 SAY DTOC(RATE->END_DATE+1)+" - "+DTOC(dEnd)
  65.          @ ROW(),  40 SAY "Uncovered"
  66.          EXIT
  67.       ENDIF
  68.       SKIP +1
  69.       IF EOF()
  70.          SKIP -1
  71.          @ ROW()+1,15 SAY DTOC(RATE->END_DATE+1)+" - "+DTOC(dEnd)
  72.          @ ROW(),  40 SAY "Uncovered"
  73.          EXIT
  74.       ENDIF
  75.    ENDDO
  76. ELSE
  77.    SKIP -1
  78.    IF RATE->END_DATE >= dStart
  79.       @ ROW()+1,15 SAY DTOC(dStart)+" - "+DTOC(RATE->END_DATE)
  80.       @ ROW(),  40 SAY RATE->STATUS
  81.       @ ROW()+1,15 SAY DTOC(RATE->END_DATE+1)+" - "+DTOC(dEnd)
  82.       @ ROW(),  40 SAY "Uncovered"
  83.    ELSE
  84.       @ ROW()+1,15 SAY DTOC(dStart)+" - "+DTOC(dEnd)
  85.       @ ROW(),  40 SAY "Uncovered"
  86.    ENDIF
  87. ENDIF
  88. SET SOFTSEEK OFF
  89. SET INDEX TO
  90. USE
  91.  
  92.  
  93.  
  94.  
  95.