home *** CD-ROM | disk | FTP | other *** search
- <<* Proopen.inc *>>
-
- <<procedure GenOpenBody>>
- <<string strg>>
- <<integer first>>
- <<begin>>
- <<genln>>
-
- * --- Procedure to open databases and indexes
-
- PROCEDURE {fileprefix}_open
-
- * --- Initialize global variables
-
- choice = 0
- mcount = 0
- <<first := 0>>
- <<forall databases>>
-
- * --- Open database file
-
- <<filespec( dbfnam,fpath,fname,fext )>>
- <<fname := fname + '.' + fext>>
- <<strg := chr( dbfcount + 64 )>>
- SELECT {strg}
- mcount = {dbfcount}
- IF .NOT. FILE( {"}{fname}{"} )
- fname = GETFILE('DBF','Locate '+{'}{fname}{'}+':')
- IF fname == ""
- noopen = .T.
- RETURN
- ENDIF
- dbname(mcount) = {"}{fname}{"}
- USE (fname)
- <<if first = 0>>
- IF .NOT. (FILE({"}{fileprefix}_help.dbf{"}) .AND. FILE({"}{fileprefix}_help.fpt{"}))
- DO domemo
- ENDIF
- USE (fname)
- <<endif>>
- ELSE
- dbname(mcount) = {"}{fname}{"}
- <<if dbfals = ''>>
- USE {fname}
- <<if first = 0>>
- IF .NOT. (FILE({"}{fileprefix}_help.dbf{"}) .AND. FILE({"}{fileprefix}_help.fpt{"}))
- DO domemo
- ENDIF
- USE {fname}
- <<endif>>
- <<else>>
- USE {fname} ALIAS {dbfals}
- <<if first = 0>>
- IF .NOT. (FILE({"}{fileprefix}_help.dbf{"}) .AND. FILE({"}{fileprefix}_help.fpt{"}))
- DO domemo
- ENDIF
- USE {fname} ALIAS {dbfals}
- <<endif>>
- <<endif>>
- <<first:=1>>
- ENDIF
-
- <<if ndxtotal > 0>>
-
- * --- Open corresponding index file(s)
-
- <<forall indexes>>
- <<filespec( ndxnam,fpath,fname,fext )>>
- <<fname := fname + '.' + fext>>
- IF .NOT. FILE( {"}{fname}{"} )
- choice = 1
- DO alert2 WITH choice,{"}{fname}{"}+msg_cr_idx
- IF choice = 1
- INDEX ON {ndxkey} TO {fname}
- ELSE
- noopen = .T.
- RETURN
- ENDIF
- ENDIF
- <<endfor>>
- hasindex(mcount) = .T.
- <<genln( 'SET INDEX TO ',GetIndexNames(1) )>>
- <<popmarg>>
- <<endif>>
- <<endfor>>
- <<select all>>
- <<if reltotal > 0>> <<*Any relations in entire system?*>>
-
- * --- Establish relations between database files
-
- <<#
- forall databases
- if reltotal > 0
- genln( 'SELECT ',CHR( dbfcount+64 ) )
- endif
- forall relations
- if forcount = 1
- genln( 'SET RELATION TO ',relkey,' INTO ',relals )
- else
- genln( 'SET RELATION TO ',relkey,' INTO ',relals, ' ADDITIVE')
- endif
- endfor
- endfor
- endif
- #>>
-
- * --- Select current workarea
-
- temparea = STR(dbfarea)
- SELECT &temparea
-
- * --- move record pointer to establish relations (if any)
- GOTO RECNO()
- RETURN
- <<END>> <<*GenOpenBody*>>
-
- <<* EOF: Proopen.inc *>>
-
-