home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a070 / 3.ddi / FOXPRO / SAMPLE / PAYJOURN.PRG < prev    next >
Encoding:
Text File  |  1989-11-07  |  3.3 KB  |  135 lines

  1. * ┌─────────────────────────────────────────────────────────────────────┐ *
  2. * │  PROG NAME: PAYJOURN.PRG. Cash receipts journal.                    │ *
  3. * │  Copyright (c) 1989 Tech III, Inc. All rights reserved.             │ *
  4. * │  Tech III of San Pedro, California      (213) 547-2191.             │ *
  5. * │  "The bridge connecting people and technology."(tm)                 │ *
  6. * └─────────────────────────────────────────────────────────────────────┘ *
  7.  
  8. ACTIVATE WINDOW screensim
  9. @ 00,00 SAY WINTITLE(PROMPT())
  10.  
  11. SELECT customer
  12. IF BOF() .OR. EOF()
  13.   GO TOP
  14. ENDIF
  15. STORE RECNO() TO oldrec
  16. SET ORDER TO cus_cus
  17.  
  18. SELECT payments
  19. SET ORDER TO pmt_dat
  20.  
  21. DEFINE POPUP datelist FROM 10,20 PROMPT FIELD DATE
  22. ON SELECTION POPUP datelist DEACTIVATE POPUP
  23.  
  24. * INITIALIZE VARIABLES
  25. GO TOP
  26. STORE DATE TO start_date   && First DATE
  27. GO BOTTOM
  28. STORE DATE TO end_date     && Last DATE
  29. STORE 'PRINTER' TO output
  30. STORE .t. TO _box, _wrap, printing
  31. * Boxes, and word-wrapping ON.
  32. * Printing is a control variable to allow user to cancel the job.
  33.  
  34. STORE SET('MEMOWIDTH') TO memocols  && Save old setting
  35. SET MEMOWIDTH TO 40
  36.  
  37. * DEFINITIONS
  38. ON ESCAPE STORE .f. TO printing
  39.  
  40. * USER INPUT: SELECT RANGE TO PRINT
  41. @ 02,02 SAY 'Start with payment date:          ' GET start_date ;
  42. VALID GETFIRST(start_date)
  43. @ 04,02 SAY '  End with payment date:          ' GET end_date   ;
  44. VALID GETLAST(end_date) RANGE start_date,
  45. @ 06,02 SAY 'Direct report to: PRINTER/SCREEN: ' ;
  46. GET output PICTURE '@M PRINTER,SCREEN '
  47. READ
  48.  
  49. STORE .t. TO printing
  50. IF .NOT. YESNO("System is ready to run report.")
  51.   STORE .f. TO printing
  52. ELSE
  53.   IF output<> "SCREEN "
  54.     IF .NOT. READY2PR()
  55.       STORE .f. TO printing
  56.     ENDIF
  57.   ENDIF
  58. ENDIF
  59.  
  60. IF printing
  61.   SET RELATION TO cust_id INTO customer
  62.   SEEK start_date
  63.   
  64.   * PRINT REPORT
  65.   IF output = 'PRINTER'
  66.     REPORT FORM payjourn REST TO PRINT NOEJECT WHILE DATE <= end_date .AND. printing
  67.   ELSE
  68.     REPORT FORM payjourn REST TO FILE report.txt NOEJECT ;
  69.     WHILE DATE <= end_date .AND. printing
  70.     SELECT 0
  71.     USE system
  72.     LOCATE FOR LABEL = 'PAYJOURN: '
  73.     IF EOF()
  74.       APPEND BLANK
  75.     ELSE
  76.       REPLACE NEXT 1 contents WITH ''
  77.     ENDIF
  78.     REPLACE LABEL WITH 'PAYJOURN: '  + DTOC(DATE())
  79.     APPEND MEMO contents FROM report.txt
  80.     MODIFY MEMO contents NOEDIT WINDOW reportview
  81.     USE
  82.     SELECT invoice
  83.   ENDIF
  84.   
  85.   * HOUSEKEEPING
  86.   SET RELATION TO
  87. ENDIF
  88. IF .NOT. printing
  89.   DO standby WITH 'You have canceled this report.'
  90. ELSE
  91.   DO standby WITH 'Your report request has been completed.'
  92. ENDIF
  93. SET MEMOWIDTH TO memocols
  94. DEACTIVATE WINDOW screensim
  95. RETURN
  96.  
  97. FUNCTION getfirst
  98.   PARAMETER start_date
  99.   SET NEAR ON
  100.   SEEK start_date
  101.   SET NEAR OFF
  102.   IF .NOT. EOF()
  103.     RETURN .t.
  104.   ENDIF
  105.   ACTIVATE POPUP datelist
  106.   keyboard PROMPT()
  107.   RETURN .f.
  108.   
  109. FUNCTION getlast
  110.   PARAMETER end_date
  111.   SET NEAR ON
  112.   SEEK end_date
  113.   SET NEAR OFF
  114.   IF .NOT. EOF() .AND. DATE >= start_date
  115.     RETURN .t.
  116.   ENDIF
  117.   ACTIVATE POPUP company
  118.   keyboard PROMPT()
  119.   RETURN .f.
  120.   
  121.   * START PRINTING
  122.   REPORT FORM invstock NOEJECT TO PRINT WHILE printing
  123.   ON ESCAPE
  124.   SELECT customer
  125.   IF oldrec # 0
  126.     GOTO oldrec
  127.   ENDIF
  128.   SELECT payments
  129.   SET ORDER TO pmt_cus
  130.   CLEAR
  131.   DEACTIVATE WINDOW screensim
  132.   RETURN
  133.   
  134.   * EOF
  135.