*----Input with the full path and filename of project table: *.PJ_
PARAMETER ufalist
IF not FILE('&ufalist')
WAIT WINDOW '工程信息文件未找到!' timeout 5.0
close all
quit
ENDIF
CLEA
close all
IF .not. ('3.0'$VERSION() or '5.0'$VERSION() or '6.0'$VERSION())
IF FILE('TEMP1.PJX')
ERASE TEMP1.PJX
ENDIF
IF FILE('out.dbf')
ERASE out.dbf
ENDIF
endif
DEFINE WINDOW mpywindow FROM INT((SROW()-13)/2),INT((SCOL()-71)/2) ;
TO INT((SROW()-13)/2)+12,INT((SCOL()-71)/2)+70 TITLE "UNFOXALL工程文件生成工具 V1.0" ;
FLOAT NOCLOSE SHADOW NOMINIMIZE DOUBLE COLOR SCHEME 7
ACTIVATE WINDOW mpywindow
@1,1 say ' ?本文件用于创建一个FOXPRO的工程文件, 支持:'
@2,1 say ' ?FoxPro for DOS/Windows 2.x, Visual FoxPro 3.0/5.0/6.0'
@4,1 say ' ?命令行参数说明:'
@5,1 say ' ? BUILDPJX <filename>.PJ_'
@7,1 say ' 作者: 穆鹏义'
use
IF FILE('unfoxall.tab')
ERASE unfoxall.tab
ENDIF
IF FILE('out.dbf')
ERASE out.dbf
ENDIF
IF FILE('out.fpt')
ERASE out.fpt
ENDIF
Activate Screen
filename=(ufalist)
filepath=LEFT(FILENAME, rat('\',alltrim(FILENAME)) )
set default to (filepath)
CREATE TABLE unfoxall.tab (FNAME C(55), XPAD1 C(1), PJTYPE C(4), XPAD2 C(1), LONGNAME C(128))
EXT = UPPER(RIGHT(ALLTRIM(filename),3))
IF !FILE(FILENAME)
WAIT WINDOW 'FILE NOT EXIST!!!'
QUIT
ENDIF
LFA = ALIAS()
APPEND FROM (filename) TYPE DELIMITED
EXIN = 'PRG TXT ICO MSK DBF DBC FPT CDX VCX VCT FMT FRT SCX SCT LBX LBT MNX MPR MNT BMP MSK FLL APP QPR SPR PLB FRX CUR H '
IF .not. ('3.0'$VERSION() or '5.0'$VERSION() or '6.0'$VERSION()) && is 2.5/2.6
EXOUT= 'P x x x D d out I V out R out K out B out M P out x x L Z Q P L R x T '
else
EXOUT= 'P T x x D d out I V out R out K out B out M P out x x L Z Q P L R x T '
endif
ISTABLE = 'DBF MNX FRX LBX SCX VCX'
SELECT 0
PROJSTUB = LEFT(FILENAME,LEN(ALLTRIM(FILENAME))-4)
PROJSTUB = SUBSTR(PROJSTUB,RAT('\',PROJSTUB)+1)
PROJF = PROJSTUB+".PJX"
USE
IF .not. ('3.0'$VERSION() or '5.0'$VERSION() or '6.0'$VERSION())
KEYBOARD(CHR(23)) && 'CRTL + W'
CREATE PROJECT TEMP1
use
release WINDOW output
COPY FILE TEMP1.PJX TO OUT.DBF
COPY FILE TEMP1.PJT TO OUT.FPT
else
CREATE PROJECT (PROJF) NOWAIT
PROJW = "Project Manager - "+PROPER(projstub)
KEYBOARD ('R')
RELEASE WIND (PROJW)
CLOSE ALL
COPY FILE (PROJSTUB)+'.PJX' TO OUT.DBF
COPY FILE (PROJSTUB)+'.PJT' TO OUT.FPT
ERASE (PROJSTUB)+'.PJX'
ERASE (PROJSTUB)+'.PJT'
SELECT 0
USE unfoxall.tab
LFA = ALIAS()
endif
SELECT 0
UNU = SELECT()
SELECT (LFA)
SCAN
EXT = UPPER(RIGHT(ALLTRIM(FNAME),3)) && filename's extern
N=ALLTRIM(FNAME)
L = .T.
K = UPPER(LEFT(FNAME,AT('.',FNAME)-1))
T = IIF(EMPTY(SUBSTR(EXOUT,AT(EXT,EXIN),1)),'x',SUBSTR(EXOUT,AT(EXT,EXIN),1))
IF UPPER(RIGHT(N,3))$ISTABLE
IF FILE('&N')
USE (N) IN (UNU)
CP = CPDBF(UNU)
USE IN (UNU)
SELECT (LFA)
ELSE
CP = CPCURRENT()
ENDIF
ELSE
CP = 0
ENDIF
WAIT WINDOW '正在添加 : '+UPPER(N) +' 到工程文件' TIMEOUT 0.2
PRGMAIN = PJTYPE='Main'
IF .NOT. T=='o'
IF '5.0'$VERSION()
IF CP = 0
INSERT INTO OUT (NAME,TYPE,LOCAL,KEY,MAINPROG) VALUES(N,T,L,K,PRGMAIN)
ELSE
INSERT INTO OUT (NAME,TYPE,LOCAL,KEY,MAINPROG,CPID) VALUES(N,T,L,K,PRGMAIN,CP)
ENDIF
ELSE
IF '3.0'$VERSION()
IF CP = 0
INSERT INTO OUT (NAME,TYPE,KEY,MAINPROG) VALUES(N,T,K,PRGMAIN)
ELSE
INSERT INTO OUT (NAME,TYPE,KEY,MAINPROG,CPID) VALUES(N,T,K,PRGMAIN,CP)
ENDIF
ELSE &&FOXPRO 2.5 /2.6 FOR DOS/WINDOWS
IF CP = 0
INSERT INTO OUT (NAME,TYPE,MAINPROG) VALUES(N,T,PRGMAIN)
ELSE
INSERT INTO OUT (NAME,TYPE,MAINPROG,CPID) VALUES(N,T,PRGMAIN,CP)
ENDIF
ENDIF
ENDIF
ENDIF
ENDSCAN
close all
s2=PROJSTUB+'.PJT'
s1=PROJSTUB+'.PJX'
COPY FILE OUT.DBF to (s1)
COPY FILE OUT.fpt to (s2)
ERASE unfoxall.tab
ERASE out.dbf
ERASE out.fpt
ERASE TEMP1.PJX
ERASE TEMP1.PJT
clea
@8,1 say ' 工程文件创建完毕!'
*WAIT WINDOW 'Project file *** '+PROJF+' *** Build Completed !' timeout 4.0
RELEASE WIND mpywindow
*-----MODIFY PROJECT (PROJF) NOWAIT
QUIT
***** End *****
Local FileName,BegDate,EndDate
BegDate='2004.11.01'
EnDate=Date()
Do while BegDate<=EnDate
FileName=Dtos(date())
if file(FileName+'.dbf')
if !Used(&FileName)
use &FileName in 0 again share alias File
endif
......
BegDate=BegDate+1
endif
EndDo
SET DATE TO YMD
SET CENTURY ON
LOCAL YearMonth,Ddate,CFile
YearMonth="200411" &&比如你要汇总2004年11月份的
Ddate=CTOD(SUBSTR(YearMonth,1,4)+"/"+SUBSTR(YearMonth,5,2)+"/01")
FOR I=27 TO 31
IF MONTH(Ddate+I)!=11
I=I-1
EXIT
ENDIF
ENDFOR
FOR J=0 TO I
CFile=DTOS(Ddate+J)+".dbf"
USE 表A &&表A为与20041111.dbf结构一样的表
ZAP
APPEND FROM &CFile
ENDFOR
&&然后你对表A进行操作(汇总)即可。
&&如果你要汇总2003年11月份的,只需修改YearMonth的值即可