home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a040 / 2.ddi / SHRWARE4.ARC / MSAMAIN.INC < prev    next >
Encoding:
Text File  |  1988-06-07  |  5.4 KB  |  207 lines

  1. <<* MSAMAIN.INC *>>
  2. <<* Modified 15 January 1988 *>>
  3.  
  4.  
  5. <<procedure GenMainBody>>
  6. <<integer count,ndxmax>>
  7. <<begin>>
  8. * ---SET environment.
  9. SET TALK OFF
  10. SET STATUS OFF
  11. SET HELP OFF
  12. SET BELL OFF
  13. SET SAFETY OFF
  14. SET ESCAPE OFF  
  15. SET SCOREBOARD OFF
  16. * ---Open PROCEDURE file.
  17. SET PROCEDURE TO {fileprefix}_PROC
  18. * ---SET CURSOR OFF
  19. ?? SYS(2002)
  20. *
  21. * ---Declare Global memory variables.
  22. PUBLIC INST_L_OFF,INST_L_ON,INST_BAK,INST_INC,INST_DRIVE
  23. PUBLIC INST_C_OFF,INST_C_ON,INST_E_OFF,INST_E_ON,INST_REST
  24. PUBLIC INST_CODE
  25. PUBLIC INST_C1,INST_C2,INST_C3,INST_C4,INST_C5
  26.  
  27. * ---HOTKEYS
  28. ON KEY=315 DO SYS_HELP 
  29. PRIVATE;
  30.    PgDn,PgUp,Returnkey,DelRecord,;
  31.    ScreenAtr,StatusAtr,WindowAtr,PromptAtr,HiliteAtr,;
  32.    DBFname,DBFtemp,dbfarea,dbfpagemax,NdxOrder,isedited,;
  33.    PromptBar,PromptRow,mainchoice,menuchoice,choice,;
  34.    CHOICE_X,CHOICE_Y
  35. STORE .F. TO;
  36.    PgDn,PgUp,Returnkey,DelRecord,;
  37.    ScreenAtr,StatusAtr,WindowAtr,PromptAtr,HiliteAtr,;
  38.    DBFname,DBFtemp,dbfarea,dbfpagemax,NdxOrder,isedited,;
  39.    PromptBar,PromptRow,mainchoice,menuchoice,choice, ;
  40.    CHOICE_X,CHOICE_Y
  41. <<#
  42.   forall databases
  43.     if ndxtotal > ndxmax
  44.       ndxmax := ndxtotal
  45.     endif
  46.   endfor
  47.   for count := 1 to ndxmax
  48.     genln( 'PRIVATE NDXnam',count,',NDXkey',count )
  49.   endfor
  50.     for count := 1 to ndxmax
  51.       genln( 'STORE .F. TO NDXnam',count,',NDXkey',count )
  52.     endfor
  53. #>>
  54. <<if ismultipage>>
  55. PRIVATE LastRec,recnum,oldrecnum,pageno,PageMax,expr,notes,IsValid
  56. <<else>>
  57. PRIVATE LastRec,recnum,oldrecnum,expr,notes,IsValid
  58. <<endif>>
  59.   <<if ismultipage>>
  60. STORE .F. TO LastRec,recnum,oldrecnum,pageno,PageMax,expr,notes,IsValid
  61.   <<else>>
  62. STORE .F. TO LastRec,recnum,oldrecnum,expr,notes,IsValid
  63.   <<endif>>
  64. <<#
  65.   select all    <<*Let memvars become visible*>>
  66.   select fields on (fldtyp $ 'CDLN') and (fldals = 'M') and fldget
  67.   if fldtotal > 0
  68.     genln( '* ---Declare user-defined memory variables.' )
  69.     GenFldList( 'PRIVATE;' )
  70.       GenMemStore( 'C','STORE " " TO;' )
  71.       GenMemStore( 'N','STORE 0.00 TO;' )
  72.       GenMemStore( 'L','STORE .F. TO;' )
  73.       GenMemStore( 'D','STORE CTOD("  /  /  ") TO;' )
  74.   endif
  75.   select all
  76.   select fields on (fldtyp $ 'CDLN') and (fldals <> 'M') and fldget
  77.   if fldtotal <= 128
  78.     genln( '* ---Declare field memory variables.' )
  79.     GenFldList( 'PRIVATE;' )
  80.       GenFldStore( 'C','STORE " " TO;' )
  81.       GenFldStore( 'N','STORE 0.00 TO;' )
  82.       GenFldStore( 'L','STORE .F. TO;' )
  83.       GenFldStore( 'D','STORE CTOD("  /  /  ") TO;' )
  84.   endif
  85. #>>
  86. *
  87. * ---Initialize Global memory variables and OPEN file(s).
  88. dbfarea = "1"
  89. DO {fileprefix}_OPEN
  90. DO {fileprefix}_LOGO
  91. *
  92. * ---Execute main loop.
  93. STORE 1 TO CHOICE_X,CHOICE_Y
  94. DO WHILE .T.
  95.    * ---Display main menu and get choice.
  96.    DO {fileprefix}_MBAR WITH CHOICE_X,CHOICE_Y
  97.    <<GenColor( 1,'WINDOW' )>>
  98. <<IF FOX>>
  99. * --- CHECK FOR HELP
  100. if readkey() = 36
  101. DO SYS_HELP
  102. STORE 0 TO CHOICE_X,CHOICE_Y
  103. endif
  104. <<ENDIF>>
  105. DO CASE
  106. * ---WE CHECK IF WE WANT TO QUIT FIRST 
  107.  CASE CHOICE_X = 6   && M_QUIT CHOICES
  108.       DO {fileprefix}_QUIT WITH CHOICE_Y
  109.  CASE CHOICE_X = 1    && M_FILE CHOICES
  110.   IF (CHOICE_Y = 2 .OR. CHOICE_Y = 4) .AND. (LastRec = 0)
  111.    <<if ismultials>>
  112.    @ 24,0 CLEAR
  113.    @ 24, 0 SAY "EMPTY DATABASE:  Only" + ;
  114.    " Append and Select are available."
  115.    <<else>>
  116.       @ 24,0 CLEAR
  117.       @ 24, 0 SAY "EMPTY DATABASE:  Only" + ;
  118.       " Append is available."
  119.    <<endif>>
  120.       ?? CHR(7)
  121.       STORE INKEY(0) TO STOP
  122.    LOOP
  123.   ENDIF
  124.  DO CASE
  125.    CASE CHOICE_Y = 1     
  126.       * ---DO APPEND.
  127.       DO {fileprefix}_APPE
  128.    CASE CHOICE_Y = 2
  129.       * ---DO EDIT/VIEW.
  130.       isedited = .F.
  131.       DO {fileprefix}_EDIT WITH isedited
  132.    CASE CHOICE_Y = 4
  133.       * ---BROWSE the database file.
  134.       * ---If you prefer the regular BROWSE, then
  135.       * ---change the following line to IF .F.
  136.       IF .T.
  137.          DO {fileprefix}_BROW
  138.       ELSE
  139.          SET MENUS ON
  140.          SET SCOREBOARD ON
  141.          BROWSE
  142.          SET SCOREBOARD OFF
  143.          SET MENUS OFF
  144.       ENDIF
  145.       * ---It is advisable to close and reopen the
  146.       * ---datafiles after extensive browsing/editing.
  147.       CLOSE DATABASE
  148.       CLOSE INDEX
  149.       DO {fileprefix}_OPEN
  150.    CASE CHOICE_Y = 5
  151.       * ---DO INDEX.
  152.     <<if ismultials>>
  153.       DO {fileprefix}_PACK WITH 23
  154.     <<else>>
  155.       DO {fileprefix}_PACK WITH 23
  156.     <<endif>>
  157.    CASE CHOICE_Y = 6
  158.       * ---DO EXPORT
  159.     @ 23,0 CLEAR
  160.     @ 24,0 SAY 'NOT IMPLEMENTED IN CURRENT VERSION'
  161.     <<IF FOX>>
  162.     STORE INKEY(2) TO STOP
  163.     <<ELSE>>
  164.     INKEY(2)
  165.     <<ENDIF>>
  166.  
  167.   <<if ismultials>>
  168.    CASE CHOICE_Y = 8
  169.       * ---DO SELECT FILE.
  170.       DO {fileprefix}_FILE WITH 18,choice
  171.    <<endif>>
  172.  
  173.  ENDCASE  && M_FILE
  174. CASE CHOICE_X = 2 
  175.   * ---DO REPORT.
  176.   DO {fileprefix}_REPO WITH CHOICE_Y
  177. CASE CHOICE_X = 3
  178.       * ---DO LABELS.
  179.       DO {fileprefix}_LABE WITH CHOICE_Y
  180. CASE CHOICE_X = 4
  181.    * ---MISC ROUTINES
  182.   DO {fileprefix}_MISC WITH CHOICE_Y
  183. CASE CHOICE_X = 5
  184.   DO CASE
  185.     CASE CHOICE_Y = 1
  186.     *---BACKUP
  187.       DO {fileprefix}_BAK
  188.     CASE CHOICE_Y = 2
  189.     *---RESTORE
  190.       DO {fileprefix}_REST
  191.     CASE CHOICE_Y = 3
  192.     *---RESTORE
  193.     *  DO {fileprefix}_ARCH
  194.     @ 23,0 CLEAR
  195.     @ 24,0 SAY 'NOT IMPLEMENTED IN CURRENT VERSION'
  196.     <<IF FOX>>
  197.     STORE INKEY(2) TO STOP
  198.     <<ELSE>>
  199.     INKEY(2)
  200.     <<ENDIF>>
  201.   ENDCASE
  202. ENDCASE
  203. ENDDO
  204. <<end>> <<*GenMainBody*>>
  205.  
  206. <<* EOF: MSAMAIN.INC *>>
  207.