关于VFP代码运行速度问题

lygcw9602 2013-07-29 04:07:55
有段查询代码,100条记录运行时间为0.047秒,而1000条记录运行时间为4.238秒,每条记录有7个字段需要统计,运行时间为什么相差这么大,问题出在第二个SCAN ENDSCAN语句中,可能与OCCURS()有关。
而生成10000条记录的临时表的运行时间才0.125秒。
请大家帮忙看看
CREATE CURSOR T (XM C(5),SX N(2),YW N(2),YY N(2),WL N(2),HX N(2),DN N(2),ZZ N(2))
=RAND(-1)
FOR I=1 TO 1000
INSERT INTO T (XM) VALUES (PADL(I,5,[0]))
FOR J=2 TO FCOUNT()
N=RAND()*60
REPLACE (FIELD(J)) WITH N+J
ENDFOR
ENDFOR
T1=SECONDS()
SELECT *,PADL(SX,2,[0])+[,]+PADL(YW,2,[0])+[,]+PADL(YY,2,[0])+[,]+PADL(WL,2,[0])+[,]+PADL(HX,2,[0])+[,]+PADL(DN,2,[0])+[,]+;
PADL(ZZ,2,[0]) NR,0000 TJ,0000 A1,0000 A2,0000 A3,0000 A4,0000 A5,0000 A6,0000 A7 FROM T INTO CURSOR T1 READWRITE
* 说明:A1-A7对应于每门课程成绩出现的次数

LOCAL CSTR
CSTR=[]
SCAN
CSTR=CSTR+ALLTRIM(NR)+IIF(RECNO()<RECCOUNT([T1]),CHR(13)+CHR(10),[])
ENDSCAN
SCAN
CSTR1=STRTRAN(CSTR,NR,[]) && 不含当前记录
SCATTER FIELDS SX,YW,YY,WL,HX,DN,ZZ TO AZD
LOCAL S[7]
FOR I=1 TO 7
S[I]=OCCURS(PADL(AZD(I),2,[0]),CSTR1)
REPLACE TJ WITH TJ+S[I],(FIELD(I+10)) WITH S(I)
ENDFOR
ENDSCAN
MESSAGEBOX([运行时间:]+TRANSFORM(SECONDS()-T1)+[ 秒])
SELECT T1
BROWSE

...全文
249 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2013-07-31
  • 打赏
  • 举报
回复
*--1秒以内:
Create Cursor ta (fa N(2))
Create Cursor T (XM C(5),SX N(2),YW N(2),YY N(2),WL N(2),HX N(2),DN N(2),ZZ N(2))
=Rand(-1)
For I=1 To 1000
	Insert Into T (XM) Values (Padl(I,5,[0]))
	For J=2 To Fcount()
		N=Rand()*60
		Replace (Field(J)) With N+J
		Insert Into ta (fa) Values (N+J)
	Endfor
Endfor
T1=Seconds()
Select *,Padl(SX,2,[0])+[,]+Padl(YW,2,[0])+[,]+Padl(YY,2,[0])+[,]+Padl(WL,2,[0])+[,]+Padl(HX,2,[0])+[,]+Padl(DN,2,[0])+[,]+;
	PADL(ZZ,2,[0]) NR,0000 TJ,0000 A1,0000 A2,0000 A3,0000 A4,0000 A5,0000 A6,0000 A7 From T Into Cursor T1 Readwrite
Select fa,Count(*) As fa_cnt Into Cursor tb From ta Group By fa
Update T1 Set A1=tb.fa_cnt-Occurs(Padl(T1.SX,2,'0'),T1.NR) From tb Where T1.SX=tb.fa
Update T1 Set A2=tb.fa_cnt-Occurs(Padl(T1.YW,2,'0'),T1.NR) From tb Where T1.YW=tb.fa
Update T1 Set A3=tb.fa_cnt-Occurs(Padl(T1.YY,2,'0'),T1.NR) From tb Where T1.YY=tb.fa
Update T1 Set A4=tb.fa_cnt-Occurs(Padl(T1.WL,2,'0'),T1.NR) From tb Where T1.WL=tb.fa
Update T1 Set A5=tb.fa_cnt-Occurs(Padl(T1.HX,2,'0'),T1.NR) From tb Where T1.HX=tb.fa
Update T1 Set A6=tb.fa_cnt-Occurs(Padl(T1.DN,2,'0'),T1.NR) From tb Where T1.DN=tb.fa
Update T1 Set A7=tb.fa_cnt-Occurs(Padl(T1.ZZ,2,'0'),T1.NR) From tb Where T1.ZZ=tb.fa
Update T1 Set TJ=A1+A2+A3+A4+A5+A6+A7
Messagebox([运行时间:]+Transform(Seconds()-T1)+[ 秒])
Select T1
Browse
lygcw9602 2013-07-31
  • 打赏
  • 举报
回复
多谢豆老师,速度很理想
lygcw9602 2013-07-30
  • 打赏
  • 举报
回复
谢谢猫老师 这与我事前分析的差不多 看样子只能变换数据的处理方式了,用SQL命令处理数据,可能会减少运行时间
都市夜猫 2013-07-29
  • 打赏
  • 举报
回复
下面是使用 vfp9 自带的 Coverage Profiler 工具统计的结果

从中可以看到
S[I]=OCCURS(PADL(AZD(I),2,[0]),CSTR1)
被运行了 7000 次,一共用了 7000*0.000814=5.7 秒,这是在我的笔记本上的运行结果,总时间是 6.44 秒,这条语句占了近 90% 时间
lygcw9602 2013-07-29
  • 打赏
  • 举报
回复
谢谢豆老师 代码改成上面那样,时间只节省了0.5秒,为何运行时间相差那么大
十豆三 2013-07-29
  • 打赏
  • 举报
回复
把第二个 Scan 改为 REPLACE ALL A1 WITH Occurs(Padl(SX,2,[0]),CSTR)-Occurs(Padl(SX,2,[0]),NR) REPLACE ALL A2 WITH Occurs(Padl(YW,2,[0]),CSTR)-Occurs(Padl(YW,2,[0]),NR) REPLACE ALL A3 WITH Occurs(Padl(YY,2,[0]),CSTR)-Occurs(Padl(YY,2,[0]),NR) REPLACE ALL A4 WITH Occurs(Padl(WL,2,[0]),CSTR)-Occurs(Padl(WL,2,[0]),NR) REPLACE ALL A5 WITH Occurs(Padl(HX,2,[0]),CSTR)-Occurs(Padl(HX,2,[0]),NR) REPLACE ALL A6 WITH Occurs(Padl(DN,2,[0]),CSTR)-Occurs(Padl(DN,2,[0]),NR) REPLACE ALL A7 WITH Occurs(Padl(ZZ,2,[0]),CSTR)-Occurs(Padl(ZZ,2,[0]),NR) 另外第2到第8个字段直接用字符型,就省着 PDAL了。
vf6.0,要考二级没系统的下哈 Microsoft Visual FoxPro 6.0 for Windows 的常见问题 这些是有关 Microsoft Visual FoxPro 最常见的问题。在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些附注,请从“文件”菜单中选择“打印”命令。此文档分为以下四部分: --------------------------------------------------------------------- 部分 1. 技术支持与市场 部分 2. Visual FoxPro 6.0 新增功能 部分 3. 从其他版本的 FoxPro 和 Visual FoxPro 中移植 部分 4. Visual FoxPro 常见问题 --------------------------------------------------------------------- 部分 1. 技术支持与市场 问题 1-1: 从何处可以获得产品的更新版本? 答案: 在 Visual FoxPro 的 Web 站点上即可获得产品的更新信息,其中包括有关 Service Pack 和更新的示例、向导及其他代码的信息,该站点的网址为: www.microsoft.com/vfoxpro 请定期查看该网站,以便下载产品的最新版本。 问题 1-2: 从何处可以得到有关 Visual FoxPro 的详细资料? 答案: 通过 Microsoft Visual FoxPro Web 站点是随时获得各种最新产品发布信息的最佳途径。在此站点上不仅有新的产品公告,而且还提供了产品的更新信息、技术文章、白皮书、专业开发人员设计的优秀示例、会议公告、以及与其他许多 FoxPro web 站点的各种链接。 问题 1-3: 如何获得技术支持,以及如何报告软件错误? 答案: Microsoft Visual FoxPro Web 站点已经链接到了多种联机支持选项,其中包括覆盖面广阔的有关所有产品 Microsoft Knowledge Base(Microsoft 知识库)。您还可以阅读一份有关常见问题的清单。除联机支持之外,还可以直接通过电话获得技术支持。“帮助”菜单中的选项可列出技术支持的电话号码。这些电话号码也可用于报告产品中的错误。 问题 1-4. 什么是 Knowledge Base?如何使用它? 答案: Knowledge Base 是内容广泛的论文集,覆盖了如何使用产品的各种特性、已知的软件错误及其解决方案或回避的方法、以及其他有助于使用各种 Microsoft 产品的有用信息。通过以下站点可访问整个 Knowledge Base: support.microsoft.com 问题 1-5: 是否会有 Visual FoxPro 6.0a? 答案: Microsoft 公司一向承诺为用户提供高质量的产品。如果确实需要,我们将提供 Visual FoxPro 6.0 的错误修订版。但是,修订版不会使用 6.0a 版的形式。Visual FoxPro 6.0 中任何错误的修正都将包含在 Visual Studio Service Pack 中。同时还会在 Visual FoxPro 的 www.microsoft.com/vfoxpro 或 Visual Studio 的www.microsoft.com/vstudio 的 Web 站点上发布修订公告。 问题 1-6: Microsoft 公司为应用程序的开发提供了一些优秀的解决方案。怎样才能知道应该向客户推荐和使用哪种产品? 答案: 在选择适用某项任务的产品时,需要考虑多方面的因素。Microsoft Visual FoxPro web 站点上有一份优秀的策略背景论文,它比较了 Visual FoxPro、Visual Basic、SQL Server 和 Access 等 Microsoft 产品之间的不同。 问题 1-7: 哪里可以找到 Visual FoxPro 的使用示例? 答案: Visual FoxPro 6.0 产品中带有丰富的示例,其中有一些是针对 6.0 版特有功能的新示例。与 Visual FoxPro 以前的版本不同,这些示例将与所有 Visual Studio 示例安装在一起。您必须运行 MSDN Library 的“自定义”安装来安装这些示例。在 Visual FoxPro 中可使用新的 HOME(2) 函数方便地找到已安装示例的位置。 除了产品中所自带的示例外,Microsoft Visual FoxPro web 站点还将经常提供新的示例。
已建立完整的数据库 下载即可使用 适合做考试作业 毕业论文 一.概述 项目背景工资管理系统对于决策者和管理者来说都至关重要,所以工资管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件工资档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对工资信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工资管理的效率,也是科学化、正规化管理的重要条件。 设计目的 对于企、事业单位的工资发放来说,不需要太大型的数据库系统。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。我的目标就是在于利用VFP编程软件开发一个功能实用,用户操作方便,简单明了的工资管理程序。 系统特点 企业工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。企业工资管理系统主要有以下几大功能: 对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。 对职工的工资进行计算、修改。可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。 查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以多项查询,比如某部门工资数在某一范围的职工的工资情况等。 报表打印功能。每月发放工资时,要求能够打印本月的工资表、随工资发给每个职工的工资条以及工资统计表。 开发环境 本系统为工资管理系统。采用的开发工具是 MicroSoft Visual Foxpro 6.0。系统能够提供对工资信息输入、查询、编辑以及工资发放各明细项目的数据编辑,自动计算出工资发放各项合计数据;可自主设定条件从而达到对工资数据的多角度查询功能;实现了财务部门对本单位工资发放系统的集中管理,保证了系统的安全性。支持运行的环境:Microsoft Window98/2000/XP 二.需求分析 本系统概述了工资管理的需求、整体结构、基本功能和数据库结构。内容包括:对普通工资管理业务中存在的一些问题的分析,对工资的数据进行查询、统计、报表打印等基本功能的分析设计和实现。重点介绍了工资管理信息系统中数据查询统计模块的分析和设计以及如何利用面向对象的程序设计语言Visual Foxpro 6.0实现数据的查询、统计、显示、报表打印等基本功能。本系统的开发基本解决了以往工资管理中存在的需要人工管理,进行人工统计,对工资的统计和查询都很单一、不能综合处理业务、工作效率低等问题。 三.系统结构设计 系统功能模块设计 系统功能设计是在系统开发的总体任务的基础工业上完成的 系统数据初始化; 员工基本信息数据的输入; 员工基本信息的修改和删除; 企业工资的基本设定; 员工工资的浏览; 员工个人工资表的查询; 员工工资的计算; 数据库设计 员工基本状况。包括的数据库项有员工号、姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民簇、婚姻状况、健康状况、参加工作时间、员工状态…. 工资级别和工资金额。包括的数据库项有工资等级、工资额。 企业部门及工作岗位信息。包括的数据库项有部门名称、工作岗位、工资等。 工龄的工资金额。包括的数据库项有工龄及对应工资额。 工资信息。包含的数据项有员工号、员工姓名、基础工资、岗位工资、工龄工资、实得工资。 四.统详细设计 VFP是编程前期比较实用的软件,它功能强大,是面向对象的编程开发工具软件。基于VFP的工资管理软件,能实现工资管理的很多部分,由于能力以及编程软件限制,很多功能没能深入开发,下面就介绍一下这个软件的开发过程 在数据库应用系统的开发过程中,数据库的结构设计是其中重要的一个环节。数据库设计的好好坏将直接对应用系统的效率以及实现的效果产生影响。好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具人较快的响应速度,能简化基于此数据库的应用程序的实现等。 数据库需求分析 数据库需求分析是数据库结构设计应该尽量设计的第一个阶段,是非常重要的一个阶段。这个阶段主是要确定基本数据、数据结构处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础,在仔细调查企业人事工资管理系统的基础上,得到本系统所处理的数据流程,如数据流程图: 通过对企业人事工资管理的内容和数据流程分析,针对本程序,设计的数据项和数据结构如下: 浏览职工信息 工资管理软件就要知道职工的基本信息,年龄,性别,工龄,在什么岗位工作,是属于什么工种,这些都为工资的结算提供了很好的帮助。 我们需要再建立一个表单。 我们可以很清楚的看到职工的基本信息,职工号,岗位,姓名,性别,工龄,工资等级,这些基本信息对于工资的定位和发放有很好的帮助 那怎么实现职工信息的浏览呢,我们看到右边有5个按钮,这些按钮就是控制浏览职工信息的指挥棒,我们先看以下“首行”里面的代码 go top This.enabled=.f. ThisForm.Command2.enabled=.f. ThisForm.Command3.enabled=.t. ThisForm.Command4.enabled=.t. thisform.refresh 在这些代码中 go top 是控制信息到第一个记录,enabled是控制按钮是否可用,refresh是刷新表单,让跳转的记录信息能更新到当前表单中 按钮“上一条”的代码如下 skip -1 if bof() messagebox("已是首记录!",48,"信息窗口") ThisForm.Command1.enabled=.f This.enabled=.f. else ThisForm.Command3.enabled=.t. ThisForm.Command4.enabled=.t. endif thisform.refresh 代码skip -1的意思是向上翻转记录,bof()意思是是否到记录的首个 下一条的代码: skip thisform.refresh thisform.command1.enabled=.t. thisform.command2.enabled=.t. if eof() messagebox("已是尾记录!",48,"信息窗口") ThisForm.Command1.enabled=.t. Thisform.command2.enabled=.t. This.enabled=.f. ThisForm.Command4.enabled=.f. Endif 功能和上面的按钮类似,eof()判断是否到达记录的末尾 最后一个是末行的按钮,代码: go bottom This.enabled=.f. ThisForm.Command2.enabled=.T. ThisForm.Command3.enabled=.f. ThisForm.Command4.enabled=.f. thisform.refresh 到此,员工信息的浏览已经完成,我们可以对员工的信息一条一条的浏览,这样看来可能复杂些,下面我们用简单的方法,来查看所有员工的信息。同样是建立一个表单,不同的是,这次我们在表单中加入了一个表格,让所有员工的信息都在表格中显示出来。 五.系统评价 系统评价就是客观,公正的从各个方面评价系统的各项功能。本部分将具体从三方面阐述:优点,缺点以及将来可能提出的要求。 六.总结 通过这次毕业设计,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。为日后成为合格的应用型人才打下良好的基础。这次在指导老师的帮助下,在同学的帮助下,基本上完成了设计任务,在软件的设计方面也有了一定的提高,熟练掌握了VISUAL FOXPRO命令和编程技巧,为今后走上工作岗位打下了专业基础。 在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。同时,也要感谢我的老师和同学们及实习企业在本系统的设计过程中给予我的支持和帮助。
第1章 程序设计 1 1. 什么是主程序 2 2. 如何编写主程序 3 3. 如何加入READ EVENTS 6 4. 如何隐藏Visual FoxPro的主窗口 7 5. 如何处理“不能退出FoxPro”的情况 8 6. 如何设计错误捕捉程序 9 7. 如何实现程序的背景音乐 14 8. 如何把金额由数字变成大写 17 9. 如何制作拖动功能 19 10. 如何进行高级密码处理 23 11. 如何把文字转换成首位拼音码 27 12. 如何防止程序的多次开启 28 13. 如何以编程方式添加数据环境到表单 29 14. 如何使用HTML Help Workshop编写HTML帮助 31 15. 如何调用帮助文件 39 16. 如何为_Screen表单指定事件过程 42 第2章 界面设计 45 17. 如何从打印预览工具栏中移除按钮 46 18. 如何隐藏和显示系统工具栏 48 19. 如何制作自定义工具栏 50 20. 如何进行动态的菜单设计 55 21. 如何进行权限菜单的设计 60 22. 如何在顶层表单里使用自己的工具栏和菜单 70 23. 如何设计快捷菜单 74 24. 如何实现移动字幕 78 25. 如何制作异形表单 81 26. 如何制作类似Media Player的图形表单 88 27. 如何动态显示表单 94 28. 如何创建能保存大小和位置的表单 95 29. 如何实现在Grid中回车自动换行 99 30. 如何在Grid拆分窗口中取消拆分条 101 31. 如何利用Grid的动态属性进行动态设计 104 32. 如何生成一个具有滚动条的窗口来移动记录 108 33. 如何将程序图标放入系统托盘 111 第3章 数据处理 115 34. 如何使用GetFile()函数与宏替换打开表(.DBF) 116 35. 如何实现记录按笔画排序 117 36. 如何实现数据实时筛选 119 37. 如何利用Excel来创建统计图形 121 38. 如何利用Graph对象来创建统计图形 125 39. 如何实现数据的进制转换 133 40. 如何查找两个表中相同或不同的记录 140 41. 如何确定整数的奇偶数 142 42. 如何用低级函数转换TEXT文件到DBF 143 43. 如何使用数据库事件进行表加密 145 44. 如何在备注字段中搜索字符串 149 45. 怎样导入Microsoft Access 的表结构和数据 155 46. 如何将通用字段中的内容恢复成当前存储格式的物理文件 159 47. 如何用ADO Stream 对象来获取二进制数据 163 48. 如何正确使用SELECT-SQL查询语句 164 第4章 ActiveX控件 180 49. 如何注册ActiveX控件 181 50. 如何调用进度条控件 183 51. 如何使用状态栏控件 184 52. 如何使用滑尺控件 188 53. 如何用MSComm控件 189 54. 如何使用日历控件 191 55. 如何使用日期挑选器控件 193 56. 如何使用TreeView控件 199 57. 如何使用工具条控件 206 58. 如何使用图表控件 209 59. 如何使用格式文本框控件 216 60. 如何使用SysInfo控件 226 61. 如何使用动画控件 229 62. 如何使用多媒体控件 231 63. 如何使用Kodak图像扫描控件 234 64. 如何使用Animation GIF控件 237 第5章 文件处理 240 65. 如何删除文件到回收站 241 66. 如何获得文件属性和改变文件属性 242 67. 如何以相应的应用程序来打开已建立关联的文件 250 68. 如何将文件按扩展名与应用程序建立关联 253 69. 如何进行DOS/Windows文本文件与UNIX/Linux文本文件的相互转换 257 70. 如何遍历磁盘中的所有目录及文件 258 71. 如何使用低级函数读写文件 263 72. 如何为Visual FoxPro应用程序增加文件压缩功能 271 73. 如何利用SHFileOperation()函数进行文件复制与删除 275 74. 如何以编程方式读取和设置磁盘卷标 286 75. 如何在Windows NT中监视文件系统的改变 287 第6章 类应用与设计 291 76. 如何在子类中调用父类方法的程序代码 292 77. 如何屏蔽子类对其父类的自动继承 293 78. 如何让表单设计器使用自定义表单类 296 79. 如何设计能正确显示和存储下拉列表中不存在选项的组合框类 297 80. 如何利用Systray类将图标添加到系统托盘中 304 81. 如何使用_thermometer类来实现执行进度条 315 82. 如何使用_StopWatch类实现计时程序设计 317 83. 如何利用_ShortcutMenu类进行动态快捷菜单设计 321 84. 如何使用WinZip Manager类进行文件压缩和解压缩 325 第7章 网络应用 332 85. 如何获得本机IP地址 333 86. 如何获得局域网内网卡的物理地址 333 87. 如何使用Internet Transfer控件制作FTP工具 336 88. 如何使用WebBrowser控件编写Web浏览器 338 89. 如何映射和断开网络驱动器 343 90. 如何实现超级链接效果 349 91. 如何使用Winsock控件进行常用网络应用开发 352 92. 如何使用MAPI控件发送带附件的邮件 359 93. 如何判断计算机是否已经连接到网络 362 94. 如何通过编程运行拨号网络连接 364 95. 如何实现Ping操作 369 第8章 客户/服务器编程 373 96. 如何进行基于文件服务器的多用户编程 374 97. 如何建立ODBC数据源 383 98. 如何建立到ODBC数据源的连接 387 99. 如何使用视图设计器进行远程视图设计 389 100. 如何用视图指令和函数进行远程视图设计 399 101. 如何使用SPT扩展远程视图 406 102. 如何实现游离视图 416 103. 如何使用SQL-DMO枚举可用的SQL Server数据库服务器 419 104. 如何启动和停止SQL Server服务 421 105. 如何获得SQL Server中的可用数据库列表 425 106. 如何取得服务器的硬盘目录结构 427 107. 如何在SQL Server上创建数据库 431 108. 如何设置SQL Server数据库选项 433 109. 如何在SQL Server上增加、删除用户和设置用户权限 436 110. 如何在SQL Server中进行数据库备份和恢复 444 111. 如何使用SQL-DMO为SQL Server设置任务 447 112. 如何与NT服务器进行时间同步 449 113. 如何在SQL Server数据表中创建惟一值 450 第9章 Windows相关设计 452 114. 如何打开Windows控制面板功能选项 453 115. 如何在Visual FoxPro中调用Windows命令 455 116. 如何修改Windows的系统日期与时间 457 117. 如何实现重启或关闭本地计算机 458 118. 如何实现定时重启或关闭远程计算机 461 119. 如何锁定Windows NT/XP计算机 463 120. 如何获得Windows的安装目录 464 121. 如何获得Windows的系统目录 465 122. 如何获得应用程序的当前目录 467 123. 如何从Visual FoxPro中关闭指定的应用程序 468 124. 如何检测软驱中是否放入了磁盘 469 125. 如何检测软盘是否进行了写保护 470 126. 如何将一个长文件名转换为短文件名 471 127. 如何获得操作系统的语言设置 472 128. 如何管理开始菜单中文档中的内容 472 129. 如何用Windows Script Host创建桌面快捷方式 473 130. 如何用Windows Script Host进行磁盘碎片整理 475 131. 如何用Windows Script Host打开管理工具中的选项 476 132. 如何获得系统中的逻辑驱动器 476 133. 如何获得系统中的未使用的驱动器盘符 478 134. 如何调用磁盘格式化对话框 480 135. 如何获得磁盘的总大小与可用空间 481 136. 如何打开Windows关于对话框 483 137. 如何进行Windows外观颜色设置 484 138. 如何获得计算机名和用户名 487 139. 如何修改计算机名称 488 140. 如何获得Windows的开启时间 489 141. 如何获得当前系统中安装的打印机 491 142. 如何将打印机设置为Windows的默认打印机 492 143. 如何获取打印机设备的句柄 493 144. 如何获得计算机键盘的类型 496 145. 如何交换鼠标的左右键功能 497 146. 如何获得和设置鼠标的双击速度 498 147. 如何屏蔽Ctrl+Alt+Del组合键 500 148. 如何打开或关闭光盘驱动器 501 149. 如何获得计算机硬盘卷序列号 502 150. 如何隐藏Windows的任务栏 504 151. 如何在系统启动时自动运行指定程序 506 第10章 报表设计 507 152. 如何使用报表设计器的工具栏与菜单 508 153. 如何理解报表设计器各个带区的作用 513 154. 如何进行数据分组报表设计 514 155. 如何在报表运行时访问报表的数据环境 518 156. 如何检测报表的当前输出模式 518 157. 如何进行帐页格式的报表设计 519 158. 如何进行报表的打印设置 520 159. 如何在NT/XP系统中添加自定义纸张 521 160. 如何获得报表的总页数 530 161. 如何进行面向对象的程序化报表设计 530 162. 如何使用Excel来打印报表 536 第11章 程序安装 540 163. 如何使用Visual FoxPro 6.0的安装向导 541 164. 如何自动安装Visual FoxPro 6.0安装向导制作的安装程序 544 165. 如何卸载使用安装向导安装的应用程序 545 166. 如何为编译后的应用程序文件指定图标 545 167. 如何使用InstallShield制作安装程序 546 附录 558 附录1. 函数分类表 559 附录2. 命令分类表 570 附录3. Visual FoxPro系统变量 580 附录4. 系统菜单和菜单选项常数 581 附录5. INKEY()和LASTKEY()函数的返回值 584 附录6. Visual FoxPro变量命名约定 586 附录7. Visual FoxPro对象命名约定 586 附录8. Visual FoxPro表字段命名约定 587 附录9. Visual FoxPro系统容量 587

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧