home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / manage.zip / REPORT.PRG < prev    next >
Text File  |  1986-08-09  |  19KB  |  699 lines

  1. **    Last revision: May 26, 1986 at 15:30
  2. * report.prg
  3. STOR .t. TO more
  4. DO WHIL more
  5.  STOR 'Y' TO printer
  6.  STOR 'N' TO disk
  7.  STOR '        ' TO filename
  8.  STOR '?' TO command
  9.  CLEA
  10.  IF clipper
  11.   @ 0,0, 22, 79 BOX frame
  12.   @ 4,1 SAY line1
  13.   @ 19,1 SAY line1
  14.  ELSE
  15.   @ 0,0 TO 4,79
  16.   @ 0,0 TO 19,79
  17.   @ 0,0 TO 22,79 DOUBLE
  18.  ENDI
  19.  @ 20,5 SAY 'Please select one of the above options. You may also leave this menu'
  20.  @ 21,5 SAY "by typing 'Q' and get on-line HELP by typing '?'."
  21.  @ 2,04 SAY dconame + " -  BUILDING REPORT MENU"
  22.  @ 2,65 SAY DTOC(DATE())
  23.  @ 7,29 SAY "A. Rent bills"
  24.  @ 8,29 SAY "B. Tenant roster"
  25.  @ 9,29 SAY "C. Delinquency report"
  26.  @ 10,29 SAY "D. Tenant mailing labels"
  27.  @ 11,29 SAY "E. Vacancy list"
  28.  @ 12,29 SAY "F. Lease expiration and flag report"
  29.  @ 13,29 SAY "G. Return to Main Menu"
  30.  @ 15,23 SAY "PLEASE SELECT ONE OF THE OPTIONS"
  31.  @ 15,58 GET command PICTURE '!'
  32.  READ
  33.  DO WHIL AT(COMMAND, 'ABCDEFG?Q') = 0
  34.   STOR '?' TO command
  35.   @ 15,58 GET command PICTURE '!'
  36.   READ
  37.  ENDD
  38.  CLEA GETS
  39.  IF command >='B' .AND. command <  'G'
  40.   @ 17,01 SAY "         Send Report to the Printer (Y/N)"
  41.   @ 17,55 GET printer PICTURE '!'
  42.   READ
  43.   @ 18,01 SAY "         Send Report  to a Disk File (Y/N)"
  44.   @ 18,55 GET disk PICTURE '!'
  45.   READ
  46.   IF disk ='Y'
  47.    @ 17,01 SAY SPACE(75)
  48.    @ 18,01 SAY SPACE(75)
  49.    @ 17,01 SAY "          Enter Disk File Name"
  50.    @ 17,34 GET filename PICTURE '!!!!!!!!'
  51.    @ 17,44 SAY "(.TXT will be added )"
  52.    READ
  53.    @ 18,01 SAY '          Select drive to put Files on'
  54.    @ 18,55 GET dr PICTURE '!'
  55.    READ
  56.    DO WHIL AT(dr,'ABCD') = 0
  57.     @ 18,55 GET dr PICTURE '!'
  58.     READ
  59.    ENDD while @
  60.   ENDI disk = Y
  61.   STOR LEN(dconame)/2  TO L
  62.   STOR 40-L TO L
  63.   STOR '                                        ' TO bl
  64.   STOR SUBSTR(bl,1,L) + dconame TO coname
  65.   IF printer = 'Y'
  66.    @ 17,01 SAY SPACE(75)
  67.    @ 18,01 SAY SPACE(75)
  68.    @ 17,01 SAY '          MAKE PRINTER READY AND HIT ANY KEY'
  69.    SET CONSOLE OFF
  70.    WAIT
  71.    SET CONSOLE ON
  72.    SET print ON
  73.   ENDI printer = Y
  74.   IF disk = 'Y' .AND. filename <> ' '
  75. * make a proper REPORT file name that is of type TXT
  76.    STOR AT('.',filename) TO length
  77.    IF length = 0 .OR. length > 8
  78.     STOR 9 TO length
  79.    ENDI length
  80.    STOR SUBSTR(filename,1,length-1) TO filename
  81.    STOR '&dr.:'+filename+'.TXT' TO filename
  82.    SET ALTERNATE TO &filename
  83.    SET ALTERNATE ON
  84.   ENDI disk = Y and filename <> ''
  85.  ENDI command
  86.  CLEA
  87.  DO CASE
  88.  CASE command = 'A'
  89.   SET PRINT OFF
  90. * rent bills
  91.   SELE A
  92.   USE &dr.:build
  93.   SET INDEX TO &dr.:code
  94.   CLEA
  95.   TEXT
  96.  
  97.                  This module prepares the rent bills. If the
  98.                  rents for the month have not been posted and
  99.                  the new rents not accrued please take care of
  100.                  that before you run this program.  
  101.  
  102.                  The form set up is for UARCO C599 and envelope
  103.                  EN81. Form length is 7 inches.      
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.   ENDT
  118.   STOR 'Y' TO comman
  119.   @ 10,20 SAY 'ARE YOU READY TO PROCEED ? '
  120.   @ 10,50 GET comman PICTURE '!'
  121.   READ
  122.   IF COMMAN = 'Y'
  123.    SET confirm on
  124.    STOR '  ' TO build
  125.    @ 12,10 SAY "What building shall we prepare bills for ('99' for all) "
  126.    @ 12,70 GET build PICTURE '99'
  127.    READ
  128.    IF build <> '99'
  129.     SEEK build
  130.     DO WHIL (EOF() .OR. BOF())
  131.      @ 12,70 GET build PICTURE '99'
  132.      READ
  133.      SEEK build
  134.     ENDD WHILE #
  135.    ELSE
  136.     GO TOP
  137.    ENDI build <> '99'
  138.    STOR '         ' TO month
  139.    @ 13,10 SAY "For what month "
  140.    @ 13,40 GET month PICTURE '!XXXXXXXX'
  141.    READ
  142.    @ 16,10 SAY 'Hit any key when the printer is on and the proper paper loaded'
  143.    @ 17,10 SAY 'with the top of the form at the level of the print head.'
  144.    SET CONSOLE OFF
  145.    WAIT
  146.    SET CONSOLE ON
  147.    SET PRINT ON
  148.    CLEA
  149.    STOR .t. TO bigloop
  150.    DO WHIL BIGLOOP .AND.(.NOT. EOF())
  151.     IF build <> '99'
  152.      STOR .f. TO bigloop
  153.     ELSE
  154.      STOR RECNO() TO rec_no
  155.     ENDI build <> '99'
  156.     STOR bcode TO mbcode
  157.     STOR baddr TO mbaddr
  158.     STOR SUBSTR(bcity,1,22) + '  ' + SUBSTR(bcity,23,5) TO mbcity
  159.     STOR remit TO mremit
  160.     STOR remitad TO mremitad
  161.     STOR remitc TO mremitc
  162.     STOR phone TO mphone
  163.     STOR checks TO mchecks
  164.     SELE B
  165.     USE &dr.:tenant
  166.     SET index TO &dr.:codea
  167.     SEEK mbcode
  168.     DO WHIL SUBSTR(bcode,1,2) = mbcode .AND.(.NOT. EOF())
  169.      IF tenant <> ' '
  170.       STOR 0 TO line
  171.       STOR 0 TO mtotal
  172.       STOR trent TO trentx
  173.       IF ttype = 'P'
  174.        IF (trentpc*(trentpcr/100)/12)>trent
  175.         STOR (trentpc*(trentpcr/100)/12) TO trentx
  176.        ENDI (trentpc)
  177.       ENDI ttype = 'P'
  178.       IF ttype = 'O'
  179.        STOR ((trentpc*(trentpcr/100)/12)+trent) TO trentx
  180.       ENDI ttype = 'O'
  181.       ? '   '
  182.       ? '   ' + mremit
  183.       ? '   ' + mremitad
  184.       ? '   ' + mremitc
  185.       ? ' '
  186.       ? ' '
  187.       ? '    PLEASE SEND CHECKS TO ABOVE ADDRESS PAYABLE TO:'
  188.       ? '    ' + mchecks
  189.       ? ' '
  190.       ? ' '
  191.       ? ' '
  192.       ? ' '
  193.       ? '      ' + tenant + '          Unit ' +tunit
  194.       IF alt = 'Y'
  195.        ? '      ' + altad
  196.        ? '      ' + altcty
  197.       ELSE
  198.        ? '      ' + mbaddr
  199.        ? '      ' + mbcity
  200.       ENDI alt
  201.       ? ' '
  202.       ? ' '
  203.       ? '                           R E N T    S T A T E M E N T'
  204.       ? ' '
  205.       ? ' '
  206.       ? '                        Refer inquiries to ' + mphone
  207.       ? ' '
  208.       ? ' '
  209.       IF trentp > 0
  210.        ? '       Paid ' + trentpd + '. THANK YOU                        '+STR(trentp,12,2)
  211.        STOR line + 1 TO line
  212.       ENDI trentp > 0
  213.       ? '       Unpaid balance ' + DTOC(date()) + '                         '+STR(trentd,12,2)
  214.       STOR mtotal + trentd TO mtotal
  215.       ? ' '
  216.       IF ttype = 'P' .OR. ttype = 'O'
  217.        ? '       Base Rent ' + STR(trent,12,2)
  218.       ENDI ttype
  219.       ? '       Base Rent for the month of ' + month + '            '+STR(trentx,12,2)
  220.       STOR mtotal + trentx TO mtotal
  221.       IF trente > 0
  222.        ? '       Electricity                                     '+ STR(trente,12,2)
  223.        STOR mtotal + trente TO mtotal
  224.        STOR line + 1 TO line
  225.       ENDI trente
  226.       IF trentm > 0
  227.        ? '       Miscellaneous charges                           '+STR(trentm,12,2)
  228.        STOR mtotal + trentm TO mtotal
  229.        STOR line + 1 TO line
  230.       ENDI trentm > 0
  231.       IF taddl > 0
  232.        ? '       Additional charges                              '+STR(taddl,12,2)
  233.        STOR mtotal + taddl TO mtotal
  234.        STOR line + 1 TO line
  235.       ENDI taddl >0
  236.       ? ' '
  237.       ? '       TOTAL DUE                                      $'+STR(mtotal,12,2)
  238.       STOR mtotal + tlatec TO mtotal
  239.       ? ' '
  240.       ? ' '
  241.       ? '       AFTER ' + TRIM(UPPER(month)) + ' ' +tlate + ' PAY -   $ '+STR(mtotal,12,2)
  242.       STOR 11- line TO line1
  243.       DO WHIL line1 > 0
  244.        ? ' '
  245.        STOR line1 - 1 TO line1
  246.       ENDD
  247.      ENDI tenant <> ' '
  248.      SKIP
  249.     ENDD WHILE $(bcode)
  250.     SELE A
  251.     USE &dr.:BUILD
  252.     SET INDEX TO &dr.:code
  253.     IF bigloop
  254.      GO rec_no
  255.      SKIP
  256.     ENDI bigloop
  257.    ENDD WHILE .NOT. EOF
  258.   ENDI comman = 'Y'
  259.   IF printer = 'Y'
  260.    EJEC
  261.    SET PRINT OFF
  262.   ENDI
  263.   SET CONFIRM off
  264.   CLEA
  265.   STOR .t. TO more
  266.   STOR 'Y' TO printer
  267.   STOR 'N' TO disk
  268.   STOR '        ' TO filename
  269.   STOR '?' TO select
  270.   SELE A
  271.   USE &dr.:build
  272.   SET INDEX TO &dr.:code
  273.   LOOP
  274.  CASE command = 'B'
  275. * tenant roster
  276.   SELE B
  277.   USE &dr.:tenant
  278.   SET INDEX TO &dr.:codea
  279.   CLEA
  280. * initialize variables
  281.   STOR 0 TO pageno
  282.   STOR 0 TO counter
  283.   STOR 0 TO counter1
  284.   STOR 0 TO additup
  285.   STOR ' ' TO mtenant
  286.   SET MARGIN TO 3
  287.   GO TOP
  288.   STOR .t. TO more1
  289.   DO WHIL more1
  290. * do page counter etc
  291.    STOR pageno + 1 TO pageno
  292.    STOR 4 TO lineno
  293.    CLEA
  294.    ? '  '
  295.    IF pageno = 1
  296.     ? coname
  297.     ? '                                 TENANT REPORT'
  298.     ? ' '
  299.     ? 'Report of ' +DTOC(date()) + '.'
  300.     STOR lineno + 4 TO lineno
  301.    ENDI pageno = 1
  302.    ? '                                                                    ' + 'PAGE ' + STR(pageno,2)
  303.    ? '  Tenant                            ' + 'Code   '+ '   Unit     ' + ' Expires' + '        Rent'
  304.    ? "----------------------------------------------------------------------------"
  305.    ? ' '
  306. * now fill up rest of page to 50 lines with entries
  307.    DO WHIL lineno < 50
  308. * now do a page if not end of file
  309.     DO WHIL .NOT. EOF()
  310.      STOR tenant TO mtenant
  311.      IF tenant = ' '
  312.       STOR 'VACANT                             ' TO mtenant
  313.      ENDI
  314.      ? mtenant + ' ' + bcode + '      ' + tunit + '    ' + texpir +'  ' + STR(trent,9,2)
  315.      STOR lineno +1 TO lineno
  316.      STOR additup + trent TO additup
  317.      STOR counter1 + 1 TO counter1
  318.      SKIP
  319.     ENDD WHILE .NOT. EOF
  320.     STOR .f. TO more1
  321.     STOR 60 TO lineno
  322.    ENDD while lineno < 50
  323.    ? ' '
  324.    ? "----------------------------------------------------------------------------"
  325.    ? ' '
  326.    ? '                       TOTAL NUMBER OF RENTAL UNITS:  ' + STR(counter1,3)
  327.    ? '                                          RENT ROLL: $' + STR(additup,10,2)
  328.    ? '  '
  329.   ENDD more1
  330. * if it was on turn it off
  331.   IF printer = 'Y'
  332.    EJEC
  333.    SET PRINT OFF
  334.   ENDI
  335.   IF disk = 'Y'
  336.     ? CHR(12)
  337.   SET ALTERNATE OFF
  338.   ENDI
  339.   ? '                       Hit any key to continue..........'
  340.   SET CONSOLE OFF
  341.   WAIT
  342.   SET CONSOLE ON
  343.   CLEA
  344.   STOR .t. TO more
  345.   SET MARGIN TO 0
  346.   STOR 'Y' TO printer
  347.   STOR 'N' TO disk
  348.   STOR '        ' TO filename
  349.   STOR '?' TO select
  350.   SELE A
  351.   USE &dr.:BUILD
  352.   SET INDEX TO &dr.:code
  353.   LOOP
  354.  CASE command = 'C'
  355. * tenant delinquency report
  356.   SELE B
  357.   USE &dr.:tenant
  358.   SET INDEX TO &dr.:codea
  359.   GO TOP
  360. * initialize variables
  361.   STOR 0 TO pageno
  362.   STOR 0 TO counter
  363.   STOR 0 TO counter1
  364.   STOR .t. TO more1
  365.   STOR 0 TO additup
  366.   SET MARGIN TO 3
  367.   LOCA FOR trentd > 0
  368.   IF EOF()
  369.    STOR .f. TO more1
  370.   ENDI EOF
  371.   DO WHIL more1
  372. * do page counter etc
  373.    STOR pageno + 1 TO pageno
  374.    STOR 4 TO lineno
  375.    CLEA
  376.    ? '  '
  377. * and write TITLE
  378.    IF pageno = 1
  379.     ? coname
  380.     ? '                            TENANT DELINQUENCY LIST'
  381.     ? ' '
  382.     ? 'Report of ' +DTOC(date()) + '.'
  383.     STOR lineno + 4 TO lineno
  384.    ENDI pageno = 1
  385.    ? '                                                                    ' + 'PAGE ' + STR(pageno,2)
  386.    ? '  Tenant                             ' + 'Code   '+ 'Late Date' + '        Due'
  387.    ? "----------------------------------------------------------------------------"
  388.    ? ' '
  389. * now fill up rest of page to 50 lines with entries
  390.    DO WHIL lineno < 50
  391. * now do a page if not end of file
  392.     IF .NOT. EOF()
  393.      IF tlate < SUBSTR(DTOC(date()),4,2)
  394.       ? tenant + '   ' + bcode + '      ' + tlate + '      ' + STR(trentd,9,2)
  395.       STOR lineno +1 TO lineno
  396.       STOR additup + trentd TO additup
  397.       STOR counter1 + 1 TO counter1
  398.       CONT
  399.      ELSE
  400.       CONT
  401.      ENDI tlate
  402.     ELSE
  403.      STOR .f. TO more1
  404.      STOR 60 TO lineno
  405.     ENDI not EOF
  406.    ENDD while lineno < 50
  407.    ? ' '
  408.    ? "----------------------------------------------------------------------------"
  409.    ? ' '
  410.    ? '                      TOTAL NUMBER OF DELINQUENCIES:  ' + STR(counter1,3)
  411.    ? '                     TOTAL DOLLAR AMOUNT DELINQUENT: $' + STR(additup,10,2)
  412.    ? '  '
  413.   ENDD more1
  414. * if it was on turn it off
  415.   IF printer = 'Y'
  416.    EJEC
  417.    SET PRINT OFF
  418.   ENDIF
  419.   IF DISK = 'Y'
  420.    ? CHR(12)
  421.    SET ALTERNATE OFF
  422.   ENDIF printer
  423.   ? '                          Hit any key to continue.........'
  424.   SET CONSOLE OFF
  425.   WAIT
  426.   SET CONSOLE ON
  427.   CLEA
  428.   STOR .t. TO more
  429.   STOR 'Y' TO printer
  430.   SET MARGIN TO 0
  431.   STOR 'N' TO disk
  432.   STOR '        ' TO filename
  433.   STOR '?' TO select
  434.   SELE A
  435.   USE &dr.:BUILD
  436.   SET INDEX TO &dr.:code
  437.   LOOP
  438.  CASE command = 'D'
  439. * tenant labels
  440. * adjust for printer
  441.   SELE A
  442.   USE &dr.:build
  443.   SET INDEX TO &dr.:code
  444.   GO TOP
  445.   STOR .t. TO more2
  446.   DO WHIL more2 .AND. (.NOT. EOF())
  447.    STOR RECNO() TO rec_no
  448.    STOR bcode TO mbcode
  449.    STOR baddr TO mbaddr
  450.    STOR SUBSTR(bcity,1,22) + '  ' + SUBSTR(bcity,23,5) TO mbcity
  451.    SELE B
  452.    USE &dr.:tenant
  453.    SET INDEX TO &dr.:codea
  454.    SEEK mbcode
  455.    STOR SUBSTR(bcode,1,2) TO mtcode
  456.    DO WHIL mtcode = mbcode .AND. (.NOT. EOF())
  457.     IF tenant <> ' '
  458.      ? ' '
  459.      ? TRIM(tenant)  + '  ' + tunit
  460.      ? mbaddr
  461.      ? mbcity
  462.      ? '  '
  463.     ENDI tenant
  464.     SKIP
  465.     STOR SUBSTR(bcode,1,2) TO mtcode
  466.    ENDD WHILE mtcode
  467.    SELE A
  468.    USE &dr.:build
  469.    SET INDEX TO &dr.:code
  470.    GO rec_no
  471.    SKIP
  472.    IF EOF()
  473.     STOR .f. TO more2
  474.    ENDI
  475.   ENDD WHILE more2 .AND. (.NOT. EOF)
  476.   IF printer = 'Y'
  477.    EJEC
  478.    SET PRINT OFF
  479.   ENDI
  480.   IF DISK = 'Y'
  481.    ? CHR(12)
  482.    SET ALTERNATE OFF
  483.   ENDI
  484.   CLEA
  485.   STOR .t. TO more
  486.   STOR 'Y' TO printer
  487.   STOR 'N' TO disk
  488.   STOR '        ' TO filename
  489.   STOR '?' TO select
  490.   SELE A
  491.   USE &dr.:BUILD
  492.   SET INDEX TO &dr.:code
  493.   LOOP
  494.  CASE command = 'E'
  495. * vacancy report
  496.   SELE B
  497.   USE &dr.:tenant
  498.   SET INDEX TO &dr.:codea
  499.   GO TOP
  500. * initialize variables
  501.   STOR 0 TO pageno
  502.   STOR 0 TO counter
  503.   STOR 0 TO counter1
  504.   STOR 0 TO additup
  505.   SET MARGIN TO 3
  506.   LOCA FOR tenant = ' '
  507.   IF .NOT. EOF()
  508.    STOR .t. TO more1
  509.   ELSE
  510.    STOR .f. TO more1
  511.   ENDI .NOT. EOF
  512.   DO WHIL more1
  513. * do page counter etc
  514.    STOR pageno + 1 TO pageno
  515.    STOR 4 TO lineno
  516.    CLEA
  517.    ? '  '
  518. * and write TITLE
  519.    IF pageno = 1
  520.     ? coname
  521.     ? '                                VACANCY REPORT'
  522.     ? ' '
  523.     ? 'Report of ' +DTOC(date()) + '.'
  524.     STOR lineno + 4 TO lineno
  525.    ENDI pageno = 1
  526.    ? '                                                                    ' + 'PAGE ' + STR(pageno,2)
  527.    ? '  Building                              ' + 'Code   '+ 'Unit     ' + '   Last Rent'
  528.    ? "----------------------------------------------------------------------------"
  529.    ? ' '
  530. * now fill up rest of page to 50 lines with entries
  531.    DO WHIL lineno < 50
  532. * now do a page if not end of file
  533.     ? baddr + '   ' + bcode + '      ' + tunit + '      ' + STR(trent,9,2)
  534.     STOR lineno +1 TO lineno
  535.     STOR additup + trent TO additup
  536.     STOR counter1 + 1 TO counter1
  537.     CONT
  538.     IF EOF()
  539.      STOR .f. TO more1
  540.      STOR 60 TO lineno
  541.     ENDI not EOF
  542.    ENDD while lineno < 50
  543.    ? ' '
  544.    ? "----------------------------------------------------------------------------"
  545.    ? ' '
  546.    ? '                         TOTAL NUMBER OF VACANCIES:  ' + STR(counter1,3)
  547.    ? '                     TOTAL DOLLAR AMOUNT VACANCIES: $' + STR(additup,10,2)
  548.    ? '  '
  549.   ENDD more1
  550. * if it was on turn it off
  551.   IF printer = 'Y'
  552.    EJEC
  553.    SET PRINT OFF
  554.   ENDI
  555.   IF disk = 'Y'
  556.    ? CHR(12)
  557.    SET ALTERNATE OFF
  558.   ENDI
  559.   ? '                          Hit any key to continue................'
  560.   SET CONSOLE OFF
  561.   WAIT
  562.   SET CONSOLE ON
  563.   CLEA
  564.   STOR .t. TO more
  565.   STOR 'Y' TO printer
  566.   SET MARGIN TO 0
  567.   STOR 'N' TO disk
  568.   STOR '        ' TO filename
  569.   STOR '?' TO select
  570.   SELE A
  571.   USE &dr.:BUILD
  572.   SET INDEX TO &dr.:code
  573.   LOOP
  574.  CASE command = 'F'
  575. * lease expiration report
  576.   SELE B
  577.   USE &dr.:tenant
  578.   SET INDEX TO &dr.:codea
  579.   CLEA
  580.   STOR DTOC(date()) to exdate
  581.   @ 10,10 SAY 'What is the cutoff date for the report ? '
  582.   @ 10,55 GET exdate PICTURE '99/99/99'
  583.   READ
  584.   STOR SUBSTR(exdate,7,2) + SUBSTR(exdate,1,2) + SUBSTR(exdate,4,2) TO expdate
  585. * initialize variables
  586.   STOR 0 TO pageno
  587.   STOR 0 TO counter
  588.   STOR 0 TO counter1
  589.   STOR 0 TO additup
  590.   SET MARGIN TO 1
  591.   GO TOP
  592.   STOR .t. TO more1
  593.   DO WHIL more1
  594. * do page counter etc
  595.    STOR pageno + 1 TO pageno
  596.    STOR 4 TO lineno
  597.    CLEA
  598.    ? '  '
  599.    IF pageno = 1
  600.     ? coname
  601.     ? '                        LEASE EXPIRATION AND FLAG REPORT'
  602.     ? ' '
  603.     ? 'Report of ' +DTOC(date()) + '.'
  604.     STOR lineno + 4 TO lineno
  605.    ENDI pageno = 1
  606.    ? '                                                                    ' + 'PAGE ' + STR(pageno,2)
  607.    ? '  Tenant                            ' + 'Code   '+ ' Unit  ' + '  Flag'+'    Expires'+ '    Rent'
  608.    ? "----------------------------------------------------------------------------"
  609.    ? ' '
  610. * now fill up rest of page to 50 lines with entries
  611.    DO WHIL lineno < 50
  612. * now do a page if not end of file
  613.     DO WHIL .NOT. EOF()
  614.      STOR SUBSTR(texpir,7,2) + SUBSTR(texpir,1,2) + SUBSTR(texpir,4,2) TO mwxpir
  615.      STOR SUBSTR(tflag,7,2) + SUBSTR(tflag,1,2) + SUBSTR(tflag,4,2) TO flagex
  616.      IF flagex = ' '
  617.       STOR '999999' TO flagex
  618.      ENDI flagex
  619.      IF VAL(mwxpir) <  VAL(expdate) .OR. VAL(flagex) < VAL(expdate)
  620.       ? tenant + ' ' + bcode + '   ' + tunit +' '+ tflag +' '+ texpir +' ' + STR(trent,9,2)
  621.       STOR lineno +1 TO lineno
  622.       STOR additup + trent TO additup
  623.       STOR counter1 + 1 TO counter1
  624.      ENDI VAL(mwexpir)
  625.      SKIP
  626.     ENDD WHILE .NOT. EOF
  627.     STOR .f. TO more1
  628.     STOR 60 TO lineno
  629.    ENDD while lineno < 50
  630.    ? ' '
  631.    ? "----------------------------------------------------------------------------"
  632.    ? ' '
  633.    ? '               TOTAL FLAGGED AND/OR EXPIRING LEASES:  ' + STR(counter1,3)
  634.    ? '                      TOTAL DOLLAR AMOUNT OF LEASES: $' + STR(additup,10,2)
  635.    ? '  '
  636.   ENDD more1
  637. * if it was on turn it off
  638.   IF printer = 'Y'
  639.    EJEC
  640.    SET PRINT OFF
  641.   ENDI
  642.   IF disk = 'Y'
  643.    ? CHR(12)
  644.    SET ALTERNATE OFF
  645.   ENDIF
  646.   ? '                          Hit any key to continue..........'
  647.   SET CONSOLE OFF
  648.   WAIT
  649.   SET CONSOLE ON
  650.   CLEA
  651.   STOR .t. TO more
  652.   STOR 'Y' TO printer
  653.   SET MARGIN TO 0
  654.   STOR 'N' TO disk
  655.   STOR '        ' TO filename
  656.   STOR '?' TO select
  657.   SELE A
  658.   USE &dr.:BUILD
  659.   SET INDEX TO &dr.:code
  660.   LOOP
  661.  CASE command = '?'
  662.   CLEA
  663.   TEXT
  664.  
  665.                R E P O R T   M E N U   H E L P   F I L E
  666.  
  667. The various reports are self explanatory. You should note, however, that
  668. the rent bills must be sent to the printer. All of the other reports can
  669. be sent to the printer, viewed on screen or written to a disk file (or
  670. any combination thereof).
  671.  
  672. A certain amount of customization may be required for your bills and for
  673. your labels. All of this is pretty well set forth in the program text.
  674. (Type REPORT.BLD to find the correct name of the report program you must
  675. edit.)
  676.  
  677. We assume that the rent bills will use the UARCO form we are using. If that
  678. is not the case, you will have to adjust it, but adjustments are rather  
  679. easy. You can also print the form on plain paper. The ledger and journal
  680. printing programs have a module to input and center text.
  681.  
  682.  
  683.                     Please hit any key to return to the menu
  684.  
  685.  
  686.   ENDT
  687.   SET CONSOLE OFF
  688.   WAIT
  689.   SET CONSOLE ON
  690.   LOOP
  691.  CASE (command = 'G' .OR. COMMAND = 'Q')
  692.   STOR .f. TO more
  693.  ENDC
  694.  SET PRINT OFF
  695.  SET ALTERNATE OFF
  696. ENDD while more
  697. RETU
  698. 
  699.