第一篇 Delphi编程篇
第1章 Delphi开发环境概述 3
1.1 Delphi概述 3
1.2 Delphi 7的集成开发环境 4
1.2.1 熟悉Delphi 7开发环境 4
1.2.2 常用菜单 5
1.2.3 工具栏 8
1.2.4 组件面板 9
1.2.5 对象检查器 12
1.2.6 代码编辑器 13
1.2.7 代码浏览器 15
1.2.8 对象树状窗口 15
1.2.9 项目管理器 16
1.3 应用程序的开发过程 17
1.3.1 制作一个简单的应用程序 17
1.3.2 构成Delphi 7项目的主要文件 21
1.3.3 构成Delphi 7项目的主要文件说明 21
第2章 面向对象的应用程序设计 24
2.1 面向对象的程序设计 24
2.1.1 对象的引入 24
2.1.2 Delphi提供的对象 25
2.2 认识Delphi的窗体 26
2.3 窗体对象的主要属性 27
2.3.1 与窗体位置、大小有关的属性 27
2.3.2 与窗体客户区大小有关的属性 28
2.3.3 与窗体显示有关的属性 28
2.3.4 与窗体透明有关的属性 29
2.3.5 与窗体外观有关的属性 30
2.3.6 窗体的绘图属性 30
2.3.7 与窗体控制有关的属性 31
2.3.8 与窗体约束有关的属性 31
2.3.9 与窗体字体比例调整有关的属性 32
2.4 窗体的操作方法 32
2.4.1 窗体对象的创建与释放 32
2.4.2 窗体对象的显示与隐藏 33
2.4.3 窗体对象的焦点设置 33
2.4.4 对象控制的操作方法 34
2.5 窗体的事件处理 34
2.5.1 窗体激活时产生的相关事件 34
2.5.2 窗体关闭时产生的相关事件 35
2.5.3 鼠标相关事件处理 36
2.5.4 键盘相关事件处理 37
2.5.5 拖动相关事件处理 38
2.6 应用程序窗体组成 39
2.7 应用软件开发流程 45
第一篇 Delphi编程篇
第1章 Delphi开发环境概述 3
1.1 Delphi概述 3
1.2 Delphi 7的集成开发环境 4
1.2.1 熟悉Delphi 7开发环境 4
1.2.2 常用菜单 5
1.2.3 工具栏 8
1.2.4 组件面板 9
1.2.5 对象检查器 12
1.2.6 代码编辑器 13
1.2.7 代码浏览器 15
1.2.8 对象树状窗口 15
1.2.9 项目管理器 16
1.3 应用程序的开发过程 17
1.3.1 制作一个简单的应用程序 17
1.3.2 构成Delphi 7项目的主要文件 21
1.3.3 构成Delphi 7项目的主要文件说明 21
第2章 面向对象的应用程序设计 24
2.1 面向对象的程序设计 24
2.1.1 对象的引入 24
2.1.2 Delphi提供的对象 25
2.2 认识Delphi的窗体 26
2.3 窗体对象的主要属性 27
2.3.1 与窗体位置、大小有关的属性 27
2.3.2 与窗体客户区大小有关的属性 28
2.3.3 与窗体显示有关的属性 28
2.3.4 与窗体透明有关的属性 29
2.3.5 与窗体外观有关的属性 30
2.3.6 窗体的绘图属性 30
2.3.7 与窗体控制有关的属性 31
2.3.8 与窗体约束有关的属性 31
2.3.9 与窗体字体比例调整有关的属性 32
2.4 窗体的操作方法 32
2.4.1 窗体对象的创建与释放 32
2.4.2 窗体对象的显示与隐藏 33
2.4.3 窗体对象的焦点设置 33
2.4.4 对象控制的操作方法 34
2.5 窗体的事件处理 34
2.5.1 窗体激活时产生的相关事件 34
2.5.2 窗体关闭时产生的相关事件 35
2.5.3 鼠标相关事件处理 36
2.5.4 键盘相关事件处理 37
2.5.5 拖动相关事件处理 38
2.6 应用程序窗体组成 39
2.7 应用软件开发流程 45
第3章 用户图形界面设计 47
3.1 可视化用户界面设计 47
3.1.1 界面设计基础 47
3.1.2 人机交互界面设计 48
3.1.3 人机交互界面举例 48
3.2 控件概述 50
3.2.1 控件分类 50
3.2.2 控件命名约定 50
3.2.3 控件的通用属性 51
3.2.4 控件的通用方法与事件 51
3.2.5 关于Tab键次序 52
3.2.6 关于焦点 52
3.3 使用控件数组 53
3.3.1 为何使用控件数组 53
3.3.2 定义控件数组 53
3.3.3 控件数组应用实例 53
3.4 调整控件布局 54
3.4.1 统一控件尺寸 54
3.4.2 调整水平和垂直间距 55
3.4.3 锁定控件布局 57
3.5 标签控件 57
3.5.1 主要属性设置 57
3.5.2 标签控件的实例应用 58
3.6 文本类控件 58
3.6.1 引入文本类控件 58
3.6.2 文本类控件属性设置 58
3.6.3 文本类控件实例应用 59
3.7 按钮类控件 59
3.7.1 按钮类控件的主要应用 59
3.7.2 按钮类控件属性设置 59
3.7.3 按钮类控件应用 62
3.8 选择类控件 62
3.8.1 复选框与单选按钮 62
3.8.2 列表框控件应用 64
3.8.3 组合框控件应用 65
3.9 时钟控件 66
3.9.1 时钟控件主要属性、事件 66
3.9.2 时钟控件在用户界面中的应用 66
3.10 框架控件 67
3.10.1 框架控件在用户界面中的应用 67
3.10.2 框架控件主要属性、方法 67
3.10.3 框架控件实例应用 67
3.11 修饰类控件 68
3.11.1 主要修饰类控件 68
3.11.2 使用修饰类控件美化用户界面 69
第4章 菜单栏、工具栏和对话框 70
4.1 菜单栏设计 70
4.1.1 创建菜单与菜单项 70
4.1.2 在菜单中添加分隔线 71
4.1.3 设计级联菜单 71
4.1.4 设计单选菜单 71
4.1.5 设计复选菜单 72
4.1.6 为菜单添加图标 72
4.1.7 菜单命令的响应 74
4.1.8 动态管理菜单 74
4.1.9 设计弹出式菜单 74
4.2 设计工具栏 75
4.2.1 TToolBar组件与TToolButton组件 75
4.2.2 设置按钮样式 76
4.2.3 为工具栏设置响应代码 77
4.2.4 为工具栏设置提示信息 77
4.3 通用对话框 78
4.3.1 通用对话框的引入 78
4.3.2 打开对话框和保存对话框 78
4.3.3 颜色对话框和字体对话框 81
4.3.4 打印对话框和替换对话框 82
第5章 数据库开发技术 86
5.1 BDE数据库程序开发技术 86
5.1.1 BDE Administrator 86
5.1.2 使用BDE连接SQL Server数据库 86
5.1.3 TTable组件 89
5.1.4 TQuery组件 90
5.1.5 TDatabase组件 92
5.2 ADO数据库程序开发技术 93
5.2.1 ADO技术简介 93
5.2.2 TADOConnection组件 93
5.2.3 TADOCommand组件 96
5.2.4 TADOTable组件 97
5.2.5 TADOQuery组件 98
第6章 访问与编辑数据 101
6.1 操作数据库 101
6.1.1 创建数据库与数据表 101
6.1.2 修改数据表结构 103
6.1.3 删除表 104
6.2 编辑数据 105
6.2.1 添加记录 105
6.2.2 修改记录 109
6.2.3 删除记录 111
6.3 数据查询与统计 113
6.3.1 数据查找 113
6.3.2 数据查询 116
6.3.3 数据排序 117
6.3.4 数据过滤 118
6.3.5 数据统计 119
第7章 数据库用户界面设计 122
7.1 数据控制组件介绍 122
7.2 TDBEdit组件介绍 122
7.3 TDBNavigator组件介绍 124
7.4 TDBImage组件介绍 125
7.5 TDBListBox组件介绍 127
7.6 TDBComboBox组件介绍 128
7.7 TDBLookupListBox组件介绍 129
7.8 TDBRadioGroup组件介绍 131
7.9 TDBGrid组件介绍 132
7.10 TDBCtrlGrid组件介绍 134
第8章 报表与打印程序设计 137
8.1 利用Rave组件设计报表 137
8.1.1 常用Rave组件介绍 137
8.1.2 使用Rave组件设计报表 138
8.1.3 使用代码创建报表 142
8.2 特色报表设计 143
8.2.1 设计页眉和页脚 143
8.2.2 设计带表格的报表 144
8.2.3 打印分栏文本 145
8.3 使用Rave组件设计报表实例应用 146
8.3.1 设计主从式报表 146
8.3.2 设计汇款单式报表 147
8.3.3 设计分组式报表 148
8.3.4 设计随查询结果自动更新的报表 149
8.4 利用向导创建报表 152
8.4.1 创建简单报表 152
8.4.2 调整报表的外观 154
8.4.3 改变长度单位 155
8.5 使用QuickReport组件设计报表 155
8.5.1 图案报表设计 155
8.5.2 设计连续打印报表 156
8.6 数据报表应用总结 158
8.6.1 设计报表版面 158
8.6.2 报表设计过程 158
8.6.3 报表设计要点 158
第9章 调试程序与预错处理 159
9.1 错误的种类 159
9.2 错误捕获 159
9.2.1 错误捕捉 159
9.2.2 触发错误 160
9.2.3 编制错误处理程序 160
9.3 代码调试 161
9.3.1 跟踪程序的执行 161
9.3.2 Call Stack窗口 162
9.3.3 Watch List窗口 163
9.3.4 Debug Inspector窗口 165
9.3.5 Evaluate/Modify窗口 166
第二篇 SQL Server应用篇
第10章 管理SQL Server 2000 171
10.1 安装SQL Server 171
10.2 配置服务器 174
10.2.1 启动、暂停和停止SQL Server服务器 174
10.2.2 注册SQL Server 2000服务器 175
10.2.3 编辑SQL Server 2000注册信息 179
10.3 脚本概述 179
10.3.1 将数据库生成脚本 179
10.3.2 将指定表生成脚本 181
10.3.3 执行脚本 181
10.4 备份和还原数据库 182
10.4.1 备份和恢复的概念 182
10.4.2 数据库备份 182
10.4.3 数据库还原 184
10.5 分离和附加数据库 184
10.5.1 分离数据库 184
10.5.2 附加数据库 185
10.6 导入、导出数据表 186
10.6.1 导入数据库 186
10.6.2 导入SQL Server数据表 186
10.6.3 导入其他数据源的数据表 188
10.6.4 导出数据库 191
10.6.5 导出SQL Server数据表 191
第11章 设计SQL Server数据库 193
11.1 分析数据库 193
11.1.1 分析数据库结构 193
11.1.2 设计数据库草稿 194
11.2 设计数据库 195
11.2.1 创建数据库 195
11.2.2 添加数据表 197
11.2.3 选择数据类型 199
11.2.4 删除数据表 200
11.3 建立索引 201
11.3.1 建立惟一索引 201
11.3.2 定义主键索引 203
11.3.3 删除索引 203
11.4 修改数据库 204
11.4.1 为数据表更名 204
11.4.2 在表结构中添加新字段 205
11.4.3 在表结构中删除字段 205
11.4.4 改变表结构字段的大小 207
11.4.5 修改表结构中的字段顺序 207
11.5 关系的建立与维护 207
11.5.1 建立一对一关系 207
11.5.2 建立一对多关系 210
11.5.3 关系更名 211
11.5.4 删除关系 212
11.6 设计视图 212
11.6.1 创建视图 212
11.6.2 修改视图 215
11.6.3 删除视图 215
第12章 编辑SQL Server数据库 217
12.1 录入和修改数据 217
12.1.1 添加新记录 217
12.1.2 记录修改 218
12.1.3 删除记录 218
12.2 浏览数据 219
12.3 查找数据 220
12.3.1 查找指定行记录 220
12.3.2 查找第一条记录 220
12.3.3 查找最后一条记录 221
12.3.4 查找下一条记录 222
12.3.5 查找前一条记录 222
第13章 SQL语句 224
13.1 创建查询和测试查询 224
13.1.1 编写SQL语句 224
13.1.2 测试SQL语句 225
13.1.3 执行SQL语句 225
13.2 选择查询 225
13.2.1 简单的Select查询 225
13.2.2 选择查询字段 225
13.2.3 利用Where参数过滤数据 226
13.2.4 对查询结果进行排序 226
13.2.5 将查询结果分组统计 227
13.2.6 模糊查询 230
13.2.7 在查询语句中进行计算 231
13.2.8 为字段起一个别名 232
13.3 使用聚合函数进行查询 232
13.3.1 数据汇总查询 232
13.3.2 数据平均值查询 233
13.3.3 数据总记录数查询 234
13.3.4 数据最小值查询 235
13.3.5 数据最大值查询 235
13.4 复杂查询 235
13.4.1 子查询 235
13.4.2 连接 236
13.4.3 内连接 236
13.4.4 外连接 237
13.4.5 交叉连接 239
13.5 数据添加 239
13.5.1 Insert语句介绍 239
13.5.2 Insert语句基本应用 240
13.6 数据修改 240
13.6.1 Update语句介绍 240
13.6.2 Update语句基本应用 240
13.7 数据删除 241
13.7.1 Delete语句介绍 241
13.7.2 Delete语句基本应用 241
第14章 存储过程、触发器与视图 242
14.1 存储过程概述 242
14.2 存储过程的应用 242
14.2.1 新建存储过程 242
14.2.2 修改存储过程 243
14.2.3 删除存储过程 244
14.2.4 获取数据库中的存储过程 244
14.2.5 获取指定存储过程语句 244
14.2.6 存储过程的调用 245
14.3 触发器介绍 246
14.4 使用触发器 246
14.4.1 新建触发器 246
14.4.2 修改触发器 247
14.4.3 删除触发器 248
14.5 视图介绍 248
14.6 视图应用 248
14.6.1 新建视图 248
14.6.2 修改视图 249
14.6.3 删除视图 249
14.6.4 获得数据库中所有的视图 250
14.6.5 获得指定视图语句 250
第三篇 实例开发篇
第15章 定制自己的工作环境 253
15.1 代码编辑器常规选项设置 253
15.2 代码编辑器源文件选项设置 255
15.3 代码编辑器显示状态设置 261
15.4 语法着色 262
15.5 代码智能选项设置 264
15.6 环境选项参数设置 265
15.7 窗体和组件设置 267
15.8 个性化开发环境设置 268
第16章 Delphi 7在物流配送管理系统中的应用 271
16.1 物流配送管理系统概述 271
16.1.1 开发背景 271
16.1.2 运行环境 271
16.2 系统调查 271
16.2.1 手工流程 271
16.2.2 需求分析 272
16.3 系统分析 272
16.3.1 系统功能 272
16.3.2 业务流程 273
16.4 数据库设计 273
16.4.1 数据库概念设计 273
16.4.2 数据库逻辑结构设计 273
16.5 处理过程分析 277
16.5.1 配送审核处理过程分析 277
16.5.2 配送开票处理过程分析 277
16.6 主程序设计 278
16.6.1 实现目标 278
16.6.2 建立主窗体 279
16.6.3 程序相关代码 280
16.7 数据模块设计 281
16.8 程序设计与编码 282
16.8.1 配送申请管理设计 282
16.8.2 配送审核管理设计 288
16.8.3 配送开票管理设计 291
16.8.4 配送查询管理设计 296
16.8.5 系统登录程序设计 298
16.9 疑难问题分析解决 300
16.9.1 如何在TImageList中存储大图标 300
16.9.2 如何实现动态查询 301
16.9.3 如何去除重复行 301
16.9.4 动态创建窗体 302
16.9.5 如何实现配送开票查询 303
16.9.6 如何将表格中某些列设置为只读 304
16.10 程序调试及错误处理 305
16.10.1 程序调试 305
16.10.2 异常处理 307
16.11 程序设计清单 308
16.12 技术、经验总结 308
16.12.1 技术总结 308
16.12.2 经验总结 309
16.13 程序的打包与发行 309
第17章 Delphi 7在仓库管理系统中的应用 312
17.1 仓库管理系统概述 312
17.1.1 仓库管理系统简介 312
17.1.2 系统功能描述 312
17.2 系统调查 313
17.3 需求分析 313
17.4 系统设计 314
17.4.1 系统流程图 314
17.4.2 业务流程 315
17.5 数据库设计 315
17.5.1 数据库概念设计 315
17.5.2 数据库逻辑结构设计 315
17.5.3 数据字典 317
17.6 处理过程分析 317
17.6.1 商品入库处理过程分析 317
17.6.2 商品出库处理过程分析 318
17.7 主窗体设计 318
17.8 数据模块设计 319
17.9 程序设计与编码 319
17.9.1 商品入库管理设计 319
17.9.2 商品出库管理设计 326
17.9.3 商品库存查询设计 328
17.10 疑难问题分析解决 329
17.10.1 使用TADODataSet组件时应该注意的问题 329
17.10.2 双击DBGrid表格,如何显示当条数据详细信息 330
17.10.3 如何判断数据库中是否有相同字段的数据 331
17.10.4 判断进价、批发价、零售价是否输入合法 332
17.11 程序测试常见错误解决 332
17.12 程序设计清单 335
17.13 技术、经验总结 336
17.13.1 技术总结 336
17.13.2 经验总结 336
第18章 Delphi在销售管理系统中的应用 337
18.1 销售管理系统概述 337
18.1.1 开发背景 337
18.1.2 销售管理系统简介 337
18.1.3 系统功能描述 337
18.2 系统分析 338
18.2.1 系统规划 338
18.2.2 系统流程图 339
18.2.3 业务流程 339
18.3 数据库设计 339
18.3.1 数据库概念设计 339
18.3.2 数据库逻辑结构设计 340
18.4 主窗体设计 341
18.5 状态栏设计 342
18.6 数据模块设计 343
18.7 销售报表设计 343
18.8 程序设计与编码 346
18.8.1 商品销售管理设计 346
18.8.2 销售退货管理设计 352
18.8.3 客户订货管理设计 355
18.8.4 销售查询管理设计 358
18.9 疑难问题分析解决 360
18.9.1 如何防止单击TBitBtn按钮时关闭模式窗体 360
18.9.2 使用非数据控制组件显示和浏览数据 361
18.9.3 在编辑框中只允许输入数字 361
18.9.4 按Enter键控制焦点的移动 361
18.9.5 在销售商品时,实现订单销售 362
18.9.6 如何实现超期应收款查询 362
18.10 程序设计清单 362
18.11 技术、经验总结 363
18.11.1 技术总结 363
18.11.2 经验总结 364
18.12 系统的编译与发行 364
第19章 Delphi在工资管理系统中的应用 365
19.1 工资管理系统概述 365
19.1.1 系统任务 365
19.1.2 设计目标 365
19.2 需求分析 365
19.2.1 业务调查 365
19.2.2 系统规划 366
19.3 数据库设计 366
19.3.1 数据库概念设计 366
19.3.2 数据库逻辑结构设计 367
19.3.3 数据字典 368
19.4 处理过程分析 369
19.4.1 工资发放处理过程分析 369
19.4.2 工资调整处理过程分析 369
19.5 主窗体设计 369
19.6 菜单设计 370
19.7 数据模块设计 371
19.8 窗体模板设计 371
19.9 程序设计与编码 372
19.9.1 员工基本工资管理设计 372
19.9.2 员工浮动工资管理设计 377
19.9.3 工资发放管理设计 379
19.9.4 员工工资调整管理设计 382
19.10 疑难问题分析解决 386
19.10.1 使用TRVSystem组件编写报表 386
19.10.2 如何控制表格中焦点的移动 387
19.10.3 编写简洁、灵活的代码 387
19.10.4 如何限制表格中某列的输入 388
19.10.5 员工工资核算 388
19.10.6 查询上月余额 389
19.11 软件测试 389
19.12 程序设计清单 390
19.13 技术、经验总结 390
19.13.1 创建视图 390
19.13.2 经验总结 392
第20章 Delphi在人事管理系统中的应用 393
20.1 人事管理系统概述 393
20.1.1 开发背景及意义 393
20.1.2 系统目标 393
20.2 系统分析 393
20.2.1 系统规划 393
20.2.2 系统流程图 395
20.3 数据库设计 395
20.3.1 数据库概念设计 395
20.3.2 数据库逻辑结构设计 395
20.4 处理过程分析 396
20.4.1 人员档案处理过程分析 396
20.4.2 人员调动处理过程分析 397
20.5 主窗体设计 397
20.6 数据模块设计 398
20.7 程序设计与编码 398
20.7.1 员工信息管理设计 398
20.7.2 添加人员档案程序设计 399
20.7.3 修改人员档案程序设计 402
20.7.4 删除人员档案管理设计 407
20.7.5 员工调动管理设计 408
20.8 疑难问题分析解决 410
20.8.1 如何将数据表中的字段值添加到下拉列表框中 410
20.8.2 如何防止用户改变下拉列表框中的当前数据 412
20.8.3 隐藏窗体的标题栏 413
20.8.4 保存的实现方法探究 413
20.8.5 图片的切换 414
20.8.6 控制按钮是否可用 414
20.9 程序调试与错误处理 415
20.10 程序设计清单 416
20.11 技术、经验总结 417
20.11.1 技术总结 417
20.11.2 经验总结 418
20.12 程序的编译与发行 418
第21章 Delphi在客户管理系统中的应用 419
21.1 客户管理系统概述 419
21.1.1 客户管理系统简介 419
21.1.2 系统功能描述 419
21.2 系统分析 419
21.2.1 系统规划 419
21.2.2 系统流程图 421
21.2.3 业务流程 421
21.3 数据库设计 421
21.3.1 数据库概念设计 422
21.3.2 数据库逻辑结构设计 422
21.4 处理过程分析 423
21.4.1 客户基础信息处理过程分析 423
21.4.2 客户信息呼叫处理过程分析 424
21.5 主窗体设计 424
21.6 菜单设计 426
21.7 工具栏设计 427
21.8 数据模块设计 428
21.9 程序设计与编码 429
21.9.1 客户区域管理程序设计 429
21.9.2 客户级别管理程序设计 434
21.9.3 客户基础信息管理程序设计 437
21.9.4 客户信息呼叫管理程序设计 443
21.9.5 客户反馈查询管理程序设计 448
21.10 疑难问题分析解决 451
21.10.1 如何将TDBGrid中的内容居中显示 451
21.10.2 如何更改鼠标指针形状 452
21.10.3 如何在控件失去焦点时进行内容检查 452
21.10.4 如何防止向数据表中插入重复数据 452
21.10.5 在表格中输入商品数量,如何自动计算金额 453
21.10.6 利用掩码编辑控件格式化字符串 453
21.11 程序调试及错误处理 454
21.12 程序设计清单 457
21.13 技术、经验总结 457
21.13.1 技术总结 457
21.13.2 经验总结 458
第22章 Delphi在固定资产管理系统中的应用 459
22.1 固定资产管理系统概述 459
22.1.1 开发背景及意义 459
22.1.2 系统目标 459
22.2 系统分析 460
22.2.1 系统规划 460
22.2.2 系统流程图 460
22.2.3 业务流程 461
22.3 数据库设计 461
22.3.1 数据库概念设计 461
22.3.2 数据库逻辑结构设计 461
22.3.3 数据字典 462
22.4 处理过程分析 463
22.4.1 添加固定资产处理过程分析 463
22.4.2 计提折旧处理过程分析 463
22.5 主窗体设计 463
22.6 图像列表设计 464
22.7 数据模块设计 465
22.8 程序设计与编码 466
22.8.1 资产类别程序设计 466
22.8.2 添加固定资产程序设计 467
22.8.3 修改固定资产程序设计 471
22.8.4 计提折旧程序设计 474
22.8.5 数据备份程序设计 478
22.8.6 系统初始化程序设计 479
22.9 疑难问题分析解决 480
22.9.1 如何创建存储过程 480
22.9.2 数据还原的实现 481
22.9.3 查看SQL Server的备份文件 481
22.9.4 利用循环语句清空界面数据 482
22.9.5 固定资产基本概念 482
22.9.6 固定资产计算公式 483
22.10 程序测试 483
22.11 程序设计清单 484
22.12 技术、经验总结 485
22.12.1 技术总结 485
22.12.2 经验总结 486
22.13 系统的编译与发行 486
第23章 Delphi在财务凭证管理系统中的应用 487
23.1 财务凭证管理系统概述 487
23.1.1 财务凭证管理系统简介 487
23.1.2 系统功能描述 487
23.2 系统分析 487
23.2.1 系统规划 487
23.2.2 业务流程 488
23.3 数据库设计 489
23.3.1 数据库概念设计 489
23.3.2 数据库逻辑结构设计 489
23.4 处理过程分析 490
23.4.1 凭证录入处理过程分析 490
23.4.2 凭证审核处理过程分析 490
23.5 主窗体设计 490
23.6 数据模块设计 491
23.7 程序设计与编码 492
23.7.1 摘要管理程序设计 492
23.7.2 凭证录入程序设计 494
23.7.3 凭证审核程序设计 501
23.7.4 凭证过账程序设计 505
23.8 疑难问题分析解决 508
23.8.1 如何实现函数重载 508
23.8.2 如何解决两个整数乘积超出整数范围 508
23.8.3 如何向列表视图中添加选项 509
23.8.4 如何响应窗体的OnKeyDown事件 510
23.8.5 凭证录入的正确性检查 510
23.9 系统测试 510
23.10 程序设计清单 511
23.11 技术、经验总结 512
23.11.1 技术总结 512
23.11.2 经验总结 514