第 8 章 报表和标签的设计 1. 报表由数据源和布局两个基本部分组成。数据源是报表的数据来源,通常是数据库表, 也可以自由表、视图或查询等。报表布局定义了报表的打印形式。 2. 3 种创建报表的方法:使用报表向导、使用“快速报表”和使用“报表设计器”。 3. P179 表 8-1 报表常规布局类型 4. 报表文件的扩展名为.frx (.frt) 5. 利用命令方式启动报表设计器:MODIFY REPORT<报表文件名> 6. 首次启动报表设计器时,报表布局中只有 3 个带区:页标头、细节和页注脚。 7. P186 表 8-2 报表带区用途及添加方法 重点看表中前三项:标题、页标头、组标头。 8. 使用报表向导或“快速报表”创建报表时,已经指定了相关的表做数据源,不需要再设 置数据环境。在使用报表设计器创建一个空报表并直接设计报表时,才需要设置数据环境。 9. 利用域控件可以创建计算字段,显示表或视图中没有的数据。 10. 按照一个字段或由一个以上的字段组成的表达式进行分组以后,报表布局中就有了组 标头和组注脚带区,可以向这些带区中添加控件。 11. 为了保证正确分组,通常需要按分组表达式进行排序或索引,或者在数据环境中使用 视图、
查询作为数据源才能达到合理分组显示记录的目的。 12. Visual FoxPro 允许在报表内最多可以有 20 级数据分组。 13. 标签是一种特殊类型的报表,即为了满足专用纸张要求而设计的一种多列报表布局。 可以使用标签向导或标签设计器来创建标签,标签文件的扩展名为.lbx。 14. 在命令窗口中使用 “REPORT FROM 报表文件名 [PREVIEW]” 命令也可以打印或预览 指定的报表。 第 10 章 面向对象的程序设计 1. 面向对象的程序设计英文简写:OOP 2. 面向对象的程序
设计以对象及其数据结构为中心,而不是以过程和操作为中心。 3. 任何对象都有自己的属性和方法。 属性就是对象所具有的固有特征。 对象的方法就是 对象可以执行的动作或它的行动。VFP 窗口有显示和隐藏的 S how、Hide 方法等。 4. 类是对象的集合,而对象是类的实例。类还具有封装性、层次性、继承性的特征。 5. 重点看 P250【例 10-1】 6. VFP 基类有两种:容器类和控件类。 看表 10-1 和表 10-2(不用看列、工具栏、控 件、自定义、项目几项)。 7. 容器类可以添加其他的对象, 用户可以单独访问和处理容器类中的任一个对象。 例如 表单就是一个容器类,用户可以向表单中添加按钮、列表框、文本框等。容器类中还可以容 纳另一个容器类,例如可以把一个表单放到一个表单集中。 8. 事件是一种预先定义好的特定的动作,由用户或系统激活。VFP 基类的事件集合是由 系统预先定义好的,
是唯一的,不能由用户创建。在 VFP 中,可以激活时间的用户动作有按 键、单击鼠标或移动鼠标等。 9. VFP6 基类的事件分为七大类,它们是关于鼠标的事件、键盘的事件、改变控件内容 的时间、控件焦点的事件、表单的事件、数据环境事件以及其他事件。 10. 定义类的命令 DEFINE CLASS,看【例 10-3】 11. 想容器类中添加对象,看【例 10-4】,注意:DEFINE CLASS、ADD OBJECT 12. READ EVENTS 将启动 VFP 事件处理,建立事件循环,等待用户操作。而命令 CLEAR EVENTS 将停止 VFP 事件处理,使程序执行 READ EVENTS 下面的一条语句。 13. 编写方法和事件程序的代码必须遵循以下规则:
(1)在类定义中,可通过创建过程或函数向类中添加方法程序。 (2)VFP6 基类的事件集合是固定的,不允许扩充。 (3) 每个类都可识别固定的默认事件集合, 它的最小事件集为 Init、 Destroy 和 Error 事件。 (4)若类中创建的方法程序与某个类所能识别的事件重名,则当该事件发生时,同 名方法程序被执行。 14. 表 10-5:除 thisformset 外 15. 为控件编写事件代码必须遵循以下两条基本原则: (1) 每个对象只接收自己的事件, 容器不处理与所包含