home *** CD-ROM | disk | FTP | other *** search
- <<* MSADRIV.INC *>>
-
- <<#
- procedure GenSelect
- begin
- if dbfals
- genln( 'SELECT ',dbfals )
- elsif dbfcount = 0
- genln( 'SELECT A' )
- else
- genln( 'SELECT ',chr( 64 + dbfcount ) ) <<*'A'..'J'*>>
- endif
- end GenSelect
- #>>
-
-
- <<procedure GenFormat>>
- <<begin>>
-
- PROCEDURE {fileprefix}_FORM
- <<pushmargin( 1 )>>
- <<GenFormHead>>
- <<GenFormBody>>
- <<popmargin>>
- RETURN
-
- <<end GenFormat>>
-
-
- <<#
- procedure GenSaysBlock( IsWithMems : logical )
- begin
- if IsWithMems
- GenMemInit
- GenMemCalc
- endif
- GenSaysBody
- end GenSaysBlock
-
-
- procedure GenStoreBlock
- begin
- genln( '* ---Initialize memvars with field contents.' )
- select on databases,fields
- select all fields
- forall (fldtyp $ 'CDLN') and (fldals <> 'M') and fldget
- genln( 'STORE ',ljust( fldnam,10 ),' TO ',fixfldnam )
- endfor
- end GenStoreBlock
-
-
- procedure GenReplaceBlock
- begin
- genln( 'IF .NOT. EOF()' )
- genln( '* ---Replace only if there is an available record.' )
- select on databases,fields
- select all fields
- select fields on (fldtyp $ 'CDLN') and (fldals <> 'M') and fldget
- if fldtotal > 0
- GenReplaceFlds
- endif
- select all fields
- genln( 'ENDIF' )
- end GenReplaceBlock
-
-
- procedure GenGetsBlock( IsWithMems : logical )
- begin
- if IsWithMems
- GenMemInit
- select database 1
- GenGetsBody
- GenCalcBody
- else
- GenGetsBody
- endif
- end GenGetsBlock
-
-
- procedure GenOneSays( ptype : integer; alias,filename : string )
- string fspec
- begin
- if (ptype = 1) or (ptype = 2)
- #>>
-
- <<if ptype = 1>>
- PROCEDURE {fileprefix}_SAYS
- <<else>>
- PROCEDURE {fileprefix}_{alias}SAY
- <<endif>>
- * ---Using {filename}
- <<pushmargin( 1 )>>
- <<GenSaysBlock( ptype=1 )>>
- <<popmargin>>
- RETURN
-
- <<#
- elsif ptype = 3
- fspec := prgpath + fileprefix + '_' + alias + 'SAY.PRG'
- if OpenFile( fspec,'@/SAY commands for ' + filename )
- GenSaysBlock( false )
- GenFooter( fspec )
- endif
- endif
- end GenOneSays
-
-
- procedure GenOneStore( ptype : integer; alias,filename : string )
- string fspec
- begin
- if (ptype = 1) or (ptype = 2)
- #>>
-
- <<if ptype = 1>>
- PROCEDURE {fileprefix}_STOR
- <<else>>
- PROCEDURE {fileprefix}_{alias}STO
- <<endif>>
- * ---Using {filename}
- <<pushmargin( 1 )>>
- <<GenStoreBlock>>
- <<popmargin>>
- RETURN
-
- <<#
- elsif ptype = 3
- fspec := prgpath + fileprefix + '_' + alias + 'STO.PRG'
- if OpenFile( fspec,'STORE commands for ' + filename )
- GenStoreBlock
- GenFooter( fspec )
- endif
- endif
- end GenOneStore
-
-
- procedure GenOneReplace( ptype : integer; alias,filename : string )
- string fspec
- begin
- if (ptype = 1) or (ptype = 2)
- #>>
-
- <<if ptype = 1>>
- PROCEDURE {fileprefix}_REPL
- <<else>>
- PROCEDURE {fileprefix}_{alias}REP
- <<endif>>
- * ---Using {filename}
- <<pushmargin( 1 )>>
- <<GenReplaceBlock>>
- <<popmargin>>
- RETURN
-
- <<#
- elsif ptype = 3
- fspec := prgpath + fileprefix + '_' + alias + 'REP.PRG'
- if OpenFile( fspec,'REPLACE commands for ' + filename )
- GenReplaceBlock
- GenFooter( fspec )
- endif
- endif
- end GenOneReplace
-
-
- procedure GenOneGets( ptype : integer; alias,filename : string )
- string fspec
- begin
- if (ptype = 1) or (ptype = 2)
- #>>
-
- <<if ptype = 1>>
- PROCEDURE {fileprefix}_GETS
- <<else>>
- PROCEDURE {fileprefix}_{alias}GET
- <<endif>>
- * ---Using {filename}
- <<pushmargin( 1 )>>
- <<GenGetsBlock( ptype=1 )>>
- <<popmargin>>
- RETURN
-
- <<#
- elsif ptype = 3
- fspec := prgpath + fileprefix + '_' + alias + 'GET.PRG'
- if OpenFile( fspec,'@/GET commands for ' + filename )
- GenGetsBlock( false )
- GenFooter( fspec )
- endif
- endif
- end GenOneGets
-
-
- procedure GenDriver
- string alias
- begin
- #>>
-
- PROCEDURE {fileprefix}_SAYS
- <<#
- pushmargin(1)
- GenMemInit
- GenMemCalc
- popmargin
- forall databases
- alias := chr( dbfcount + 64 )
- pushmargin( 1 )
- GenSelect
- popmargin
- #>>
- DO {fileprefix}_{alias}SAY
- <<endfor>>
- SELECT &dbfarea
- RETURN
-
-
- PROCEDURE {fileprefix}_GETS
- <<pushmargin(1)>>
- <<GenMemInit>>
- <<popmargin>>
- DO CASE
- <<forall databases>>
- CASE dbfarea = {"}{dbfcount}{"}
- <<#
- alias := chr( dbfcount + 64 )
- pushmargin( 2 )
- GenSelect
- genln( 'DO ',fileprefix,'_',alias,'GET' )
- GenCalcFlds
- popmargin
- endfor
- #>>
- ENDCASE
- <<pushmargin(1)>>
- <<GenCalcMems>>
- <<popmargin>>
- RETURN
-
-
- PROCEDURE {fileprefix}_STOR
- DO CASE
- <<forall databases>>
- <<alias := chr( dbfcount + 64 )>>
- CASE dbfarea = {"}{dbfcount}{"}
- DO {fileprefix}_{alias}STO
- <<endfor>>
- ENDCASE
- RETURN
-
-
- PROCEDURE {fileprefix}_REPL
- DO CASE
- <<forall databases>>
- <<alias := chr( dbfcount + 64 )>>
- CASE dbfarea = {"}{dbfcount}{"}
- DO {fileprefix}_{alias}REP
- <<endfor>>
- ENDCASE
- RETURN
-
- <<end>> <<*GenDriver*>>
-
-
- <<#
- procedure GenProcGroups( ptype : integer )
- string filename,alias
- integer count
- begin
- for count := 1 to 4
- select all
- forall databases
- filespec( dbfnam,fpath,fname,fext )
- filename := fname + '.DBF'
- alias := chr( dbfcount + 64 )
- if count = 1
- GenOneSays( ptype,alias,filename )
- elsif count = 2
- GenOneGets( ptype,alias,filename )
- elsif count = 3
- GenOneStore( ptype,alias,filename )
- elsif count = 4
- GenOneReplace( ptype,alias,filename )
- endif
- endfor
- endfor
- end <<*GenProcGroups*>>
-
-
- procedure GenProcedures
- string fspec,filename
- logical IsOK,IsTwoProcs
- integer ptype
- begin
- filename := datafile + '.DBF'
- fspec := fileprefix + '_PROC.PRG'
- IsOK := OpenFile( prgpath + fspec,'PROCEDURE file for ' + filename )
- if IsOK
- GenProcStandard
- endif
- if IsOK
- GenProcSecond
- GenKeysProc
- GenFormat
- if ismultials
- GenDriver
- ptype := 2 <<*Keep procedures inside one file*>>
- GenProcGroups( ptype )
- if ptype <> 3
- genln( '* EOF: ',fspec )
- endif
- else
- GenOneSays( 1,'',filename )
- GenOneGets( 1,'',filename )
- GenOneStore( 1,'',filename )
- GenOneReplace( 1,'',filename )
- genln( '* EOF: ',fspec )
- endif
- endif
- end <<*GenProcedures*>>
-
- <<* EOF: MSADRIV.INC *>>
- #>>