home *** CD-ROM | disk | FTP | other *** search
- <<* SSBDRIV.INC *>>
- <<* (C) 1991 SHEN YANG WHITE HORSE SOFTWART COMPANY *>>
-
- <<#
- 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}F
- <<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
- if (fldals $ 'A')
- genln( 'STORE ',ljust( fldnam,10 ),' TO ',fixareafldnam )
- else
- genln( 'STORE ',fldals + '->' + ljust( fldnam,10 ),' TO ',fixareafldnam )
- endif
- 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}S
- <<else>>
- PROCEDURE {fileprefix}_{alias}.SPR
- <<endif>>
- * ---Using {filename}
- <<pushmargin( 1 )>>
- <<GenSaysBlock( ptype=1 )>>
- <<popmargin>>
- RETURN
-
- <<#
- elsif ptype = 3
- fspec := fileprefix + '_' + alias + '.SPR'
- 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}T
- <<else>>
- PROCEDURE {fileprefix}_{alias}.TPR
- <<endif>>
- * ---Using {filename}
- <<pushmargin( 1 )>>
- <<GenStoreBlock>>
- <<popmargin>>
- RETURN
-
- <<#
- elsif ptype = 3
- fspec := fileprefix + '_' + alias + '.TPR'
- 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}R
- <<else>>
- PROCEDURE {fileprefix}_{alias}.RPR
- <<endif>>
- * ---Using {filename}
- <<pushmargin( 1 )>>
- <<GenReplaceBlock>>
- <<popmargin>>
- RETURN
-
- <<#
- elsif ptype = 3
- fspec := fileprefix + '_' + alias + '.RPR'
- 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}G
- <<else>>
- PROCEDURE {fileprefix}_{alias}.GPR
- <<endif>>
- * ---Using {filename}
- <<pushmargin( 1 )>>
- <<GenGetsBlock( ptype=1 )>>
- <<popmargin>>
- RETURN
-
- <<#
- elsif ptype = 3
- fspec := fileprefix + '_' + alias + '.GPR'
- if OpenFile( fspec,'@/GET commands for ' + filename )
- GenGetsBlock( false )
- GenFooter( fspec )
- endif
- endif
- end GenOneGets
-
-
- procedure GenDriver
- string alias,filename
- integer ptype
- begin
- #>>
-
- PROCEDURE {fileprefix}S
- <<#
- pushmargin(1)
- GenMemInit
- GenMemCalc
- popmargin
- forall databases
- filespec( dbfnam,fpath,fname,fext )
- filename := fname + '.DBF'
- alias := chr( dbfcount + 64 )
- #>>
- * ---Using {filename}
- <<#
- ptype := 2
- pushmargin( 1 )
- GenSaysBlock( ptype=1 )
- popmargin
- endfor
- #>>
- * SELECT &dbfarea
- RETURN
-
- PROCEDURE {fileprefix}G
- <<#
- pushmargin(1)
- GenMemInit
- genln( '?? SYS(2002,1) && TURN CURSOR ON' )
- popmargin
- forall databases
- filespec( dbfnam,fpath,fname,fext )
- filename := fname + '.DBF'
- alias := chr( dbfcount + 64 )
- #>>
- * ---Using {filename}
- <<#
- ptype := 2
- pushmargin( 1 )
- GenGetsBlock( ptype=1 )
- popmargin
- endfor
- select all fields
- pushmargin(1)
- genln( '?? SYS(2002) && TURN CURSOR OFF' )
- GenCalcMems
- popmargin
- #>>
- RETURN
-
- PROCEDURE {fileprefix}T
- <<#
- forall databases
- filespec( dbfnam,fpath,fname,fext )
- filename := fname + '.DBF'
- alias := chr( dbfcount + 64 )
- #>>
- * ---Using {filename}
- <<#
- ptype := 2
- pushmargin( 1 )
- GenStoreBlock
- popmargin
- endfor
- #>>
- RETURN
-
- PROCEDURE {fileprefix}R
- <<#
- forall databases
- filespec( dbfnam,fpath,fname,fext )
- filename := fname + '.DBF'
- alias := chr( dbfcount + 64 )
- #>>
- * ---Using {filename}
- <<#
- pushmargin( 1 )
- GenReplaceBlock
- popmargin
- endfor
- #>>
- RETURN
- <<end>> <<*GenDriver*>>
-
- <<#
- procedure GenSBProcedures
- string fspec,filename
- logical IsOK,IsTwoProcs
- integer ptype
- begin
- msetfilename := SUBSTR( fileprefix,1,4 ) + "mset"
- filename := datafile + '.DBF'
- fspec := fileprefix + 'P.PRG'
- IsOK := OpenFile( fspec,'PROCEDURE file for ' + filename )
- if IsOK
- GenProcStandard
- endif
- if IsOK
- GenProcSecond
- GenKeysProc
- GenFormat
- if ismultials
- GenDriver
- if ptype <> 3
- genln( '* EOF: ',fspec )
- endif
- else
- GenOneSays( 1,'',filename )
- GenOneGets( 1,'',filename )
- GenOneStore( 1,'',filename )
- GenOneReplace( 1,'',filename )
- genln( '* EOF: ',fspec )
- endif
- if (FuncStatus3 $ 'Tt') or (FuncStatus4 $ 'Tt')
- SSBFindMainBody
- endif
- endif
- end <<*GenProcedures*>>
-
- <<* EOF: SSBDRIV.INC *>>
- #>>
-