home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3 / hamradioversion3.0examsandprograms1992.iso / log / log3_52a / logqsl1.prg < prev    next >
Text File  |  1990-06-25  |  4KB  |  144 lines

  1. *:*********************************************************************
  2. *:
  3. *:        Program: LOGQSL1.PRG
  4. *:
  5. *:         System: PC-HAM Logbook
  6. *:         Author: Joe Kasser G3ZCZ
  7. *:      Copyright (c) 1990, Joe Kasser
  8. *:  Last modified: 06/25/90     13:35
  9. *:
  10. *:      Called by: LOGFUNCT.PRG                  
  11. *:
  12. *:           Uses: &LOGBOOK.DBF
  13. *:               : QSL.DBF
  14. *:
  15. *:        Indexes: &LOGNDX
  16. *:               : QSL.NDX
  17. *:
  18. *:      Documented 05/04/90 at 13:49                SNAP!  version 3.12f
  19. *:*********************************************************************
  20. * CALLED FROM logbook
  21. *LOCAL VARIABLES callflag,callheard,linecount
  22. * QSL.DBF ALSO USED IN DXPDNQSL.PRG
  23.  
  24. *INITIALISE EVERYTHING
  25.  
  26. SELECT 1
  27. USE &logbook INDEX &logndx
  28.  
  29. SELECT 2
  30. IF FILE('QSL.DBF')
  31. ELSE
  32.    SELECT 1
  33.    COPY STRUCTURE TO qsl
  34. ENDIF
  35. IF FILE('QSL.NDX')
  36. ELSE
  37.    SELECT 2
  38.    USE qsl
  39.    INDEX ON CALL+band TO qsl
  40. ENDIF
  41. SELECT 2
  42. USE qsl INDEX qsl
  43. STORE  .t.  TO callflag
  44. STORE '-' TO nqslsent
  45. STORE '-' TO nqslrx
  46. *MAIN LOOP
  47. DO WHILE callflag
  48.    SELECT A
  49.    GOTO TOP
  50.    ACCEPT "Call/Prefix (* To terminate, + To repeat) ? " TO newcall
  51.    IF newcall = "*"
  52.       STORE .F. TO callflag
  53.       * Clear loop control for exit
  54.    ELSE
  55.       IF newcall = '+'
  56.       ELSE
  57.          STORE newcall TO callheard
  58.       ENDIF
  59.       FIND &callheard
  60.       IF (EOF() .or. BOF())
  61.          CLEAR
  62.          @ 5,1 SAY callheard
  63.          @ 5,12 SAY "does not appear to be in the log"
  64.          ?
  65.          ?
  66.       ELSE
  67.          DO WHILE CALL = callheard .and. (.not.EOF())
  68.             CLEAR
  69.             STORE qslsent TO  nqslsent
  70.             STORE qslsent TO  oqslsent
  71.             STORE qslrx   TO  nqslrx
  72.             
  73.             @ 12,1 SAY "DATE"
  74.             @ 13,1 SAY "TIME"
  75.             @ 14,1 SAY "CALL"
  76.             @ 15,1 SAY "BAND"
  77.             @ 16,1 SAY "POWER"
  78.             @ 17,1 SAY "MODE"
  79.             @ 18,1 SAY "REPORT (RX)"
  80.             @ 19,1 SAY "REPORT (TX)"
  81.             @ 20,1 SAY "COMMENTS"
  82.             @ 21,1 SAY "QSLSENT"
  83.             @ 22,1 SAY "QSLRX"
  84.             
  85.             @ 12,13 SAY DATE
  86.             @ 13,13 SAY TIME
  87.             @ 14,13 SAY CALL
  88.             @ 15,13 SAY band
  89.             @ 16,13 SAY Power
  90.             @ 17,13 SAY mode
  91.             @ 18,13 SAY rx
  92.             @ 19,13 SAY tx
  93.             
  94.             @ 21,13 GET nqslsent
  95.             @ 22,13 GET nqslrx
  96.             READ
  97.             
  98.             *UPDATE ENTRY
  99.             REPLACE qslsent WITH nqslsent
  100.             REPLACE qslrx WITH nqslrx
  101.             
  102.             IF  qslsent <> '-'.and. oqslsent = '-'
  103.                * SAVE VARIABLES
  104.                STORE DATE TO ndate
  105.                STORE TIME TO ntime
  106.                STORE CALL TO ncall
  107.                STORE band TO nband
  108.                STORE Power TO npower
  109.                STORE mode TO nmode
  110.                STORE rx TO nrx
  111.                STORE tx TO ntx
  112.                STORE comments TO ncomments
  113.                SELECT 2
  114.                APPEND BLANK
  115.                REPLACE qslsent WITH nqslsent
  116.                REPLACE qslrx WITH nqslrx
  117.                REPLACE DATE WITH ndate
  118.                REPLACE TIME WITH ntime
  119.                REPLACE CALL WITH ncall
  120.                REPLACE band WITH nband
  121.                REPLACE Power WITH npower
  122.                REPLACE mode WITH nmode
  123.                REPLACE rx WITH nrx
  124.                REPLACE tx WITH ntx
  125.                REPLACE comments WITH ncomments
  126.                SELECT 1
  127.             ENDIF
  128.             SKIP
  129.          ENDDO
  130.       ENDIF
  131.    ENDIF
  132. ENDDO
  133. SELECT 1
  134. USE
  135. SELECT 2
  136. USE
  137. * GET READY TO EXIT
  138. RELEASE callflag,callheard,linecount,nqslsent,nqslrx,pf,label2
  139. RELEASE ndate, ntime, ncall, nband, npower, nmode, nrx, ntx, ncomments
  140. RELEASE oqslsent,newcall
  141. RETURN
  142.  
  143. *: EOF: LOGQSL1.PRG
  144.