home *** CD-ROM | disk | FTP | other *** search
/ Software Du Jour / SoftwareDuJour.iso / BUSINESS / DBASE / DBAPG.ARC / BACK_UP.PRG < prev    next >
Text File  |  1984-12-17  |  7KB  |  236 lines

  1. * Program..: BACK_UP.PRG
  2. * Author...: Tom Rettig
  3. * Date.....: May 28, 1984
  4. * Notice...: Copyright 1984 by Tom Rettig & Associates.  All rights reserved.
  5. * Version..: dBASE II, version 2.4x
  6. * Notes....: For backing up changed files before exit from the
  7. *            application is allowed.
  8. *
  9. *  Called by..: Main menu.
  10. *      Calls..: IN_rotat.mem     Holds the designating letters
  11. *                                of the last disks used.
  12. *
  13. * Initialize target drive designator (default drive is source)...
  14. STORE 'B:' TO t:drive
  15. *
  16. * Get the last rotation used...
  17. RESTORE FROM IN_rotat ADDITIVE
  18. *
  19. *
  20. ERASE
  21. SET COLOR TO sc:dim
  22. @  1, 0 SAY "B A C K U P   C H A N G E D   F I L E S"
  23. @  1,72 SAY mdate
  24. @  2, 0 SAY "========================================"+;
  25.             "========================================"
  26. @ 21, 0 SAY "========================================"+;
  27.             "========================================"
  28. SET COLOR TO sc:brt
  29. *
  30. STORE F TO t:is:mastr, t:is:loop
  31. DO WHILE T
  32.    STORE 0 TO t:count
  33.    *
  34.    * Count the changed files, and display number...
  35.    IF bu:custm
  36.       STORE t:count + 1 TO t:count
  37.    ENDIF
  38.    IF bu:invtm
  39.       STORE t:count + 1 TO t:count
  40.    ENDIF
  41.    IF bu:prodm
  42.       STORE t:count + 1 TO t:count
  43.    ENDIF
  44.    IF bu:po
  45.       STORE t:count + 1 TO t:count
  46.    ENDIF
  47.    *
  48.    * Branch to exit if no (more) files to copy...
  49.    IF t:count = 0
  50.       * Save the rotation flags...
  51.       SAVE TO IN_rotat ALL LIKE ro:*
  52.       RELEASE ALL LIKE ro:*
  53.       IF .NOT. t:is:loop
  54.          @ 10,25 SAY "There are NO files to backup."
  55.       ELSE
  56.          @ 10,25 SAY " Backup process is complete. "
  57.       ENDIF
  58.       @ 23, 9 SAY "Press any key to QUIT, "+;
  59.                   "or RETURN to return to the Main Menu..."
  60.       STORE '?' TO t:select
  61.       @ 23,71 GET t:select
  62.       READ NOUPDATE
  63.       CLEAR GETS
  64.       *
  65.       * Branch to quit or return...
  66.       IF t:select = '?'
  67.          RELEASE ALL LIKE ro:*
  68.          RELEASE ALL LIKE  t:*
  69.          RETURN
  70.       ELSE
  71.          * This is the only exit point from the application system...
  72.          RELEASE ALL LIKE  t:*
  73.          SAVE TO IN_const
  74.          ERASE
  75.          QUIT
  76.       ENDIF
  77.    ENDIF [t:count = 0]
  78.    *
  79.    * Display number of files to be copied...
  80.    IF t:count = 1
  81.       @ 10,25 SAY " There is 1 file to back up. "
  82.    ELSE
  83.       @ 10,25 SAY "There are " +STR(t:count,1)+ " files to back up."
  84.    ENDIF
  85.    *
  86.    * Branch for first time in the loop...
  87.    IF .NOT. t:is:loop
  88.       STORE T TO t:is:loop
  89.    ENDIF
  90.    *
  91.    * 
  92.    *
  93.    * Branch to backup MASTER files: IN_invtm, IN_custm, and IN_prodm...
  94.    IF bu:invtm .OR. bu:custm .OR. bu:prodm
  95.       * 
  96.       * Branch for prompt on the first loop only...
  97.       IF .NOT. t:is:mastr
  98.          STORE T TO t:is:mastr
  99.          @ 15,23 SAY "Place MASTER disk '" + ro:mastr + ;
  100.                      "' in drive " + t:drive
  101.          @ 23,13 SAY "Press any key when ready, or RETURN to abort backup..."
  102.          STORE '?' TO t:select
  103.          @ 23,67 GET t:select
  104.          READ NOUPDATE
  105.          CLEAR GETS
  106.          @ 15,23
  107.          @ 23,13
  108.          *
  109.          * Branch to abort...
  110.          IF t:select = '?'
  111.             SAVE TO IN_rotat ALL LIKE ro:*
  112.             RELEASE ALL LIKE ro:*
  113.             RELEASE ALL LIKE t:*
  114.             RETURN
  115.          ENDIF
  116.       ENDIF 
  117.       *
  118.       * Back them up...
  119.       IF bu:invtm
  120.          @ 15,24 SAY "Copying INVENTORY MASTER file..."
  121.          USE IN_invtm
  122.          COPY TO &t:drive.IN_invtm
  123.          USE
  124.          STORE F TO bu:invtm
  125.          IF bu:custm .OR. bu:prodm
  126.             @ 15,24
  127.             LOOP
  128.          ENDIF
  129.       ENDIF
  130.       *
  131.       IF bu:custm
  132.          @ 15,24 SAY "Copying CUSTOMER MASTER file..."
  133.          USE IN_custm
  134.          COPY TO &t:drive.IN_custm
  135.          USE
  136.          STORE F TO bu:custm
  137.          IF bu:prodm
  138.             @ 15,24
  139.             LOOP
  140.          ENDIF
  141.       ENDIF
  142.       *
  143.       IF bu:prodm
  144.          @ 15,24 SAY "Copying PRODUCT MASTER file... "
  145.          USE IN_prodm
  146.          COPY TO &t:drive.IN_prodm
  147.          USE
  148.          STORE F TO bu:prodm
  149.       ENDIF   
  150.       *
  151.       * Increment the rotation counter...
  152.       STORE $('ABC',(@(ro:mastr,'ABC')+1)-3*INT((@(ro:mastr,'ABC')+1)/4),1);
  153.             TO ro:mastr
  154.       *
  155.       * Decrement the file counter, and redisplay number to be copied...
  156.       STORE t:count - 1 TO t:count
  157.       DO CASE
  158.          CASE t:count = 1
  159.             @ 10,25 SAY " There is 1 file to back up. "
  160.          CASE t:count > 1
  161.             @ 10,25 SAY "There are " +STR(t:count,1)+ " files to back up."
  162.          CASE t:count < 1
  163.             @ 10,25 SAY "There are NO files to back up."
  164.       ENDCASE
  165.       *
  166.       @ 15,24 SAY "************ DONE ************* "
  167.       @ 23,11 SAY "Remove the MASTER disk, "+;
  168.                   "and press any key to continue..."
  169.       SET CONSOLE OFF
  170.       WAIT
  171.       SET CONSOLE ON
  172.       @ 15,24
  173.       @ 23,11
  174.       LOOP
  175.    ENDIF
  176.    *
  177.    *
  178.    IF bu:po
  179.       @ 15,19 SAY "Place PURCHASE ORDER disk '" + ro:po +;
  180.                   "' in drive " + t:drive
  181.       @ 23,13 SAY "Press any key when ready, or RETURN to abort backup..."
  182.       STORE '?' TO t:select
  183.       @ 23,67 GET t:select
  184.       READ NOUPDATE
  185.       CLEAR GETS
  186.       *
  187.       * Branch to abort...
  188.       IF t:select = '?'
  189.          SAVE TO IN_rotat ALL LIKE ro:*
  190.          RELEASE ALL LIKE ro:*
  191.          RELEASE ALL LIKE t:*
  192.          RETURN
  193.       ENDIF
  194.       *
  195.       * Back it up...
  196.       @ 15,19 
  197.       @ 15,25 SAY "Copying PURCHASE ORDER file..."
  198.       @ 23,13
  199.       USE IN_po
  200.       COPY TO &t:drive.IN_po
  201.       *
  202.       * Close the file...
  203.       USE
  204.       *
  205.       * Increment the rotation counter...
  206.       STORE $('ABC',(@(ro:po,'ABC')+1)-3*INT((@(ro:po,'ABC')+1)/4),1);
  207.             TO ro:po
  208.       *
  209.       STORE F TO bu:po
  210.       *
  211.       * Decrement the file counter, and redisplay number to be copied...
  212.       STORE t:count - 1 TO t:count
  213.       DO CASE
  214.          CASE t:count = 1
  215.             @ 10,25 SAY " There is 1 file to back up. "
  216.          CASE t:count > 1
  217.             @ 10,25 SAY "There are " +STR(t:count,1)+ " files to back up."
  218.          CASE t:count < 1
  219.             @ 10,25 SAY "There are NO files to back up."
  220.       ENDCASE
  221.       *
  222.       @ 15,24 SAY "************ DONE *************"
  223.       @ 23, 7 SAY "Remove the PURCHASE ORDER disk, "+;
  224.                   "and press any key to continue..."
  225.       SET CONSOLE OFF
  226.       WAIT
  227.       SET CONSOLE ON
  228.       @ 15,24
  229.       @ 23, 7
  230.       LOOP
  231.    ENDIF
  232.    *
  233. ENDDO
  234. *
  235. * EOF: Back_up.prg
  236.