第一单元 程序框架的构造 1
第1课 窗口 2
1.1 什么是窗口 2
1.2 可视化编程快速入门:“Hello World” 4
1.2.1 打开屏幕设计窗口 5
1.2.2 定制界面窗口及显示内容 6
1.2.3 产生SPR文件 8
1.3 解剖HELLO.SPR 9
1.4 窗口的定义 10
小结 14
练习 14
第2课 条形菜单系统的组成 15
2.1 条形菜单系统的组成 15
2.2 程序实例 17
2.2.1 启动菜单生成器 18
2.2.2 定制AIDEMO的菜单系统 18
2.2.3 生成MPR文件 21
2.3 透视DEMO.MPR 21
2.4 运行AIDEMO应用程序 22
2.5 菜单的语言定义 24
2.5.1 菜单条的创建 24
2.5.2 菜单面板的创建 25
2.5.3 弹出菜单的创建 27
2.5.4 弹出选项的创建 28
2.5.5 菜单事件 29
小结 30
练习 30
3.1 增加数据成分 32
第3课 输出对象 32
3.2 扩展AIDEMO 34
3.3 运行新的AIDEMO程序 37
3.4 程序模块调用关系 39
3.5 用于输出的SAY命令和按钮命令 41
3.5.1 有格式输出的SAY命令 41
3.5.2 创建Push Button按钮的GET命令 44
小结 46
练习 47
第4课 输入对象 49
4.1 实例要求 49
4.1.1 修改InfoOut输出屏幕 49
4.1.2 设计InfoIn输入屏幕 51
4.2 追求更好的格式控制 55
4.3 函数/过程名字的含义 58
4.4 编辑区对象的定义 59
4.4.1 实现编辑区对象的@…GET命令 59
4.4.2 SQL INSERT命令 63
小结 65
练习 65
第二单元 语言 68
第5课 数据对象 68
5.1 数据属性 68
5.1.1 数据对象的标识 68
5.1.2 数据类型 69
5.1.3 数据值和数据宽度 74
5.2 动态的数据类型 75
5.3 数据对象的形式和生存期 75
5.4 内存变量的基本操作 75
5.4.1 创建内存变量 76
5.4.2 释放内存变量 77
5.4.3 查看内存变量 78
5.5 数组 79
小结 80
练习 80
第6课 表达式 81
6.1 操作数 81
6.2 运算符 82
6.2.1 字符型运算符 82
6.2.2 日期型运算符 82
6.2.3 逻辑运算符和关系运算符 83
6.2.4 数值运算符 85
6.3 运算符优先级 86
6.4 函数 87
6.4.1 数值和数学函数 88
6.4.2 字符函数 89
6.4.3 日期函数 93
6.5 内部函数应用实例 95
小结 97
练习 97
第7课 结构化控制语句 98
7.1 编写程序的准备 98
7.2 控制结构概况 100
7.3 分支语句 100
7.3.1 IF语句 100
7.3.2 CASE语句 101
7.4 循环语句 104
7.4.1 FOR循环语句 104
7.4.2 DO WHILE循环语句 107
7.5 两个特殊的控制 109
7.6 控制语句的嵌套结构 110
7.7 逐步求精的程序开发原则 111
小结 114
练习 115
第8课 过程和用户自定义函数 116
8.1 过程 116
8.1.1 创建过程模块 117
8.1.2 过程的参数传递 121
8.2 用户自定义函数 122
8.2.1 函数的创建 123
8.2.2 函数的引用 124
8.3 函数还是过程 125
8.4.2 申明私有变量 127
8.4.1 申明全局变量 127
8.4 变量的全局/私有属性 127
8.5 数组的参数传递 129
8.6 模块间的数据通信 130
小结 132
练习 133
第三单元 数据库基础 136
第9课 数据库的创建和打开 136
9.1 什么是数据库 136
9.2 创建数据库 138
9.2.1 数据库规划 138
9.2.2 确定主关键字 139
9.2.3 确定字段类型 140
9.3 CREATE TABLE命令 141
9.4 CREATE CURSOR 143
9.5 打开数据库 144
9.6 关闭数据库 146
9.7 工作区的选择 147
9.8 查看数据库全局信息 148
小结 150
练习 150
第10课 数据库内容的操作 152
10.1 记录的定位操作 152
10.1.1 记录的定位与记录指针 152
10.1.2 EOF()和BOF()函数 154
10.2 增加记录 155
10.3 删除记录 157
10.4 恢复命令 158
10.5 记录的修改 159
10.6 逻辑视区:数据库的投影和选择 161
10.7 选择记录范围 163
10.8 空字段 164
10.9 完善AIDEMO的数据处理 166
10.9.1 更多的数据库表格 166
10.9.2 GRADE表格的输入屏设计 167
小结 171
练习 171
第11课 索引和排序 173
11.1 什么是索引 173
11.2 FoxPro的索引文件类型 175
11.3 索引文件的创建 176
11.4 选择索引表达式 178
11.5 选择性索引 180
11.6 索引的打开、关闭和更新 181
11.7 选定主索引 183
11.8 删除索引 185
11.9 基于索引的查找命令 185
11.9.1 SEEK命令 185
11.9.2 FIND命令 186
11.9.3 FOUND()函数 187
11.9.4 SEEK()函数 187
11.10 使用SORT排序命令 188
小结 190
习题 191
第12课 BROWSE命令的程序设计 192
12.1 BROWSE命令概况 192
12.2 定制BROWSE窗口 194
12.2.1 几何外观:大小和位置 194
12.2.2 列宽和列名汉化 195
12.2.3 字体的选择 197
12.3 BROWSE字段的格式化 197
12.3.1 导出字段(Calculated Fields) 198
12.4 BROWSE的有效性验证 200
12.5 BROWSE窗口的标题和名字 204
12.6 窗口分区和列表选择 206
12.7 用BROWSE显示多表内容 207
小结 208
练习 209
第四单元 高级技术 212
第13课 SQL查询 212
13.1 SQL SELECT命令概述 212
13.2 增加SQL SELECT所需的数据 214
13.3 FROM子句指定查询的原始表格 214
13.4 SELECT指定输出字段 215
13.5 WHERE子句实现联接条件和选择 218
13.5.1 WHERE实现元组选择 218
13.5.2 WHERE实现表格间的联接操作 219
13.5.3 WHERE子句的谓词搜索 221
13.6 GROUP BY子句和列函数 224
13.7 HAVING子句实现分组选择 226
13.8 ORDER BY子句实现有序输出 227
13.9 用于合并运算的UNION子句 228
13.10 输出重定向 228
13.11 什么是RQBE 230
小结 230
练习 231
第14课 Rushmore技术 233
14.1 Rushmore技术概述 233
14.2 数据准备和测试手段 235
14.3 可利用Rushmore技术的命令集 237
14.4 正确使用Rushmore条件 238
14.5 基本优化表达式 240
14.6 基本表达式的组合 241
14.7 复杂表达式的组合 243
14.8 更好地使用Rushmore 244
14.8.1 保持适当的索引数量 244
14.8.2 在索引表达式中避免使用NOT(!)和FOR 244
14.8.3 保持SET DELETED OFF 245
14.8.4 用SET ORDER TO命令删去所有主排序 245
14.8.5 巧用字符串比较运算“=” 246
14.8.6 有序输出 246
14.9 关闭Rushmore 246
练习 247
小结 247
第15课 通用字段、OLE技术和报表设计 249
15.1 时髦的AIDEMO 249
15.2 用OLE实现通用字段的输入 254
15.2.1 嵌入方式 254
15.2.2 链接方式 256
15.3 报表设计 257
15.3.1 报表打印和预览 258
15.3.2 利用报表书写器设计报表 259
15.4 完善MMEDIA.PRG程序 262
15.5 REPORT和READ命令 264
15.5.1 REPORT命令 264
15.5.2 READ命令 265
小结 267
练习 268
第16课 向导工具 269
16.1 向导工具的向导 269
16.1.1 向导工具的启动 269
16.1.2 向导工具的屏幕导航按钮 269
16.2 数据库向导 270
16.2.1 启动数据库向导 270
16.2.2 用数据库向导样本建立个人藏书数据库 271
16.3 屏幕向导 274
16.3.1 启动屏幕向导 275
16.3.2 使用屏幕向导 275
16.3.3 执行屏幕 277
16.3.4 了解生成出来的屏幕 278
小结 284
练习 285