作者简介 1
目 录 1
鸣谢 2
1.1 准备工作 2
第一章FoxPro基本原理 2
第一部分FoxPro介绍 2
商标声明 4
1.2考察程序 4
1.2.2在FoxPro中选择任务 5
1.2.1简介Introductory屏幕 5
前言 5
1.2.3 FoxPro的通信选择 6
说明 6
1.3启动Organize 8
0.1 FoxPro是什么 8
引言 8
0.2 FoxPro 2.6 for Windows的新内容 9
1.3.1 启动一个应用程序 9
0.4本书内容 10
0.3怎样阅读本书 10
1.3.2使用通用应用程序特征 10
0.4.1 FoxPro简介 10
0.4.2高效使用FoxPro数据库 11
0.4.3 建立FoxPro应用程序 11
0.4.5初步了解Fo 命令及函数 12
0.4.6使用附录和 12
0.4.4 FoxPro程序设计:设计工具的高级用法 12
0.5 FoxPro 2.6 for V 硬件要求 13
0.6边学边干 14
1.4创建应用程序 16
1.4.1设计数据表结构 16
1.4.2修改生成的输入内容屏幕 18
1.4.3 使用FoxApp生成的应用程序输入数据 21
1.4.4 使用应用程序查寻数据 23
1.4.5查看数据的其他方法 26
1.4.6 学习更多关于FoxPro的知识 27
1.4.7退出FoxPro 27
1.5 小结 28
第二章FoxPro界面 29
2.1 熟悉FoxPro屏幕 29
2.2 了解FoxPro的菜单系统 30
2.2.1学习使用菜单系统 30
2.2.2选择菜单选项 31
2.3 用FoxPro菜单选项工作 33
2.3.1 File菜单 33
2.3.2 Edit菜单 34
2.3.3 Database菜单 35
2.3.4 Record菜单 36
2.3.6 Run菜单 37
2.3.5 Pogram菜单 37
2.3.7 Text菜单 38
2.3.8 Window菜单 39
2.3.9 Help菜单 40
2.3.10对上下文敏感的菜单 40
2.4 FoxPro窗口 40
2.4.1 了解窗口的各个部分 42
2.4.2控制窗口 43
2.4.3使用不同类型的窗口 45
2.4.4学习更多的窗口选项 47
2.4.5将系统窗口放在远景 48
2.5了解对话框逻辑 49
2.5.1识别对话框的组成部分 49
2.5.2使用对话框 51
2.6编辑击键和鼠标器移动 51
2.6.1 创建、打开和保存文件 52
2.6.2在文本中移动和编辑文本 52
2.6.3查找文本 56
2.6.4查找和键入特殊字符 57
2.6.5编辑选项和Edit Preferences对话框 57
2.7 敲入命令 59
2.7.1 使用Command窗口 59
2.7.2输入、重复和编辑命令 60
2.7.3解释和响应出错信息 60
2.8使用FoxPro的Help系统 61
2.9小结 63
第三章数据库和表 64
3.1数据库的概念和用途 64
3.2数据库中表的作用 64
3.3设计结构及指定数据类型 64
3.4数据类型 66
3.5使用View窗口创建表 68
3.5.2工作区 69
3.5.1在View窗口面板上工作 69
3.5.3创建Budget表 70
3.6通过使用View文件来保存位置 74
3.7表的单独和共享使用 75
3.8使用FoxPro Browse增加数据 76
3.8.1在Browse窗口中增加数据 77
3.8.2在View窗口中设置Browse显示选项 79
3.9压缩表 80
3.10.2快速打印结果 81
3.10屏幕和打印机的快速输出 81
3.10.1屏幕的快速组织 81
3.10.3快速向文件输出 85
3.11重新安排和抽取表的数据 85
3.11.1使用范围子句来抽取记录 85
3.11.2 通过使用FOR.WHILE和SET FILTER TO来抽取记录 86
3.11.3定义条件 87
3.12小结 88
4.1建立数据库 89
第四章数据库管理基本原理 89
4.1.1信息系统的输出 90
4.1.2把信息组织成表 91
4.1.3理解表是如何联系和相互作用的 93
4.1.4把信息组织成记录 94
4.2使用索引 95
4.2.1理解索引 95
4.2.2打开和选择索引 96
4.2.3设定索引次序 97
4.2.4理解索引表达式 98
4.3连接表 103
4.3.1 创建关系 103
4.3.2管理一对多的关系 106
4.3.3维护关系的完整性 108
4.4建立一个数据库管理系统 109
4.4.1理解项目的范围 109
4.4.2设计系统 110
4.4.3编写应用程序并使之文档化 111
4.4.4实现系统 112
4.4.5管理整个项目 112
4.4.6移入可以获得的数据 113
4.5 小结 116
第二部分 高效使用FoxPro数据库 118
第五章使用RQBE作为查询入门 118
5.1查询的主要组成部分 119
5.2 细节 121
5.2.1选择字段 122
5.2.2增加表 124
5.2.3对输出记录排序 127
5.2.4数据的组成 129
5.2.5过滤数据 132
5.2.6引导查询结果的输出 134
5.3小结 137
6.1.1 使用AND和OR来提出问题 138
6.1创建复杂的过滤条件 138
第六章使用高级查询 138
6.1.2 解释AND、OR和NOT 144
6.2用Having子句来过滤组 145
6.3连接两个以上的表 148
6.4 用RQBE创建一对多的关系 150
6.5使用交叉制表在输出中加入一维 152
6.6使用用户定义的函数 155
6.7从程序中执行查询 156
6.8 广泛地使用RQBE 156
6.8.1构造查询 157
6.8.2创建查询框架 158
6.8.3在过滤器中使用变量名 158
6.8.4使用查询来看“森林和树木” 158
6.8.5使用多查询来查看两个查询 158
6.8.6按顺序保持记录 158
6.8.11保持表达式一致性 159
6.8.10一次查询一步 159
6.8.7提高查询速度 159
6.8.9使用完RQBE之后的清除工作 159
6.8.8清除工作 159
6.9小结 160
第七章用SQL和Rushmore进行查询 161
7.1 考察SQLSELECT命令 161
7.1.1创建简单的查询 163
7.1.2引导查询输出 165
7.1.3使用WHERE来连接和过滤表 167
7.1.4使用GROUP BY来统计数据 170
7.1.5使用HAVING来排除组 171
7.1.6 用ORDER BY来对结果排序 171
7.1.7 用UNION来联合查询 172
7.1.8模拟外部连接 173
7.2结果的输出位置 174
7.3.1 创建SELECT能使用的索引 176
7.3增强SQLSELECT语句的性能 176
7.3.2 尽可能避免嵌套SELECT语句 177
7.3.3 只有必须时才包含用户定义函数 177
7.3.4监视HAVING和WHERE子句 177
7.3.5优化索引和顺序 177
7.4对出错情况的补救 177
7.5用Rushmore技术搜索 181
7.5.1使用Rusmore技术 181
7.5.2理解Rushmore 183
7.6用优化的表达式进行工作 183
7.6.1创建可完全优化表达式 184
7.6.2识别不可优化的表达式 185
7.6.3组合完全可优化和不可优化的表达式 186
7.7增强Rushmore的性能 187
7.7.1 在可能的情况下设置ORDER为0 187
7.7.3 在索引标记中避免使用NOT和FOR 188
7.7.2 当DELETED设置为ON时使用DELEED()标记 188
7.7.4选择性地使用Rushmore 189
7.7.5选择正确的索引格式 190
7.8在没有Rushmore的情况下工作 190
7.9小结 191
第八章BROWSE的使用 192
8.1 打开和关闭一个浏览窗口 192
8.2.1 改变大小和重新组织字段 193
8.2安排浏览窗口的显示外观 193
8.2.2使用Change观察整个记录 194
8.2.3拆分一个浏览窗口 194
8.2.4编辑备注字段 196
8.2.5在浏览窗口中使用不同字体 196
8.3保存浏览窗口外观配置 198
8.3.1 使用BROWSE LAST和BROWSE PREFERENCE 198
8.3.2修改资源文件中配置记录 199
8.4在浏览中创建记录的一个子集 200
8.5使用FIELDS进行控制 202
8.5.1使用:P(图片选项) 203
8.5.2使用:H(列标题选项) 205
8.5.3使用:B(界限选项) 206
8.5.4使用:R(只读选项) 206
8.5.5使用:<n>(列宽选项) 206
8.5.6使用:V(有效性选项) 207
8.5.7使用:W(进行选项) 209
8.5.8使用可计算字段 209
8.6使用BROWSE查看相关表 212
8.6.1 使用SET RELATION 212
8.6.2使用SET SKIP 214
8.6.3断开表之间的联系 216
8.7在浏览中使用隐式和显式的记录锁定 217
8.8另外的浏览选项 218
8.8.1 使用BROWSE LOCK 218
8.8.2 使用BROWSETITLE 219
8.8.3使用BROWSE WIDTH 220
8.8.4 使用BROWSE COLOR或BROWSE COLOR SCHEME 221
8.8.5使用BROWSE FORMAT 222
8.8.6 使用EDITFORMAT 223
8.9 小结 224
第九章生成报表和标签 225
9.1设计快速报表 226
9.2讨论报表 228
9.2.1进行简单的布局调整 230
9.2.2作一些影响整个表的改动 240
9.3深入了解报表和标签文件 242
9.4设计基本的标签 243
9.4.1放置标签表达式 244
9.4.2发送标签和报表 247
9.4.3使用专用报表和标签输出选项 248
9.5小结 250
10.1在报表或标签中使用相关表 251
10.1.1 为报表建立文件关系 251
第十章报表生成器的使用 251
10.1.2从相关的文件中加入报表表达式 252
10.1.3用表达式生成器建立报表表达式 252
10.1.4调整报表表达式的尺寸 254
10.1.5寻找报表中相关表的更多用途 255
10.2在报表中使用“一对多”关系 256
10.3加入复合报表表达式 256
10.3.1在报表生成器中格式化表达式 257
10.3.2报表生成器中表达式生成器的使用 259
10.3.3用户定义函数的使用 268
10.4隐去空行,并动态地调整报表和标签表达式大小 271
10.5向报表中加入组和总体 273
10.6理解报表变量 275
10.7报表变量用途的扩充 277
10.7.1打印组信息 277
10.7.3初始化报表变量 278
10.7.2得到组总和的百分比 278
10.7.4报表变量计算中IIF()的使用 280
10.8表达式的重叠 280
10.9小结 282
第三部分建立FoxPro应用程序 284
第十一章整理FoxPro应用程序 284
11.1界面设计和FoxPro 284
11.2.1达到用户之间的设计一致性 285
11.2界面设计发展的关键 285
11.2.2提供舒适的选择 286
11.2.3清楚地表达信息 286
11.2.4使用一致的界面 288
11.2.5追求意见统一、舒适、清晰和一致性 289
11.3引进FoxPro设计工具 290
11.4 小结 292
11.5介面设计书籍:简介 293
第十二章创建应用程序的基础 294
12.1.2考查屏幕生成器选项 295
12.1使用屏幕生成器设计屏幕 295
12.1.1开始建立屏幕 295
12.1.3使用字段表达式对话框 297
12.1.4 开始对GET作合法性检查 298
12.2在屏幕中增加按钮 303
12.3生成并运行屏幕程序 305
12.3.1生成前先存储环境 306
12.3.2生成屏幕 306
12.3.3编译生成的程序 307
12.3.4运行程序 310
12.4熟练使用屏幕生成器 311
12.4.1用直接和间接的Read修改表 312
12.4.2改变输入窗口的类型 313
12.4.3加深对数据合法性检查的理解 315
12.4.4增加编辑和导航按钮 318
12.4.5增加记录锁 322
12.4.6在Setup片断中定义变量 323
12.4.7 用SHOW和DEACTIVATE子句结束屏幕过程 324
12.4.8增加存储和取消按钮 327
12.4.9生成并运行修改后的输入屏幕 329
12.5 小结 331
第十三章进行复杂的屏幕设计 332
13.1理解生成的屏幕程序 332
13.1.1程序头段 332
13.1.2程序环境段 333
13.1.3文件打开和窗口定义段 333
13.1.4清除(Cleanup)段 334
13.1.5 READ中断和READ子句 335
13.2提高屏幕设计 338
13.2.1计划数据输入窗口 339
13.2.2草拟Layout Screen 341
13.2.3用复选框执行动作 342
13.2.4用表达式生成器拾取一个变量 342
13.2.5合法性检查和内部相关GET 343
13.2.6增加查询和编辑 348
13.2.7用按钮来控制表 354
13.2.8用图片作按钮提示符 360
13.2.9定义屏幕上对象的顺序 361
13.3组合对象到屏幕设置中 362
13.3.1设置屏幕 362
13.3.2在屏幕集中使用Browse 365
13.3.3增加更多READ级子句并集成BROWSE 368
13.3.4使用屏幕集 372
13.4提高读者对FoxPro Read命令的理解 373
13.5小结 377
第十四章组织和封装应用程序 379
14.1建立自己的菜单 379
14.1.1菜单设计选择 380
14.1.2菜单生成器选项 383
14.1.3一个改变菜单可用的技术 401
14.2用项目管理器将文件放在一起 402
14.2.1 Project选项和替代办法 406
14.2.2不同类型应用程序的项目结构 411
14.2.3用发行工具箱封装选项 414
14.2.4创建应用程序的演示版 417
14.3小结 418
第十五章控制应用程序中的事件与任务 419
15.1 理解FoxPro事件与任务 419
15.1.1 在程序中收集用户指令 420
15.1.2 在READ中循环 420
15.1.3在任务的不同分类之间的响应事件 421
15.1.4在程序中启动新任务 422
15.2使用READ来支持任务与事件 422
15.2.1 研究无GET的基本READ 423
15.2.2分析有GET的基本READ替代方式 427
15.2.3 为关系屏幕集扩充带GET基本READ模型 428
15.3在广泛的应用程序中使用复杂READ 435
15.3.2 对无GET窗口的作用的分类 437
15.3.1 在复杂READ中集成多重非READ窗口 437
15.3.3在复杂READ中控制当前窗口 441
15.4使用高级窗策略 445
15.5小结 446
第十六章FoxPro高级性能讨论 447
16.1资源文件 447
16.1.1理解资源文件 448
16.1.2管理资源文件 452
16.1.3 创建应用程序专用的资源文件 456
16.2 Filer 458
16.3 FoxPro颜色控制 462
16.3.1 了解颜色对界面的影响 462
16.3.2了解颜色赋值 463
16.3.3编辑、保存和恢复颜色集 465
16.3.4颜色对、组和集 466
16.3.6在应用程序构造工具中使用颜色 467
16.3.5 FoxPro的缺省颜色 467
16.3.7替换颜色的程序指令 468
16.4宏命令 472
16.4.1创建宏命令 472
16.4.2测试与编辑宏命令 474
16.4.3保存宏命令 475
16.4.4在应用程序中使用宏命令 475
16.4.5 FoxPro如何装入缺省宏命令集 476
16.4.6在程序中何时、何地使用宏命令 477
16.5桌面附件 478
16.6打印机驱动程序 483
16.7 了解外部库和应用程序接口 485
16.7.1使用外部库例程 485
16.7.2使用二进制例程 493
16.8小结 493
第十七章在不同FoxPro版本间移植应用程序 495
17.1.1对其他Xbase语言和Fox早期版本作移植 496
17.1将应用程序升级到FoxPro 2.6 496
17.1.2从FoxPro 2.0移植应用程序 497
17.2评价跨平台策略 499
17.2.1 在不同平台上安装应用程序 499
17.2.2移植屏幕格式 501
17.2.3转换报表和标签 506
17.2.4处理跨平台应用程序的特殊问题 507
17.3 小结 512
18.1 了解程序所做的工作 514
18.1.1 将需要重复输入的命令移到程序中 514
第四部分 FoxPro程序设计:设计工具的高级用法 514
第十八章程序结构 514
18.1.2考察程序的结构和风格 515
18.1.3使用伪代码来澄清思路 516
18.2在程序中组织任务 518
18.2.1保存、设置和恢复环境 519
18.2.2选择工作区与打开表 521
18.3程序开发技术 523
18.2.3用菜单提供选择 523
18.3.1理解与使用内存变量 524
18.3.2使用对条件求值的命令 525
18.3.3使用IF…ENDIF来选择路径 527
18.3.4用DOCASE进行多项选择 529
18.3.5使用对一组记录进行操作的命令 530
18.3.6 用DOWHILE、SCAN和FOR重复操作 531
18.3.7 用LOOP、EXIT和RETURN改变程序流程 532
18.3.8使用结构化程序设计命令:一个扩充的例子 533
18.4用子过程来管理任务 537
18.4.1通过参数(PARAMETERS)与子例程交互 537
18.4.2调用子例程 539
18.4.3传值和引用传递参数 539
18.5小结 540
第十九章高级Fox编程技术 541
19.1公用变量和专用变量 541
19.3使用子程序描述程序步骤 543
19.2区域变量 543
19.4使用抽像概念创建可读性好的程序 548
19.4.1程序中避免使用硬编码值 548
19.4.2 #DEFINE预处理伪指令 549
19.4.3 用LEN()和FSIZE()确定一个字段的长度 550
19.4.4 使用SELECT(),SELECTO和INO 551
19.4.5使用SYS(3)以获取唯一的临时文件名 551
19.5 宏替换,间接引用和EVALUATE() 552
19.6一些高级技术 554
19.6.1 使用INKEY()和ON KEY LABEL捕捉键击 555
19.6.2使用数据压缩技术 561
19.7使用FoxPro的文本合并特征创建模板 570
19.7.1 FoxPro文本合并命令 570
19.7.2使用文本合并创建程序 572
19.8编写程序时编写程序文档 574
19.9小结 574
20.1.1 在Microsoft Windows环境中使用FoxPro帮助系统 575
20.1 增加FoxPro风格的帮助系统 575
第二十章增强应用程序功能 575
20.1.2构造和组织帮助文件 576
20.1.3灵活运用帮助文件 580
20.1.4提供用户对帮助系统的控制 583
20.1.5 从Windows的.HLP文件获取帮助 586
20.2发现和处理程序错误 588
20.2.1使用调试窗口 590
20.2.2使用Trace窗口 591
20.2.3在应用程序中的错误陷阱 593
20.3使用FoxDoc存档应用程序 603
20.3.1 FoxDoc主对话框 603
20.3.2 FoxDoc配置选项 604
20.3.3使用SNIPFMT.APP格式化代码片段 606
20.3.4编写程序时使用BEAUTIFY格式化 607
20.5小结 608
21.1 关于OLE 609
第二十一章与其他Windows应用程序共享数据 609
21.1.1 在FoxPro中使用OLE对象 610
21.1.2在程序中提供用户访问OLE对象的能力 615
21.2封装OLE对象 620
21.2.1使用对象封装器 620
21.2.2使用封装对象 622
21.3 使用DDE获取和提供信息 623
21.3.1 以DDE客户方式开始FoxPro的DDE会话 623
21.3.2 在DDE服务员上转接信息 624
21.3.3继续探讨DDE服务器能力 626
21.4小结 626
第二十二章使用函数和命令处理数据 627
22.1操作单个数据元素 627
22.1.1操作字符串和备注型字段 627
22.1.2处理数值数据 635
22.1.3处理日期和时间数据 638
22.1.4 使用TYPE()和EMPTY()测试变量 641
22.1.5 测试列表和范围INLIST()和BETWEIN() 643
22.2操作记录 643
22.2.1移动或定位特定记录 643
22.2.2创建记录子集 647
22.2.3处理多个记录 647
22.3管理文件和记录要求 648
22.3.1对隐式和显式文件、记录加锁的比较 649
22.3.2 使用自动REPROCESS(再处理) 650
22.3.3 使用SET REFRESH显示改变后的数据 650
22.4小结 651
第五部分初步了解FoxPro命令及函数 654
第二十三章使用SQL命令、数组及低级文件函数 654
23.1 使用FoxPro的SQL命令 654
23.2使用数组 656
23.2.1建立数组 656
23.2.2数组元素的引用 661
23.2.3数组处理 663
23.2.4从数组拷贝到表和从表拷贝到数组 665
23.2.5给过程和UDF传送数组 667
23.2.6了解一些数组的局限 668
23.3使用低级文件函数 668
23.3.1 使用LLFF简化安装工作 669
23.3.2 使用LLFF分析行长度 673
23.3.3使用LLFF格式化输入的文本数据 675
23.4小结 679
第二十四章窗口环境的控制 680
24.1考察窗口命令 680
24.1.1建立窗口和定义窗口属性 680
24.2使用命令管理窗口 688
24.2.1 MODIFY WINDOW命令 689
24.2.2 MODIFY WINDOW SCREEN命令 690
24.2.3 ACTIVATE WINDOW命令 690
24.2.5 SHOW WINDOW命令 691
24.2.4 DEACTIVATE WINDOW命令 691
24.2.6 HIDE WINDOW命令 693
24.2.7 ZOOM WINDOW命令 694
24.2.8 SHOW GETSWINDOW命令 695
24.3获取对窗口对象的控制 695
24.3.1探索窗口函数 695
24.3.2以相对方式引用窗口,字体及屏幕位置 698
24.3.3处理特殊的系统窗口 705
24.4 小结 706
第二十五章Wizards及其他FoxPro 2.6特征 707
25.1理解基本Wizard概念 707
25.2起动和使用Wizard 708
25.2.1 使用TableWizard 709
25.3使用SQLQuery Wizard 712
25.4使用Updatable Query Wizard 717
25.5使用Screen Wizard 719
25.6使用Report Wizard 721
25.7使用Group/Total Report Wizard 723
25.8使用Multi-column Report Wizard 725
25.9使用Label Wizard 726
25.10使用邮件合并Wizard 728
25.11研究目录Manager和dBASE Migration 730
25.11.1使用目录Manager来管理文件 731
25.12学习对FoxPro 2.6语言的改进 733
25.13小结 734
25.12.1其他改进 734
第六部分附 录 736
附录A安装FoxPro 2.6 for Windows 736
A.1生成基本的FoxPro 736
A.1.1 为安装作准备 736
A.1.2开始安装 737
A.2编辑FoxPro for Windows的其余配置文件 740
A.3安装Distribution Kit 742
B.1有关增强FoxPro性能的建议 743
附录B优化FoxPro的性能 743
B.2对优化的挑战 744
B.3优化FoxPro的工具 745
附录C定制CONFIG.FPW文件 748
C.1特殊的CONFIG.FPW配置语句 748
C.2指定一个CONFIG.FPW文件 750
附录D使用命令行选项装入FoxPro 752
D.1 在启动时指定一个程序 752
附录E FoxPro中的键码、键标及特殊键用法 754
附录F所安装的磁盘文件及文件扩展名 764
F.1 FoxPro的目录结构 764
F.2 FoxPro所需的最少文件 765
F.3 FoxPro的子目录 766
F.4缺省的文件扩展名 767
附录G寻找有效的帮助 770
附录H数据库结构和程序的例子 772