Vfp控制Excel快速报表示例
先将数据库文件导出到Excel文件,再设置Excel文件的标题、表头、纸张属性、页眉、页脚、(左、右、上、下边距)等,报表速度比用for...endf、scan...ends导出报表要快的多。
程序源码如下:
yesno=MESSAGEBOX("将数据输出到Excel表中,是否继续?",32+0+1,"提示信息")
if yesno=2
return
endif
*产生要保存的文件名
wjm='产销存表'+ALLTRIM(STR(YEAR(DATE())))+IIF(LEN(ALLTRIM(STR(month(date()-28))))=1,'0'+ALLTRIM(STR(month(date()-28))),ALLTRIM(STR(month(date()-28))))
Exl_file = PUTFILE("请输入文件名,并选择 回车存盘.","&wjm","XLS")
if not EMPTY(Exl_file)
if UPPER(RIGHT(ALLTRIM(Exl_file),4)) = ".XLS"
OLDAREA = SELECT()
PRIVATE OLDREC
lcmsg="正在整理数据库数据,请稍侯…"
WAIT lcmsg WINDOW NOWAIT AT SROW()/2, (SCOLS()-LEN(lcMsg))/2
*整理数据
SET ENGINEBEHAVIOR 80 &&或sys(3099,80)
SELECT cxchz.dm,mc,cxchz.qcsl,cxchz.qcje,cxchz.byrksl,;
cxchz.byrkje,cxchz.jqdj,cxchz.byxssl,cxchz.byxscb,cxchz.qmsl,cxchz.qmje ;
from cxchz into dbf 产销存表.dbf
SORT on dm to ls
USE ls EXCLUSIVE
DELETE FOR (qcsl=0.and.byrksl=0.and.byxssl=0.and.qmsl=0).or.empty(dm).or.subs(ALLTRIM(dm),1,4)='1108'.or.subs(ALLTRIM(dm),1,4)='1109'.or.subs(ALLTRIM(dm),1,2)='12'
pack
COPY TO 产销存表.dbf
USE 产销存表 EXCLUSIVE
*加入汇总项
sum all qcsl,qcje,byrksl,byrkje,byxssl,byxscb,qmsl,qmje to s1,j1,s3,j3,s4,j4,s5,j5 <
程序源码如下:
yesno=MESSAGEBOX("将数据输出到Excel表中,是否继续?",32+0+1,"提示信息")
if yesno=2
return
endif
*产生要保存的文件名
wjm='产销存表'+ALLTRIM(STR(YEAR(DATE())))+IIF(LEN(ALLTRIM(STR(month(date()-28))))=1,'0'+ALLTRIM(STR(month(date()-28))),ALLTRIM(STR(month(date()-28))))
Exl_file = PUTFILE("请输入文件名,并选择 回车存盘.","&wjm","XLS")
if not EMPTY(Exl_file)
if UPPER(RIGHT(ALLTRIM(Exl_file),4)) = ".XLS"
OLDAREA = SELECT()
PRIVATE OLDREC
lcmsg="正在整理数据库数据,请稍侯…"
WAIT lcmsg WINDOW NOWAIT AT SROW()/2, (SCOLS()-LEN(lcMsg))/2
*整理数据
SET ENGINEBEHAVIOR 80 &&或sys(3099,80)
SELECT cxchz.dm,mc,cxchz.qcsl,cxchz.qcje,cxchz.byrksl,;
cxchz.byrkje,cxchz.jqdj,cxchz.byxssl,cxchz.byxscb,cxchz.qmsl,cxchz.qmje ;
from cxchz into dbf 产销存表.dbf
SORT on dm to ls
USE ls EXCLUSIVE
DELETE FOR (qcsl=0.and.byrksl=0.and.byxssl=0.and.qmsl=0).or.empty(dm).or.subs(ALLTRIM(dm),1,4)='1108'.or.subs(ALLTRIM(dm),1,4)='1109'.or.subs(ALLTRIM(dm),1,2)='12'
pack
COPY TO 产销存表.dbf
USE 产销存表 EXCLUSIVE
*加入汇总项
sum all qcsl,qcje,byrksl,byrkje,byxssl,byxscb,qmsl,qmje to s1,j1,s3,j3,s4,j4,s5,j5 <