目 录 1
译者序 1
前言 1
第一部分概 述 1
第1章Visual FoxPro界面综述 1
1.1启动和运行FoxPro 1
1.1.1标题栏 4
1.1.2主菜单栏 6
1.1.3 工具栏 17
1.1.4状态栏 19
1.2控制窗口 19
1.2.1缩放窗口 19
1.2.2改变窗口的大小 20
1.2.3移动窗口 20
1.2.4了解常用的窗口对象 21
1.3介绍项目管理器 23
1.3.1添加和删除文件 25
1.3.3修改文件 26
1.3.2查看文件 26
1.4设置配置选项 27
1.4.1 Controls(控件)选项 27
1.4.2 Data(数据)选项 28
1.4.3 Debug(调试)选项 31
1.4.4 Field Mapping(字段映射)选项 31
1.4.5 File Locations(文件位置)选项 32
1.4.6 Forms(窗体)选项 34
1.4.7 General(一般)选项 35
1.4.8 Projects(项目)选项 38
1.4.9 Regional(地区性)选项 39
1.4.10 Remote Data(远程数据)选项 41
1.4.1 1 Syntax Coloring(句法颜色)选项 42
1.4.12 View(视图)选项 43
1.5获取Visual FoxPro帮助 44
1.5.1通过内容搜索帮助信息 45
1.5.2 远用索引搜索帮助信息 48
第2章程序设计概念简介 51
2.1什么是程序设计 51
2.1.2学习编程 52
2.1.1为什么要编写代码 52
2.2代码元素 53
2.2.1命令与函数 54
2.2.2字面值与常量 56
2.2.3 内存变量 57
2.2.4数据字段 60
2.2.5注释 60
2.2.6运算符 60
2.2.8条件执行 61
2.2.7比较运算符 61
2.2.9循坏 62
2.3代码的组装 63
2.3.1程序文件 63
2.3.2过程与函数 64
2.3.3对象方法 66
2.4 SQL与过程代码 67
2.5 VFP 6的新特性 67
3.1.1确定需要的数据类别 69
3.1为应用程序创建表格 69
第3章定义数据库、表格和索引 69
第二部分进行数据操作 69
3.1.2给每项数据命名 71
3.1.3赋值数据类型 71
3.1.4使用Table Designer 76
3.1.5使用空值 80
3.2修改表格结构 81
3.2.1添加字段 81
3.2.2删除字段 81
3.2.3更改字段名 81
3.2.4 对字段进行重定义 82
3.2.5定义表格中的顺序 83
3.2.6独立索引与结构型和非结构型索引 83
3.2.7定义普通索引和唯一索引 85
3.2.8定义候选关键字和主关键字 85
3.2.9按复杂表达式创建索引 86
3.2.10在运行时选择一个活动索引 89
3.3附加记录 90
3.3.1通过BROWSE或EDIT屏幕添加 90
记录 90
3.3.3附加来自其他表格的数据 91
3.3.2用程序附加记录 91
3.4创建数据库 93
3.4.1将现有表格添加给数据库 94
3.4.2使用主关键字和候选关键字 97
3.4.3用程序修改表格属性 97
3.5关于兼容性问题的说明 98
3.5.1 FoxPro 2.x共享表格 98
3.5.2从Visual FoxPro 3.0进行文件转换 98
3.5.3从数据库中删除表格 99
4.2数据规范化 100
4.2.1函数相关性 100
第4章高级数据库管理概念 100
4.1数据库设计技巧 100
4.2.2第一种规范化格式 101
4.2.3第二种规范化格式 102
4.2.4第三种规范化格式 103
4.2.5何时可以不遵守规范化原则 105
4.3命名约定 105
4.3.2给内存变量命名 106
4.3.1应用程序中的命名问题 106
4.3.3给表格中的字段命名 111
4.3.4给对象命名 113
4.3.5跨越相关应用程序的命名问题 114
4.3.6使用整个企业范围的命名约定 115
4.4 Visual FoxPro的数据库容器具备的其他高级特性 115
4.4.1使用记录级验证功能 115
4.4.2维护参照完整性 118
4.4.3建立持久性关系 118
4.4.4使用参照完整性创建器 120
4.4.5建立你自己的参照完整性 121
4.4.6使用触发器 122
第5章数据的选定、查看和排序 134
5.1打开数据表格 134
5.2打开工作区中的表格 134
5.2.1打开自由表格 134
5.2.2多次打开表格 137
5.2.3打开连接到数据库的表格 138
5.3 将数据显示在屏幕上或送往打印机 138
5.3.1用LOCATE查找记录 140
5.3.2按索引值搜索记录 141
5.3.3选定记录组 143
5.3.4用WHILE命令处理记录 144
5.4对表格中的数据排序 145
5.4.1创建持久排序次序 145
5.4.2用索引创建虚拟排序次序 146
5.5为Rushmore设计索引 150
5.5.1关闭Rushmore 153
5.5.2帮助Rushmore顺利运行 153
6.2为查询选定表格 156
6.2.1添加来自数据库的表格或视图 156
第6章创建基本查询 156
6.1什么是查询 156
6.2.2添加自由表格 157
6.3选择查询中包括的字段 163
6.4对结果进行排序 163
6.5 Miscellaneous标签的选项 164
6.6查看结果 165
6.7使用多重条件过滤器 166
6.8传递查询结果 168
6.8.1输出到光标 169
6.8.2输出到表格 170
6.8.3输出到图形 170
6.8.4输出到屏幕 172
6.8.5输出到报表 173
6.8.6输出到标注 174
6.9使用Query Designer与人工创建SQLSELECT语句的比较 175
6.10将记录组合起来以便汇总数据 179
6.11在程序和窗体中执行查询 182
6.13创建复杂的查询 183
6.12编辑生成的SQLSELECT语句 183
6.1 3.1使用BETWEEN子句筛选值的 184
范围 184
6.1 3.2使用IN子句筛选指定的值 185
6.13.3定义子查询 186
第7章高级查询与视图 189
7.1连接多个查询的结果 189
7.1.1检素当前客户的记录 189
对比 190
7.1.3检索对应于采购记录的供应商记录 190
7.1.2 DISTINCT与GROUP BY的用法 190
7.1.4检索员工记录 191
7.1.5使用UNION子句连接SELECT 191
结果 191
7.1.6创建内部连接 195
7.1.7创建外部连接 195
7.1.8创建自我连接 197
7.2.1使用Rushmore的基本原则 198
7.2优化生成的查询 198
7.2.2尽量减少查询中的字段 200
7.3创建交叉表格查询 201
7.4使用视图和可更新的查询 203
7.4.1本地数据视图 204
7.4.2视图更新选项 208
7.4.3将内存变量用于选择条件 211
7.4.4对查询条件参数化 212
8.1.1什么是远程数据 213
8.1.2 ODBC 213
第8章访问远程数据 213
8.1访问远程数据概述 213
8.2在Visual FoxPro 6中创建远程视图 217
8.2.1使用数据源 217
8.2.2使用连接 220
8.3使用SQL PassThrough函数 223
8.4使用DCOM 224
8.5与远程数据相关的用户界面 227
第9章创建窗体 229
9.1窗体概述 229
第三部分创建图形用户界面 229
9.2创建窗体 230
9.2.1使用窗体设计器 231
9.2.2将控件添加给窗体 233
9.2.3窗体控件工具栏 233
9.3对属性、事件和方法进行操作 234
9.3.1改变窗体和控件的属性 235
9.3.2改变属性 236
9.3.3编辑一种方法 237
9.3.4默认值与非默认值 237
9.3.5 PEM标签 238
9.3.6属性、事件和方法的编码 240
9.3.7将新属性或新方法添加给窗体 241
9.3.8 Properties窗口提供的快捷选项 242
9.4对窗体上的控件进行操作 243
9.4.1对齐控件 244
9.4.2调整控件的大小 244
9.4.3间距 244
9.4.4控件的Tab键控制次序 245
9.4.5给窗体控件命名 245
9.5.1设置窗体的数据环境 246
9.5数据连接 246
9.5.2对Data Environment设计器中的关系进行操作 248
9.5.3 Data Environment:最后的说明 248
9.5.4将数据控件拖放到窗体上 248
9.5.5捆绑控件与非捆绑控件 249
9.5.6了解专用数据会话 249
9.5.7谁负责控制数据 250
9.6运行窗体 250
9.7.1使用单个窗体的多个实例 251
9.7.2窗体集合 251
9.7窗体的其他特性 251
9.7.3 LockScreen属性 252
9.7.4创建模式窗体 252
9.8使用Form Wizard和Builder 253
9.8.1用Form Wizard创建窗体 253
9.8.2使用Builder来创建窗体 255
9.9一些窗体新选项 258
9.9.1窗体滚动条 258
9.9.2标题栏 258
9.10结束语 259
第10章创建报表 260
10.1报表的类型 260
10.2通过Quick Report创建报表 261
10 3 Report Designer 262
10.3.1对报表画面上的控件进行操作 263
10.3.2对形状和文本进行操作 267
10.4对图片和图形进行操作 268
10.5对报表控件进行格式化 270
10.5.1对齐 270
10.5.6文本操作选项 271
10.5.5对齐格线与网格线刻度 271
10.5.2调整大小 271
10.5.4组合 271
10.5.3间距 271
10.5.7填充和画笔选项 272
10.5.8报表带区 272
10.6给你的报表排序和分组 275
10.7利用Data Environment和Data 276
Sessions 276
10.9用报表向导创建报表 278
10.8设计原则 278
10.10运行报表 281
10.11关于报表的小结 282
第11章创建菜单 284
11.1使用Menu Designer 284
11.1.1 Menu Designer布局窗口 284
11.1.2术语 285
11.1.3 Prompt列 285
11.1.4 Result列 285
11.1.5 Options列 287
11.1.7 Menu Designer的按钮 288
11.1.6 Menu Selection组合框 288
11.1.8 View菜单中的其他菜单选项 289
11.2设计快捷菜单 290
11.3生成菜单代码并运行菜单 290
11.4扩展Visual FoxPro的菜单 291
第12章将应用程序组件纳入项目 292
12.1了解Project Manager的作用 292
12.1.1使用大纲控件 292
12.1.2 Project Manager中包含的文件类型 293
12.2利用Project Manager的功能 295
1 2.2.1用Project Manager创建文件 296
12.2.2添加现存的文件 297
12.2.3修改文件 297
12.2.4运行程序和窗体,预览报表 298
12.2.5删除文件 298
12.2.6拖放项目元素 299
12.2.7折叠和停放Project Manager 299
12.2.8 Project Information对话框 300
12.3创建Visual FoxPro的.APP、.EXE和COM.DLL文件 302
12.3.2在.APP和.EXE文件中包含和不包含文件 303
12.3.1关于主文件的说明 303
12.3.4设定要包含的文件 304
12.3.5设定要包含的组件 304
1 2.3.3建立安装盘以便分销应用程序 304
12.3.6设定安装图形的位置 305
12.3.7设定安装程序信息 306
12.3.8设定应用程序的目录和程序组 306
12.3.9设定文件目录 307
12.3.10运行Setup Wizard 307
1 2.4.1 Visual SourceSafe与你的VisualFoxPro项目相集成 309
12.4在小组软件开发中将Visual 309
SourceSafe用于版本控制 309
12.4.2创建源控件项目 310
12.4.3 Visual SourceSafe术语的详细说明 311
12.5将Project Manager作为对象来访问 313
1 2.5.1 Project Manager的对象设计 314
12.5.2访问项目的方法和属性 314
12.5.3 Project的属性和方法 315
12.5.4文件属性和方法 316
12.6 ProjectHook 317
12.7 Project Manager小结 318
第四部分面向对象的编程 319
第13章面向对象的编程概述 319
13.1了解面向对象的编程 319
13.2软件危机 319
13.3对象与封装 320
13.3.1属性 321
13.3.2方法 321
13.3.4类 322
13.3.3事件 322
13.4建立对象的实例 323
13.5引用类中的方法或属性 323
13.6子类——在一个类的基础上创建另一个类 324
13.7取代继承的行为特性 325
13.8保护方法和属性 325
13.9了解多态 326
13.10消息、消息、消息 326
13.10.4再谈封装的概念 327
13.10.3调用一个方法 327
13.10.1创建对象 327
13.10.2获取属性的值 327
13.11 OOP和它对编程的作用 328
13.12用OOP进行程序的分析和设计 328
13.13多个程序员设计面向对象软件时的问题 328
13.14用OOP进行系统维护 329
第14章用Visual FoxPro进行面向对象的编程 331
14.1用Visual FoxPro创建和使用类 331
14.2定义类 331
14.3建立对象的实例 335
14.4调用方法 336
14.5基本事件、方法和属性 336
14.5.1基本属性 337
14.5.2基本事件和方法 337
14.6 Error方法 337
14.7创建复合类 337
14.9 ADD OBJECT与AddObject之间的差别 338
14.10再谈关键字THIS 338
14.8访问子成员变量和方法 338
14.11用CreateObject添加对象 339
14.1 2如何在Visual FoxPro中创建各个类 339
14.1 3为何要使用Visual Class Designer 339
14.14 Visual Class Designer 340
14.14.4将成员数组添加给VCX类的 341
14.15访问类信息 341
技巧 341
14.14.3添加属性和方法 341
14.14.2菜单的差别 341
14.14.1设计画面的差别 341
14.16创建类 343
14.17修改.VCX文件中的类 344
14.18使用.VCX文件中的类 344
14.19将参数传递给对象的方法 345
14.20用AInstance管理实例 345
14.21 ACLASS函数 346
14.22 AMembers函数 347
14.23用AMembers查看对象 348
14.24.1用户界面 349
14.24将查看器(Inspector)的功能向前推进一步 349
14.24.2 Init方法 353
14.24.3 BuildList方法 354
14.24.4 Resize方法 354
第15章用Visual FoxPro创建类 355
15.1类的概述 355
15.2可视类 355
15.2.1单控件类 356
15.2.2组合控件 359
15.2.3控件类 364
15.2.4容器类 366
15.2.5窗体 377
15.2.6工具栏 385
15.2.7关于可视类的小结 394
15.3非可视类 395
15.3.1为何要创建非可视类 395
15.3.2非可视类的类型 395
15.3.3包装类 396
15.3.4管理器类 400
15.3.5商务类 402
15.3.6小结:创建应用程序框架 403
第16章用Visual FoxPro管理类 405
16.1类库的结构 405
16.2类管理员 406
16.3列入类库的条件 406
16.4将新类并入类库 406
16.7删除类 407
16.8在不同类库之间移动类 407
16.6拷贝类 407
16.5类库管理的技术问题 407
16.9给类改名 408
16.10直观地管理类 408
16.11类浏览器 409
16.11.1窗体标题 409
16.11.2操作按钮 409
16.11.3 Type过滤器 415
16.11.4显示方法 415
16.11.5受保护的成员 415
16.11.7隐藏成员 416
16.11.8类图标 416
16.11.6空方法 416
16.11.9类列表 417
16.11.10成员列表 417
16.11.11类描述 418
16.11.12成员描述 418
16.12启动Class Browser 419
16.13 Class Browser和.SCX文件 419
16.14 Class Browser的详细内部结构 420
16.14.1对象成员 421
16.14.2方法 422
16.14.3属性 429
16.15综合使用附加程序 432
16.15.1一个附加程序例子 433
16.15.2附加程序的注册 433
16.15.3运行附加程序 433
16.15.4取消附加程序的注册 434
16.16增强附加程序的功能 434
16.17用附加程序改变Class Browser的行为特性 440
17.1.2数据环境与窗体类 443
17.1.1带有窗体的数据环境 443
17.1数据环境类 443
第17章面向对象的高级编程 443
17.1.3 Cursor类 444
17.1.4 Relation类 444
17.1.5 DataEnvironment类 445
17.1.6 DUMPDBC类 447
17.2用Data Sessions增强数据环境的功能 454
17.3在实际环境中模拟创建对象 455
17.3.1定义秒表 455
17.3.3 SwatchEngine类 456
17.3.2建立秒表类 456
17.3.4 Swatch类 458
17.3.5将所有元素用于窗体 461
17.3.6 Swatch类的小结 463
17.4框架的使用 464
17.4.1商务对象的性质 464
17.4.4 2 Base_Navigation类 464
17.4.3基本窗体 466
17.4.4基本数据环境类 467
17.4.5基本商务类 469
17.4.6增强框架的功能 472
17.4.7使用框架 473
17.4.8关于商务类的附加说明 477
17.4.9关于框架的小结 478
17.5编程中使用的标准 478
17.5.1变量的命名 478
17.5.2方法与属性的命名 479
17.6框架对标准的影响 479
18.1了解Visual FoxPro基础类 480
第18章Visual FoxPro基础类 480
18.2如何使用Visual FoxPro基础类 485
18.3用Component Gallery将Visual FoxPro基础类添加给窗体 485
18.4用Form Control工具栏将VisualFoxPro基础类添加给窗体 488
18.5将Visual FoxPro基础类添加给项目 489
18.6使用FoxPro基础类的其他例子 492
第19章Visual FoxPro Component 493
Gallery 493
19.1使用Component Gallery 493
19.2选定Component Gallery的项目 494
19.3 Component Gallery工具栏 496
19.4用Component Gallery创建应用程序 499
19.5修改Component Gallery的目录或文件夹的行为特性 501
19.5.1添加目录或文件夹 501
19.5.2改变目录和文件夹 502
19.5.3改变目录或文件夹的行为特性 502
19.6改变Component Gallery的对象的行为特性 504
20.1什么是COM 505
20.2一些背景知识 505
第20章COM简介 505
第五部分COM 505
20.3 COM代表什么 506
20.4 COM/DCOM的伸缩性 507
20.5我需要学习什么知识呢 508
20.6如何使用COM对象 508
20.7 COM究竟如何工作 508
20.8了解类型库 509
20.9 Visual FoxPro的COM功能 509
20.9.1 CREATEOBJECT(Class Name 509
20.9.3 SETOLE OBJECT 510
20.9.2 GETOBJECT(FileName, 510
ClassName) 510
20.9.4 ComClassInfo(oObjec>,nInfoCode) 511
20.9.5 CreateObjectEX(CLSID | ProgID,ComputerName) 511
20.9.6 ComArray(oObject[,nSetting]) 512
20.10作为COM服务程序的Visual 512
FoxPro 512
21.2学习如何使用Word和Excel 513
21.1应用程序的互操作性与Microsoft公司的解决方案 513
客户程序 513
第2 1章将Visual FoxPro用作COM 513
21.3处理宏代码中生成的常量 518
21.4关于Excel的详细说明 521
21.5用Excel生成报表 521
21.6管理COM应用程序的实例 526
21.7使用Word 527
21.7.1一个假想的问题 527
21.7.2我的解决方案 528
21.7.5最后观察一下宏 530
21.7.4选择什么 530
21.7.3句法上的差别 530
21.7.6最后定型的宏 531
21.7.7下一步要做的工作 534
21.8小结 540
第22章用Visual FoxPro创建COM 541
服务程序 541
22.1你想让COM服务程序做什么 541
22.2一个简单的COM服务程序的例子 541
22.2.1任务描述 541
22.2.3创建表格 542
22.2.2设计方案 542
22.2.4代码 543
22.2.5一个简单的状态报表 546
22.2.6创建COM服务程序 547
22.3创建.EXE文件还是.DLL文件 547
22.4言归正传 548
22.5单个实例与多个实例 548
22.6测试服务程序 549
22.7.2 Excel代码 550
22.7.1 Excel开发环境 550
22.7测试Visual FoxPro以外的服务程序 550
22.7.3下一步工作 551
22.7.4重建服务程序 553
22.8尚待解决的其他问题 553
22.8.1管理表格 553
22.8.2确定用哪个类作为基础 553
22.8.3保护属性和方法 553
22.8.4处理模式和错误 553
22.9服务程序的最后版本 554
22.8.5 Sys(2335) 554
22.9.1新的Error方法 559
22.9.2受保护的成员 559
22.9.3新cDataPath属性 559
22.10 N层客户机/服务器应用程序中的COM 559
第六部分Visual FoxPro的其他课题第23章错误的检测和处理 561
23.1当你的程序出现问题时怎么办 561
23.2了解常见的代码错误 561
23.2.1语法错误 562
23.2.2逻辑错误 566
23.2.3例外错误 567
23.3代码模块化以尽量减少错误 569
23.4使用正确的参数传递方法 571
23.5避免多次退出和返回 572
23.6创建测试例程和测试对象库 574
23.7处理文件中的讹误 574
23.8制定一个测试计划 577
23.8.1了解数据驱动的测试和逻辑驱动的测试 577
23.8.2定义测试方法 577
23.8.4建立测试环境 580
23.8.3确定测试何时完成 580
23.8.5定义使用所有程序路径的测试方案 581
23.8.6定义使用实数据拷贝的测试 582
方案 582
23.8.7记录测试实例 582
23.8.8使用其他的测试原则 583
23.8.9测试时要问的问题 583
23.9了解跟踪错误的方法 584
23.9.1程序暂停时测试错误 585
23.9.2分割复杂的命令 587
23.9.3代码中的错误线索 588
23.9.4添加Wait窗口或其他打印输出 588
23.9.5分析判断 589
23.9.6调试器 590
23.9.7使用Coverage Profiler 601
23.10使用错误处理程序 603
23.11使用对象中的错误事件 610
23.12其他资料来源 612
24.1什么是计算机的2000年问题 613
2000年问题 613
第24章Visual FoxPro与计算机的 613
24.2以前的Visual FoxPro版本的2000年问题的解决状况 615
24.3 Visual FoxPro 6为解决计算机的2000年问题而采取的措施 616
24.3.1严格的日期类型 616
24.3.2新的SET STRICTDATE命令 616
24.3.3增强的DATE()和DATETIME()函数 617
24.3.4增强的FDATE()函数 618
24.3.5 Century属性和SET CENTURY命令 618
Web浏览器 619
25.1.1作为通用接口的通用客户机 619
25.1 Internet魅力何在 619
第25章对Internet支持 619
25.1.2 Web上的分布式应用程序 620
25.1.3开放的标准 621
25.1.4建立Web应用程序的制约因素 621
25.2 Web上的数据库开发 622
25.2.1开发Web应用程序所需的工具 622
25.2.2在Web上运行应用程序 623
25.2.3 Visual FoxPro适合做什么 625
25.2.4该不该用Visual FoxPro 626
25.2.5 Internet数据库连接程序 627
25.2.6 Visual FoxPro用作数据服务器 630
25.2.7使用FoxISAPI和OLE服务器 631
创建Web应用程序 631
25.2.8在Web应用程序之间使用 638
Web连接 638
25.2.9使用Web浏览器 651
25.2.10使用Visual FoxPro的Web开发问题 653
25.3.1通过FTP下载文件 654
25.3让应用程序支持Internet功能 654
25.3.2发送SMTP邮件 656
25.3.3用Visual FoxPro启动Web 659
浏览器 659
25.4根据窗体、报表或表格创建HTML 663
文件 663
25.5 Active文档 665
25.5.1怎样创建Active文档 665
25.5.2 ActiveDoc对象的属性、事件和方法 668
25.5.4运行Active文档 669
25.5.3支持Active文档的新Visual FoxPro扩展功能 669
第26章建立在线帮助功能 671
26.1了解HTML Help Workshop 671
26.2.Workshop怎样工作 672
26.2.1帮助菜单 672
26.2.2窗体上的帮助按钮 672
26.2.3使用F1键的上下文相关帮助 673
26.2.4 “这是什么?”帮助信息 673
26.3.2创建帮助项目 674
26.3.1安装 674
26.3使用HTML Help Workshop 674
26.3.3目录 676
26.3.4索引 677
26.3.5增加HTML主题文件 678
26.3.6编译基本帮助文件系统 681
26.3.7上下文相关的帮助主题 681
26.3.8 “这是什么?”帮助主题 683
26.4发布已编译的帮助系统 685
27.2应用程序向导和创建器 686
第27章Visual FoxPro向导 686
27.1什么是向导 686
27.2.1项目 687
27.2.2应用程序创建器 689
27.2.3应用程序 693
27.3文档向导 694
27.4安装向导 700
27.5 WWW搜索页向导 705
27.6 Web发布向导 711