home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / clarion / statrep.zip / STATREP.MDL < prev   
Text File  |  1992-04-09  |  6KB  |  103 lines

  1. *STATREPORT********************************************************************
  2.  
  3. @PROCNAME    PROCEDURE
  4.  
  5.  
  6. SCREEN       SCREEN       WINDOW(8,52),AT(9,15),PRE(SCR),HUE(15,3)
  7.                ROW(8,1)   PAINT(1,1),TRN
  8.                ROW(8,2)   PAINT(1,51),HUE(7,0),TRN
  9.                ROW(2,52)  PAINT(6,1),HUE(7,0),TRN
  10.                ROW(1,52)  PAINT(1,1),TRN
  11.                  COL(1)   STRING('▀{51}'),HUE(12,3)
  12.                ROW(7,1)   STRING('▄{51}'),HUE(12,3)
  13.                ROW(2,5)   STRING('Report is being created.  Please wait')
  14.                  COL(42)  STRING('.{5}'),BLK
  15.                ROW(4,10)  STRING('File contains')
  16.                  COL(35)  STRING('Records')
  17.                ROW(6,11)  STRING('Processing Record #')
  18. RECORDS        ROW(4,24)  STRING(@n_10)
  19. COUNT          ROW(6,31)  STRING(@n_10)
  20.              .
  21.  
  22. REPORT       @REPORT
  23.  
  24.              @SAVEITEMS
  25.  
  26.   CODE
  27.   DONE# = 0                                      !TURN OFF DONE FLAG
  28.   OPEN(SCREEN)                              !!! BCC 4/9/92
  29.   SCR:RECORDS = RECORDS(@FILENAME)          !!! BCC 4/9/92
  30.   SCR:COUNT = 0                             !!! BCC 4/9/92
  31.   @SETUP                                         !CALL SETUP PROCEDURE
  32.   POINTER# = POINTER(@FILENAME)                  !SAVE THE CURRENT POINTER
  33.   @INITSELECTS                                   !SAVE SELECTOR FIELDS
  34.   CLEAR(@PRE:RECORD,-1)                          !MAKE SURE RECORD CLEARED
  35.   @RESTSELECTS                                   !RESTORE SELECTOR CRITERIA
  36.   BUILD(@INDEX)                                  !BUILD FILE INDEX
  37.   @INITREPORT                                    !INIT REPORT VARIABLES
  38.   @RPTHEADER                                     !DO REPORT HEADER COMPUTES
  39.   PRINT(TTL:RPT_HEAD)                            !PRINT TITLE PAGE
  40.   @PRINTMEMO                                     !PRINT ANY MEMO FILES
  41.   CLOSE(TITLE)                                   !CLOSE TITLE REPORT
  42.   @SETRPTFILE                                    !SET TO FIRST RECORD
  43.   DO NEXT_RECORD                                 !READ FIRST RECORD
  44.   @PAGEFOOTER                                    !DO PAGE FOOTER COMPUTES
  45.   @PAGEHEADER                                    !DO PAGE HEADER COMPUTES
  46.   @APPENDON                                      !APPEND REPORT TO TITLE
  47.   OPEN(REPORT)                                   !OPEN THE REPORT
  48.   @FIRSTBREAK                                    !PRINT INITIAL BREAK HEADERS
  49.   LOOP UNTIL DONE#                               !READ ALL RECORDS IN FILE
  50.     SAVE_LINE# = MEM:LINE                        !  SAVE LINE NUMBER
  51.     LAST_REC# = POINTER(@FILENAME)
  52.     @RUNTOTALS                                   !  ACCUMULATE RUNNING TOTALS
  53.     @INITDETAIL                                  !  SET UP FOR DETAIL LINE
  54.     PRINT(RPT:DETAIL)                            !  PRINT DETAIL LINES
  55.     DO CHECK_PAGE                                !  DO PAGE BREAK IF NEEDED
  56.     @PRINTMEMO                                   !  PRINT ANY MEMO FIELD
  57.     @TOTALS                                      !  ACCUMULATE TOTALS
  58.     @PAGEFOOTER                                  !  DO PAGE FOOTER COMPUTES
  59.     DO NEXT_RECORD                               !  GET NEXT RECORD
  60.     @PAGEHEADER                                  !  DO PAGE HEADER COMPUTES
  61.     @PAGEEJECTDTL                                !  EJECT PAGE IF NEEDED
  62.     @CHECKBREAK                                  !  CHECK FOR BREAK
  63.   .                                              !
  64.   @LASTBREAK                                     !  PRINT ENDING BREAK FOOTERS
  65.   @RPTFOOTER                                     !DO REPORT FOOTER COMPUTES
  66.   PRINT(RPT:RPT_FOOT)                            !PRINT GRAND TOTALS
  67.   DO CHECK_PAGE                                  !  DO PAGE BREAK IF NEEDED
  68.   @PRINTMEMO                                     !  PRINT ANY MEMO FIELD
  69.   CLOSE(REPORT)                                  !CLOSE REPORT
  70.   @APPENDOFF                                     !TURN OFF REPORT APPEND
  71.   GET(@FILENAME,POINTER#)                        !RESTORE THE INITIAL RECORD
  72.   CLOSE(SCREEN)                            !!! BCC 4/9/92
  73.   RETURN                                         !RETURN TO CALLER
  74.  
  75.  
  76. NEXT_RECORD ROUTINE                              !GET NEXT RECORD
  77.   LOOP UNTIL EOF(@FILENAME)                      !  READ UNTIL END OF FILE
  78.     NEXT(@FILENAME)                              !    READ NEXT RECORD
  79.     SCR:COUNT += 1                        !!! BCC 4/9/92
  80.     @CHECKSELECT                                 !    STOP IF PAST SELECTOR
  81.     @DETAIL                                      !    DO DETAIL COMPUTES
  82.     IF ~(@FILTER) THEN CYCLE.                    !    IF FILTERED OUT, GET NEXT
  83.     EXIT                                         !    EXIT THE ROUTINE
  84.   .                                              !
  85.   DONE# = 1                                      !  ON EOF, SET DONE FLAG
  86.  
  87. CHECK_PAGE ROUTINE                               !CHECK FOR NEW PAGE
  88.   IF MEM:LINE <= SAVE_LINE#                      !  ON PAGE OVERFLOW
  89.     SAVE_LINE# = MEM:LINE                        !    RESET LINE NUMBER
  90.     @INITPAGE                                    !    INIT PAGE VARIABLES
  91.   .
  92.   LOOP UNTIL NOT KEYBOARD()                      !LOOK FOR KEYSTROKE
  93.     ASK
  94.     IF KEYCODE() = REJECT_KEY                    !ON CTRL-ESC
  95.       @APPENDOFF                                 !  TURN OFF REPORT APPENDING
  96.       CLOSE(REPORT)                              !  CLOSE REPORT
  97.       GET(@FILENAME,POINTER#)                    !RESTORE THE INITIAL RECORD
  98.       RETURN                                     !  ABORT PRINT
  99.   . .
  100.  
  101. @BREAKRTN                                        !CHECK FOR GROUP BREAK
  102.  
  103.