11
2007
02

一些很有用的VFP代码

  这两天我一直在完善以前做的一个VFP程序,期间碰到不少问题。经过百度搜索和在CSDN发帖询问,我解决了绝大部分问题,同时学习到不少有用的知识。现整理一些比较典型的VFP语句,供大家参考。 ———————————————————————— 退出按钮代码 if messagebox('你真的要退出本系统吗?',4+32+256,'请确认')=7 &&用户回答"否" nodefault &&表示不进行默认的行为模式 else clear events &&是否要支行clear,视需要而定 quit endif ———————————————————————— 导入EXCEL数据,另存为DBF表 IMPORT FROM (GETFILE('XLS', '','', 0, '选择一个EXCEL表,然后另存为DBF表')) TYPE XL5 &&或XL8 COPY TO PUTFILE('', '', 'DBF') lcTmpTable=DBF() CLOSE DATABASES Delete FILE (lcTmpTable) ———————————————————————— VFP中导入EXCEL,使原来EXCEL第一行变为DBF字段名 import from E:\test\原表.xls type xls copy to test.dbf for recno()>1 go top lnFieldNum=fcount() lcString='Select ' for lnCount=1 to lnFieldNum lcString=lcString+field(lnCount)+' As '+alltrim(evaluate(field(lnCount)))+',' endfor lcString=left(lcString,len(lcString)-1)+' into table ttt2 from test' &lcString ———————————————————————— 超链接代码(文本或按钮click) ThisForm.HyperLink1.NavigateTo("www.ntfda.gov.cn") ———————————————————————— 改变路径 set path to D:\完成 ———————————————————————— 获取当前程序所在路径  *方法一: ********************** PUBLIC LCNowpath LCNowpath=SYS(5)+SYS(2003)+"\" set default to "&LCNowpath" &&设置默认工作目录 ********************** *方法二: ********************** PUBLIC LCSys16,LCNowpath LCSys16=SYS(16) &&获取当前程序所在的全路径,包括当前运行程序名。 LCNowpath=LEFT(LCsys16,RAT("\",LCSys16,1)) &&获取当前运行程序所在工作目录。 set default to "&LCNowpath" &&设置默认工作目录 ********************** *方法三:(指定程序名) ********************** PUBLIC LCNowpath prgname="你的程序名.exe" prglen=len(prgname) allname=allt(sys(16)) alllen=len(allname) LCNowpath=substr(allname,1,alllen-prglen) set default to "&LCNowpath" &&设置默认工作目录 ********************** PUBLIC LCSys16,LCNowpath LCSys16=SYS(16) &&获取当前程序所在的全路径,包括当前运行程序名。 LCNowpath=LEFT(LCsys16,RAT("\",LCSys16,1)) &&获取当前运行程序所在工作目录。 messagebox(LCNowpath) &&程序文件所在的当前路径 ———————————————————————— 记住打开文件路径,并将处理结果输出到该路径中 xfile=getfile('xls', '','', 0, '选择需要处理的文件') import from &xfile type xls if empty(xfile) retu endif set path to justpath(xfile) dir copy to (getfile('xls', '','', 0, '将处理结果存为EXCEL文件')) type xls ———————————————————————— 筛选A表中相同记录到B表 select distinct * from 表A into table D:\完成\表B ———————————————————————— 如果A表品名包含B表品名而且A表产地包含B表产地,将符合记录筛选到新表 select * from a,b where AT(alltrim(b.品名),a.品名)>0 and AT(alltrim(b.产地),a.产地)>0 select b.品名,a.产地,b.生产单位,b.规格,b.批号 from a,b where AT(alltrim(b.品名),a.品名)>0 and AT(alltrim(b.产地),a.产地)>0 ———————————————————————— 删除产地字段中含有云南的记录 dele for AT([云南],产地)>0 ———————————————————————— 合并结构相同的表 方法1 USE 1.DBF COPY STRU TO 总表 USE 总表 FOR I=1 TO 1000 APPEND FROM (ALLTRIM(STR(I))+'.DBF') ENDFOR 方法2 gnDbcnumber = ADIR(gadbf,'*.dbf') && 创建一个数组 FOR nCount = 1 TO gnDbcnumber && 遍历所有文件中扩展名为.dbf的文件 IF nCount=1 USE (gadbf(nCount,1)) COPY TO 新表名 USE 新表名 ELSE APPEND FROM (gadbf(nCount,1)) ENDIF ENDFOR ———————————————————————— VFP6.0绿色版下载地址:http://www.greendown.cn/soft/2422.html
« 上一篇下一篇 »

相关文章:

多个DBF文件合并之蹊跷事件  (2009-5-7 23:48:23)

如何避免表单重复打开?  (2007-8-11 23:26:50)

药品数据分析系统截图  (2007-4-16 13:18:56)

对比程序的最后测试  (2006-5-2 10:7:11)

终于结束了,我的数据库!  (2006-4-27 23:39:33)

求助是一条捷径  (2006-4-12 12:44:0)

重拾遗忘的编程  (2006-4-2 22:22:30)

郁闷的人到深夜  (2005-11-11 20:48:5)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。