home *** CD-ROM | disk | FTP | other *** search
/ Software Du Jour / SoftwareDuJour.iso / BUSINESS / DBASE / DB3.ARC / CHECKSTU.PRG < prev    next >
Text File  |  1984-10-25  |  4KB  |  133 lines

  1.      *************** Checkstu COMMAND FILE *****************
  2. *áPrint≤áou⌠áchecδ numbers¼áamounts¼áanΣ balance≤áfroφáthσ Checkfil when
  3. * SALARIES and BILLS are paid.  When more than one bill is paid by a
  4. * single check, the program totals all the bills against that check if they
  5. * are entered in consecutive order (which they are in the two command files).
  6. * Records are marked for deletion, but can be reviewed and retrieved.
  7. *****************************************************************************
  8. *
  9. CLEAR
  10. @ 3,25 SAY '*** DO NOT INTERRUPT ***'
  11. @ 4,25 SAY ' JUST GETTING ORGANIZED'
  12. *
  13. * A single check number may cover several bills, so these commands summarize
  14. * the payments by check number.  Any deleted entries in the Checkfil are
  15. * also eliminated when the TOTAL is done.
  16. SELECT 6
  17. TOTAL ON Check_Nmbr TO Scratch FOR .NOT. DELETED()
  18. COUNT FOR .NOT. DELETED() TO Entries
  19. *
  20. * We open the Scratch file in a second work area so that we can update the
  21. * Balance field from the Checkfil, which is open in the first work area.
  22. * For each entry in the Checkfil, the UPDATE command replaces the Balance
  23. * in the Scratch file with the Balance from the Checkfil.  When there are
  24. * several entries in the Scratch file for a given check number, this is 
  25. * done several times.  We could have written a loop to skip repeated entries,
  26. * but this way is faster and just as accurate.
  27. SELECT 9
  28. USE Scratch 
  29. UPDATE ON Check_Nmbr FROM Checkfil REPLACE Balance WITH F->Balance
  30. COUNT FOR .NOT. DELETED() TO Checks
  31. *
  32. STORE 0 TO Spacer, LineCnt
  33. *
  34. * If there were several entries for a single check number, print them
  35. IF Entries > Checks
  36.    SELECT 6
  37.    GO TOP
  38.    CLEAR
  39.    @ 4,0 SAY ' '
  40.    * Print the column headings for the output
  41.    SET PRINT ON
  42.    ? '                  THESE INDIVIDUAL BILLS WERE PAID:'
  43.    ?
  44.    ? '          Date     Check Name                   Amount  Bill';
  45.         +'    Job Number'
  46.    ?
  47.    * Now print all the checks that were written
  48.    DO WHILE .NOT. EOF()
  49.       IF .NOT. DELETED()
  50.          ?? '         ',Check_Date, Check_Nmbr + ' ' + Name, Amount,;
  51.                      Bill_Nmbr,Client+'-'+STR(Job_Nmbr,4)
  52.          ?
  53.          LineCnt = LineCnt + 1
  54.          Spacer = Spacer + 1è      ENDIF
  55.       *
  56.       IF LineCnt >= 50
  57.          ? CHR(12)
  58.          STORE 0 TO LineCnt, Spacer
  59.          ? '          Date   Check  Name                    Amount  Bill  ';
  60.                     +'  Job Number'
  61.       ENDIF
  62.       *
  63.       IF Spacer = 10
  64.          ?
  65.          Spacer = 0
  66.       ENDIF
  67.       *
  68.       SKIP
  69.    ENDDO
  70.    SELECT 9
  71. ENDIF
  72. Spacer = 0
  73. LineCnt = LineCnt + 3
  74. IF LineCnt > 44
  75.    ? CHR(12)
  76.    LineCnt = 0
  77. ENDIF
  78. *
  79. * Now print all the individual checks that are to be written
  80. Doing = 'Y'
  81. DO WHILE UPPER(Doing)='Y'
  82.    SELECT 9
  83.    GO TOP
  84.    CLEAR
  85.    SET PRINT ON
  86.    ? '                MAKE THE FOLLOWING ENTRIES IN THE CHECK BOOK:'
  87.    ?
  88.    ? '          Date     Check Name                   Amount   Balance'
  89.    ?
  90.    LineCnt = LineCnt + 3
  91.    DO WHILE .NOT. EOF()
  92.       IF .NOT. DELETED()
  93.          ?? '         ', Check_Date, Check_Nmbr + ' ' + Name,;
  94.                                                      Amount, Balance
  95.          ?
  96.          LineCnt = LineCnt + 1
  97.          Spacer = Spacer + 1
  98.       ENDIF
  99.       *
  100.       IF LineCnt >= 50
  101.          SET CONSOLE OFF
  102.          ? CHR(12)
  103.          SET CONSOLE ON
  104.          STORE 0 TO LineCnt, Spacer
  105.          ? '          Date     Check Name                   Amount   Balance'
  106.          ?è      ENDIF
  107.       *
  108.       IF Spacer = 10
  109.          ?
  110.          Spacer = 0
  111.       ENDIF
  112.       *
  113.       SKIP
  114.    ENDDO
  115.    ?
  116.    ?
  117.    ?
  118.    SET PRINT OFF
  119.    WAIT 'Do you want to print it again (Y or N)?' TO Doing
  120. ENDDO
  121. *
  122. SET PRINT ON
  123. ? CHR(12)
  124. SET PRINT OFF
  125. *        
  126. USE
  127. ERASE Scratch.dbf
  128. *
  129. SELECT 6
  130. DELETE All
  131. *
  132. RETURN
  133.