home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / clarion / tkmengen.zip / PRINT.CLA < prev    next >
Text File  |  1989-08-24  |  3KB  |  103 lines

  1.          MEMBER('MAKEMENU')
  2.  
  3. PRINTING         PROCEDURE
  4.  
  5. TITLE         REPORT      LENGTH(59),WIDTH(80),PRE(TTL)
  6. RPT_HEAD          DETAIL
  7.          .          .
  8. REPORT         REPORT      LENGTH(59),WIDTH(80),PAGE(MEM:PAGE),LINE(MEM:LINE)        |
  9.               PRE(RPT)
  10. PAGE_HEAD          HEADER
  11.          COL(31)    STRING('MENU DATA DESTAILS') CTL(@LF)
  12.               .
  13. GRP_HEAD          DETAIL
  14.          COL(1)        STRING('={80}')
  15.            ROW(+1,1)    STRING('MAIN MENU TITLE :')
  16.          COL(22)    STRING(25),USE(SAV:MAINMENU)
  17.            ROW(+1,1)    STRING('MAIN MENU DESCRIPTION :')
  18.            ROW(+1,1)    STRING(80),USE(MEN:MDESC)
  19.            ROW(+1,1)    STRING('-{79}') CTL(@LF)
  20.               .
  21. DETAIL              DETAIL
  22.          COL(1)        STRING('SUB MENU TITLE :')
  23.          COL(19)    STRING(25),USE(PRT:SUBMENU)
  24.          COL(36)    STRING('PROCEDURE :')
  25.          COL(49)    STRING(14),USE(PRT:SUBPROC)
  26.            ROW(+1,1)    STRING('SUB MENU DERSCRIPTION :')
  27.            ROW(+1,1)    STRING(80),USE(PRT:SDESC) CTL(@LF2)
  28.               .
  29. GRP_FOOT          DETAIL
  30.               .
  31. PAGE_FOOT          FOOTER
  32.               .
  33. RPT_FOOT          DETAIL
  34.          .          .
  35.  
  36.          GROUP,PRE(SAV)
  37. MAINMENU       STRING(10)
  38.          .
  39.  
  40.           GROUP, PRE(PRT)
  41. SUBMENU           STRING(10)
  42. SDESC           STRING(80)
  43. SUBPROC           STRING(15)
  44.  
  45.           end
  46.  
  47.   CODE
  48.   IF s8DFName ='' THEN
  49.     SHOW(2,1,'You must first design your menu details ........')
  50.     BEEP(400,30)
  51.     BEEP(200,50)
  52.     BEEP(300,20)
  53.     BEEP(550,50)
  54.     BEEP(250,150)
  55.     RETURN
  56.   END
  57.   DONE# = 0                     !TURN OFF DONE FLAG
  58.   CLEAR(MEN:RECORD)                 !MAKE SURE RECORD CLEARED
  59.   PRINT(TTL:RPT_HEAD)                 !PRINT TITLE PAGE
  60.   CLOSE(TITLE)                     !CLOSE TITLE REPORT
  61.   SET(MEN:MENU)                     !SET TO FIRST RECORD
  62.   DO NEXT_RECORD                 !READ FIRST RECORD
  63.   OPEN(REPORT)                     !OPEN THE REPORT
  64.   LOOP UNTIL DONE#                 !READ ALL RECORDS IN FILE
  65.     SAV:MAINMENU = MEN:MAINMENU             !SAVE BREAK FIELD
  66.     PRINT(RPT:GRP_HEAD)                 !  PRINT GROUP HEADER
  67.     DO CHECK_PAGE                 !  DO PAGE BREAK IF NEEDED
  68.  
  69.     LOOP UNTIL DONE#                 !  READ ALL RECORDS IN GROUP
  70.      LOOP I#=1 TO 15
  71.     IF MEN:SUBMENU[I#]='' THEN CYCLE .
  72.     prt:SUBMENU=MEN:SUBMENU[I#]
  73.     prt:SDESC = MEN:SDESC[I#]
  74.     prt:SUBPROC= MEN:SUBPROC[I#]
  75.       SAVE_LINE# = MEM:LINE             !    SAVE LINE NUMBER
  76.       PRINT(RPT:DETAIL)                 !    PRINT DETAIL LINES
  77.       DO CHECK_PAGE                 !    DO PAGE BREAK IF NEEDED
  78.       END
  79.  
  80.       DO NEXT_RECORD                 !    GET NEXT RECORD
  81.       IF MEN:MAINMENU <> SAV:MAINMENU THEN BREAK.!BREAK ON NEW GROUP
  82.     .                         !
  83.     PRINT(RPT:GRP_FOOT)                 !  PRINT GROUP FOOTER
  84.     DO CHECK_PAGE                 !  DO PAGE BREAK IF NEEDED
  85.   .                         !
  86.   PRINT(RPT:RPT_FOOT)                 !PRINT GRAND TOTALS
  87.   DO CHECK_PAGE                     !  DO PAGE BREAK IF NEEDED
  88.   CLOSE(REPORT)                     !CLOSE REPORT
  89.   RETURN                     !RETURN TO CALLER
  90.  
  91.  
  92. NEXT_RECORD ROUTINE                 !GET NEXT RECORD
  93.   LOOP UNTIL EOF(MENU)                 !  READ UNTIL END OF FILE
  94.     NEXT(MENU)                     !    READ NEXT RECORD
  95.     EXIT                     !    EXIT THE ROUTINE
  96.   .                         !
  97.   DONE# = 1                     !  ON EOF, SET DONE FLAG
  98.  
  99. CHECK_PAGE ROUTINE                 !CHECK FOR NEW PAGE
  100.   IF MEM:LINE <= SAVE_LINE#             !  ON PAGE OVERFLOW
  101.   .
  102.  
  103.