具体描述
内容提要
中文版Visual FoxPro5.0是微软公司于1997年推出的优秀的数据库开发平台。本书作
者将根据自己的数据库开发经验,以丰富、详细而实用的实例程序、各种特殊的设计技巧,详尽
地介绍中文版Visual FoxPro5.0的可视编程环境和面向对象的开发技术。
本书不同于其它中译本,它完全以适合我国读者口味的方式组织整个章节,可读性强,示
例新颖实用,具有一定代表性,而且指明原系统存在的几个“bug”。本书不论是对初学者,还是
对数据库开发专家,不论是对FoxPro2.5用户,还是对Visual FoxPro3.0用户,都具有很强的
参考价值。
作者简介
目录信息
第一章 Visual FoxPro5.0概述
1.1完善的数据库引擎
1.1.1引入了数据辞典
1.1.2增强的数据库管理
1.1.3加强数据完整性验证机制
1.1.4扩充的数据类型
1.1.5数据环境、表和关联成为对象
1.1.6使用游离视图增强连接能力
1.2引进了先进的程序设计技术
1.2.1面向对象编程
1.2.2可视化编程
1.3众多强大的设计工具
1.3.1增强的表单设计器和代码编辑器
1.3.2ActiveX控件提供了强大的外援
1.3.3数据库设计器和表设计器
1.3.4增强的查询及视图设计
1.3.5类设计器和类浏览
1.3.6加强了的向导程序
1.3.7已改善的调试工具
1.3.8应用程序组件的实例
第二章 进入Visual FoxPro5.0
2.1Visual FoxPro5.0的安装
2.1.1安装Visual FoxPro5.0的环境要求
2.1.2安装Visual FoxPr05.0
2.1.3更新Visual FoxPr03.0的配置文件
2.2Visual F0xPro5.0集成开发环境
2.2.1启动Visual FoxPro5.0
2.2.2退出Visual FoxPro5.0
2.2.3Visual FoxPro5.0集成开发环境
2.3Visual FoxPro5.0参数设置
2.3.1多个应用程序主窗口属性的协调
2.3.2临时文件及其存放
2.3.3参数配置文件CONFIG.FPW
2.4字体的使用
2.4.1字 体
2.4.2FoxFont字体
2.4.3等宽字体和比例字体
2.4.4确定可使用的字体
2.4.5磅和字号的换算
2.5本章小结
第三章 系统菜单和工具栏
3.1控制菜单
3.2“文件”菜单
3.3“编辑”菜单
3.4“格式”菜单
3.5“工具”菜单
3.5.1调试器
3.6“程序”菜单
3.7“窗口”菜单
3.8“帮助”菜单
3.9“显示”菜单及工具栏
3.10本章小结
第四章 数据库和表设计
4.1有关数据库、表的基本概念
4.1.1基本概念
4.1.2字段的类型
4.1.3索引标记类型
4.1.4数据库的完整性规则
4.1.5存储过程
4.2数据库设计器和表设计器
4.2.1数据库设计器
4.2.2“数据库”菜单
4.2.3数据库设计工具栏
4.3用表设计器添加一个新表
4.3.1字段页
4.3.2字段级完整性验证规则
4.3.3表 页
4.3.4记录级完整性验证规则
4.3.5索引页
4.3.6数据表间的关联
4.3.7关联表级参照完整性验证规则
4.3.8建立一个自由表添加到数据库中
4.4表记录数据的操作
4.4.1“表”菜单
4.4.2记录的追加及“虚记录”
4.4.3 Browse窗口操作
4.5用命令操作数据库和表
4.5.1数据库和表的建立
4.5.2数据库和表的打开与关闭
4.5.3相关表和自由表的相互转换
4.5.4显示当前数据库及其表的信息
4.5.5指定当前数据库
4.6存储过程的使用
4.6.1存储过程的创建、修改和删除
4.6.2使用远程服务器的存储过程
4.6.3调用服务器存储过程返回多个结果集
4.6.4服务器处理结果集和错误
4.7本章小结
第五章 表单设计器
5.1面向对象编程
5.1.1对象和面向对象编程
5.1.2屏幕界面的面向对象编程步骤
5.2表单设计器环境
5.2.1启动表单设计器
5.2.2表单设计窗口
5.2.3表 单
5.2.4“表单”菜单和扩充的“显示”菜单
5.2.5表单控件
5.2.6表单工具栏
5.2.7属性窗口
5.2.8代码编辑器
5.2.9数据环境窗口
5.3屏幕控件
5.3.1表单的基本控件分类
5.3.2控件的使用
5.4对 象
5.4.1对象属性
5.4.2对象事件
5.4.3对象方法
5.4.4设计对象的事件和方法处理代码的规则
5.4.5ThisForm和This对象
5.5设计第一个实例
5.5.1设计用户界面
5.5.2设置属性
5.5.3在事件过程中添加代码
5.6实例程序的保存和运行
5.6.1保存实例程序
5.6.2运行实例程序
5.6.3事件的响应
5.7本章小结
第六章 基本屏幕控件的使用
6.1表 单
6.1.1表单具有的属性
6.1.2表单响应的事件
6.1.3表单支持的方法
6.1.4表单的应用
6.1.5特殊表单――主窗口的控制
6.2直线、形状、标签和图像控件
6.2.1直 线
6.2.2形 状
6.2.3标 签
6.2.4图 像
6.3文本框、编辑框和旋转器
6.3.1文本框
6.3.2编辑框
6.3.3旋转器
6.4命令按钮和按钮组
6.4.1命令按钮
6.4.2按钮组
6.5检查框和选项框
6.5.1检查框
6.5.2选项框
6.6列表框和组合列表框
6.6.1列表框
6.6.2组合列表框
6.6.3列表框和组合列表框选项数据来源
6.7生成器工具
6.8本章小结
第七章 页框架、网格和定时器
7.1页框架
7.1.1页框架控件和页控件
7.1.2页框架中页的引用
7.1.3页框架和页的属性、事件和方法
7.1.4“工具/选项”菜单项的使用
7.1.5在页中放置公共控件和私有控件
7.1.6页突的控制
7.1.7页框架中页数的动态调整
7.2网 格
7.2.1网格、列、栏头
7.2.2网格列和栏头的属性、事件和方法
7.2.3对网格中每一个元素进行控制
7.3定时器
7.3.1定时器
7.3.2定时器的属性、事件和方法
7.3.3数字计时器
7.3.4计时秒表
7.3.5定时激活一个任务
7.4本章小结
第八章 ActiveX控件及其使用
8.1OLE容器控件和OLE绑定控件
8.1.1OLE容器控件
8.1.2OLE绑定型控件
8.1.3通用型字段使用OLE对象
8.2ActiveX控件
8.3影视播放器功能简介
8.4影视播放器表单设计
8.4.1建立表单及其属性
8.4.2设置表单的事件处理代码
8.4.3创建新方法程序
8.4.4设置播放区及控制面板的控件和属性
8.4.5添加ActiveX控件
8.4.6设置控制面板中控件的事件
8.4.7影视播放器的运行
8.5外部Windows32位函数的使用
8.6本章小结
第九章 程序设计语言的使用
9.1MessageBox()函数
9.1.1对话框的显示信息
9.1.2对话框类型
9.1.3对话框标题条文本
9.1.4对话框返回值信息
9.2空值(NULL)及其应用
9.2.1何谓空值
9.2.2ISNULL()、EMPTY()和ISBLANK()函数
9.2.3在数据表中的空值支持和置空白操作
9.2.4空值的应用
9.3过程和函数
9.3.1过程或函数的代码形式
9.3.2全局变量、局部变量和本地变量
9.3.3过程或函数的调用
9.3.4过程和函数的参数
9.4位操作
9.4.1按位与(AND)操作
9.4.2按位非(NOT)操作
9.4.3按位或(OR)操作
9.4.4按位异或(XOR)操作
9.4.5按位置零和置1操作
9.4.6按位左移和右移操作
9.4.7位测试操作BITTEST()函数
9.4.8位操作在加密中的作用
9.4.9扩充位操作函数
9.5鼠标事件
9.5.1鼠标位置
9.5.2按键状态
9.5.3换档状态
9.6事务处理
9.6.1事务处理机制
9.6.2事务处理的规则
9.6.3事务处理不支持的命令和函数
9.6.4事务处理设计实例
9.7本章小结
第十章 图形处理技术
10.1控件的修饰
10.1.1图像的装入
10.1.2控件的动态调整
10.2绘图环境设置
10.2.1刻度模式
10.2.2背景色和前景色
10.2.3画笔的模式、风格和宽度
10.2.4填充色和填充风格
10.3绘 图
10.3.1清 除
10.3.2显示文本
10.3.3画 点
10.3.4直 线
10.3.5方 框
10.3.6画圆和椭圆
10.4彩色世界
10.4.1调色板
10.4.2定制颜色调色板
10.4.3RGB函数和颜色值
10.5一个基于函数绘图的范例
10.5.1数据表结构及其内容
10.5.2建立表单集
10.5.3建立绘图过程
10.5.4为表单集建立新方法
10.5.5建立事件
10.5.6运行程序绘图
10.6程序控制Ms Graph图形的显示过程
10.6.1图形控制接口
10.6.2Ms Graph图形控制实例程序的设计
10.7本章小结
第十一章 查询和视图设计器、菜单设计器
11.1查询和视图设计器
11.1.1进入查询和视图设计器
11.1.2查询工具栏和视图工具栏
11.1.3“查询”菜单和“显示”菜单
11.1.4字段页
11.1.5联接页
11.1.6筛选页
11.1.7排序依据页
11.1.8分组依据页
11.1.9更新条件页
11.1.10杂项页
11.2菜单设计器和快捷菜单的设计
11.2.1菜单系统结构和菜单事件驱动机制
11.2.2菜单设计器
11.2.3“菜单”项菜单和“显示”项菜单
11.2.4用户菜单系统的创建步骤
11.2.5菜单系统的总体计划
11.2.6设计菜单和子菜单
11.2.7为菜单系统指派任务
11.2.8建立初始化代码和清理代码
11.2.9菜单选项的开关设计
11.2.10菜单系统的定制
11.2.11创建菜单系统的注意事项
11.2.12菜单的保存和菜单程序代码的生成
11.2.13菜单系统的控制
11.2.14普通菜单、顶级菜单和快捷菜单
11.2.15利用数组建立动态快捷菜单
11.3本章小结
第十二章 报表设计器
12.1报表设计器
12.1.1报表设计器窗口及其分区
12.1.2打开报表设计器
12.1.3“报表”菜单
12.1.4报表控件工具栏
12.1.5设置数据环境
12.1.6快速制表
12.2报表对象设计
12.2.1设置报表对象
12.2.2设置表格线和圆
12.2.3备注字段的处理
12.3页面设置
12.3.1页面设置
12.3.2报表每页打印的记录数控制
12.3.3报表分组
12.3.4多列蛇型栏报告的生成
12.3.5如何添加“承接上页”标记
12.3.6空行不打印
12.3.7建立报表样板
12.4报表变量的使用
12.5报表预览和输出
12.5.1报表预览和预览工具栏
12.5.2报表程序的运行
12.5.3报表的满页打印和有效区域打印
12.6正确设置打印环境
12.7本章小结
第十三章 向导和项目管理
13.1向 导
13.1.1表单向导
13.1.2一对多表单向导及表单向导中的“BUG”
13.1.3表向导
13.1.4报表向导
13.1.5分组总计报表向导
13.1.6一对多报表向导
13.1.7标签向导
13.1.8查询向导
13.1.9图形向导
13.1.10文档向导和文档向导的定制
13.1.11安装向导
13.1.12应用程序向导
13.1.13WWW搜索页向导
13.2项目管理器
13.2.1进入项目管理器
13.2.2“项目”菜单
13.2.3项目管理器中的按钮使用
13.2.4项目的扩展或压缩显示及双击操作
13.2.5项目管理器窗口的压缩和扩展显示及码放
13.3本章小结
第十四章 定制联机帮助系统
14.1帮助系统及其结构
14.1.1帮助驱动程序和帮助文件
14.1.2帮助窗口的结构
14.1.3帮助系统提供的帮助方式
14.2帮助系统的设计方法
14.2.1帮助系统的需求和规范
14.2.2确定帮助系统的层次结构
14.2.3帮助主题文件的编写
14.2.4帮助文件的生成和调用
14.3编制帮助主题文件脚本
14.3.1选择帮助主题文件编辑器
14.3.2帮助主题文件脚本编码
14.4构筑一个好的帮助项目文件
14.4.1帮助项目文件的格式
14.4.2帮助项目文件的节的使用
14.5帮助副窗口和超图的使用
14.5.1帮助副窗口的使用
14.5.2定义副窗口
14.5.3引用副窗口
14.5.4超图的创建
14.5.5超图的使用
14.6帮助宏指令的使用
14.6.1指令的引用方式和编辑规则
14.6.2常用的帮助宏指令
14.7建立VFP5.0应用的上下文敏感帮助
14.7.1帮助主题的上下文号及其分配
14.7.2在VFP5.0中实现上下文敏感帮助
14.8用Word宏建立帮助主题文件编辑工具栏
14.8.1Word的遗憾
14.8.2用宏提供解决方案
14.8.3帮助编辑工具栏的加载
14.9本章小结
附录一 Visual FoxPro系统容量
表文件及索引文件
字段的特征
内存变量与数组
程序和过程文件
报表设计器的容量
其他的容量
附录二 数据表文件的结构
表头记录的结构
字段子记录结构
附录三 表文件的表结构
数据库文件(.DBC)的表结构
表单文件(SCX)和可视类库(VCX)文件的表结构
菜单文件(MNX)的表结构
项目文件(PJX)的表结构
报表文件(FRX)和标签文件(LBL)的表结构
备注文件的结构(.FPT)
备注头记录
备注块标头与备注文本
索引文件的结构
单索引文件的结构(.IDX)
压缩索引文件的结构
复合索引文件的结构(.CDX)
宏文件的格式(.FKY)
· · · · · · (收起)
读后感
用户评价
我拿到这本书的时候,主要是被它的“实战性”所吸引。很多技术书籍,尤其是讲应用开发的,要么过于理论化,要么代码示例太简单。而这本书,给我的感觉是它真的在一步步教你如何“做东西”。从最初的项目搭建,到数据字典的定义,再到具体的业务逻辑实现,每个阶段都有非常详细的步骤和讲解。特别是书中一些关于“报表生成”和“数据导入导出”的章节,给我的印象非常深刻。当时做报表,很多都是要手动去绘制,去定义格式,而书中给出的那些方法,虽然是FoxPro特有的,但其背后的“自动化”和“批量处理”的思想,是让我觉得很有启发的地方。我记得有个章节,是关于如何利用FoxPro的命令窗口进行快速数据处理和调试,这种“交互式”的开发方式,对于快速验证想法、解决问题非常有用。而且,书中还包含了一些关于“数据库维护”和“错误处理”的章节,这在实际的项目开发中是至关重要的。它不是简单地告诉你如何写代码,而是告诉你如何写出“健壮”的代码,如何去应对可能出现的问题。即使现在我们有了更成熟的错误处理机制,但理解这些早期书籍中关于“预防”和“补救”的思路,依然有益。这本书的价值,在于它教会了你如何将一个复杂的应用,分解成一个个可管理的小模块,并逐一攻克。
这本书的语言风格,对我来说,是一种独特的吸引力。它没有现代技术书籍那种花哨的排版和大量的图示,而是以一种非常朴实、严谨的文字,去阐述每一个技术点。读起来,就像是在跟一位经验丰富的老前辈在交流。书中对于一些技术细节的解释,非常到位。比如,在讲解文件操作时,它会详细说明不同的文件模式(如共享模式、独占模式)对多用户访问的影响,以及如何通过锁机制来保证数据的一致性。这种对底层机制的深入剖析,是很多浮于表面的技术文章所欠缺的。而且,书中还包含了一些关于“性能调优”和“系统优化”的经验之谈,这些内容往往是作者在实际开发中摸索出来的宝贵财富。虽然书中涉及的很多优化技巧,可能在现代硬件和操作系统下已经不那么关键,但其背后的“分析问题、定位瓶颈、寻找解决方案”的思路,是依然具有借鉴意义的。让我印象深刻的是,书中对“错误排查”的讲解,不是简单地告诉你如何看错误代码,而是教你如何一步步地去跟踪程序的执行流程,如何通过一些辅助工具来定位问题。这种“侦探式”的排错方法,对于任何领域的开发者来说,都是一项必备技能。总而言之,这本书的价值,在于它提供了一种“深入骨髓”的技术解读,让你不仅知其然,更知其所以然。
不得不说,这本书在对概念的阐述上,确实下了功夫。我特别欣赏其中关于“数据库设计基础”的那几章,尽管是用FoxPro的语境来讲解,但其逻辑和原则是普适的。书中没有急于抛出大量的API函数,而是先花了大篇幅去梳理什么是表,什么是字段,如何进行数据规范化,以及各种关系(一对一、一对多、多对多)的实际应用场景。这种“先理论,后实践”的教学方式,对于初学者来说,能够打下非常扎实的基础。我记得当时有一个章节,详细讲解了如何通过索引来优化查询性能,并且通过具体的例子,对比了有索引和无索引时的查询速度差异,这种直观的呈现方式,比单纯背诵一些性能优化技巧要有效得多。而且,书中还涉及了一些关于用户界面设计的早期理念,虽然用的是FoxPro的控件,但对于如何组织信息、如何设计用户交互流程,都有相当的指导意义。虽然现在我们有了更强大的UI框架和更丰富的视觉元素,但那些关于“易用性”和“用户体验”的朴素原则,这本书依然在传递。我个人认为,对于想要深入理解数据库应用开发原理,或者想回顾软件开发“黄金时代”的开发者而言,这本书的价值远不止于它所介绍的那门具体技术。它提供了一种“慢下来”的学习方式,让读者有时间去消化和理解每一个概念背后的逻辑,而不是被快速迭代的技术潮流推着走。
这本书的封面设计相当有年代感,让人瞬间回忆起九十年代末、本世纪初那段计算机应用开发的黄金时期。虽然我拿到这本书的时候,FoxPro 5.0早已不是最新的技术,但恰恰是这份“过时”的魅力,吸引了我。我想,对于很多跟我一样,在那个年代摸爬滚打过来的开发者来说,这本书或许承载着一份特殊的情怀。当我翻开它,看到那些熟悉的界面截图和代码示例,仿佛一下子回到了那个需要手动编写大量代码,但逻辑却异常清晰的时代。虽然这本书的篇幅不小,内容也相当详尽,但我相信它不仅仅是记录了一门技术,更是一种开发理念的传承。比如,书中对数据结构的分析,对文件I/O的精妙处理,以及对事件驱动模型初探的那些篇幅,即使在今天看来,依然蕴含着不少值得我们借鉴的智慧。很多现代开发工具虽然提供了更高级的抽象,但其底层原理和很多设计思想,都能在这些早期技术书籍中找到影子。我之所以选择阅读这本书,并非是为了重拾FoxPro开发,更多的是想通过阅读这样一本“经典”的技术书籍,去理解软件开发的一些基本规律和演进过程,培养一种更深层次的、不受限于具体工具的思考能力。那些详细的案例分析,那些一步步引导读者构建应用程序的过程,对于理解“如何将一个需求转化为可执行的代码”这一根本问题,有着不可替代的价值。它就像一个老物件,虽然不一定能满足所有现代需求,但它的历史价值和所承载的工艺,本身就足以令人着迷。
这本书在对“过程”的呈现上,可以说是淋漓尽致。它不像某些书籍那样,上来就给你一个完美无缺的最终成品,而是非常细致地展现了从“无”到“有”的整个过程。比如,在讲解某个功能模块时,书中会先介绍这个功能的需求背景,然后分析实现这个功能的几种可能方案,再详细阐述选择某种方案的原因,最后一步步给出代码实现。这种“决策过程”的展示,对于开发者来说,是非常宝贵的学习材料。它让你明白,优秀的代码和应用,不仅仅是写出来的,更是“思考”出来的。我尤其喜欢书中关于“模块化开发”和“代码复用”的探讨。虽然FoxPro的面向对象能力相对有限,但书中依然在努力地去构建可维护、可扩展的代码结构。它通过一些示例,展示了如何将常用的功能封装成子程序或函数,然后在不同的地方调用,以避免重复劳动。这种“抽象”和“封装”的思想,对于任何编程语言和开发平台都是核心。即使这本书所使用的技术已经过时,但它所传达的“如何更好地组织代码,使之易于理解和维护”的理念,却是永恒的。阅读这本书,让我对“好的工程实践”有了更深层次的理解,不仅仅是关注“功能实现”,更关注“如何实现”以及“实现得有多好”。