第六课:创建查询
第一节:介绍查询
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
器
第二节:建立多
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
查询
第三节:建立交叉表查询
第四节:本课小结
第一节 介绍查询设计器
我们在第三课中已经学习了利用查询向导创建查询,用鼠标点一点,几乎不用多少输入就能很快建立一个漂亮的查询。但是在很多时候,查询向导不能满足我们需要。这就要用到它的“幕后英雄”-- 查询设计器,查询设计器可以方便灵活地生成各种查询,这一节我们一起去拜访拜访“他”。
启动“查询设计器”可以在“文件”菜单中单击“新建”,选择“查询”并按“新建查询”按钮。如果当前没有数据库或表打开,则显示“打开”窗口以打开查询的表,再显示“添加表或视图”;如果当前已有数据库打开,则显示直接显示“添加表或视图”。
在“数据库中表”中显示当前数据库中的所有表以供添加。
如果不是基于当前数据库表查询,则单击“其他”按钮,以选择合适的表。
如果添加表在“选定”单选框中选择“表”,如果想添加视图,则选择“视图”。
这里我们单击“职工表”并选择“添加”按钮,则可以看到职工表已添加到“查询设计器”中了。
重复这样的操作,就可以将多个表添加到查询设计器中。单击“添加表和视图”中的“关闭”按钮,将其关闭,查询设计器窗口即成为当前窗口。
这个窗口是不是很熟悉,它和我们上一课学习的视图设计器很相似。但是我们仔细看一下就会发现,查询设计器比视图设计器少了一个“更新条件”选项卡,(如上图),而在工具栏中,查询设计器则多了一项 (查询去向) 按钮(如下图)。
(作为对照)
查询设计器工具栏的其他几个按钮的样式和视图设计器的一样,其含义也大致相同,只是操作的对象不同(一个是查询,一个是视图)。这里只介绍“查询去向”按钮,其余不做介绍了。
前面几课中,我们看到了,实现一种操作,可以通过几个不同的途径,例如:从系统菜单、从快捷菜单、从相应工具栏、从项目管理器都可以实现。常用哪一种或哪几种方式,则根据个人的习惯。
当我们单击工具栏上的“查询去向”()按钮,或从“查询”菜单中选择“查询去向”,或单击右键并在快捷菜单中选择“输出设置”都可以出现下面的“查询去向”对话框。
它有七个不同的选项,允许将查询结果传送给七个不同的输出设备。选择不同的按钮,其窗口中的选项也不一样。上图中是默认的“浏览”,即将查询结果送到“浏览”窗口中显示,以进行检查和编辑。
当单击“临时表”时,窗口如下:
以指定的名称把查询结果存贮于临时表中。此临时表只读,并在“数据工作期”窗口中出现。临时表可用于浏览,生成
报表
企业所得税申报表下载财务会计报表下载斯维尔报表下载外贸周报表下载关联申报表下载
或其他目的。当关闭这个表时,查询结果随之消失。
当单击“表”时,窗口如下:
用指定的文件名,将查询结果存为(.dbf)表文件。“表名”选项用来指定表的名称。既可以在文本框中键入名称,也可以使用三点按钮来选择一个已有的、要覆盖的表。
单击“图形”按钮,产生可由 Microsoft Graph处理的图形。在设置GENGRAPH之后才可用。
单击“屏幕”按钮,使查询结果在活动输出窗口中显示。通过选择“次级输出”中的单选按钮可以在把查询结果输出到屏幕的同时输出到打印机或文本文件。“选项”复选框可以设置是否输出列标头和是否在屏幕之间暂停。如下图:
单击“报表”按钮,将查询结果按某一报表布局显示。使用此选项必须先设置报表文件 (.frx),来容纳查询中的输出字段。如下图:
在“打开报表”文本框中输入报表名,或单击“打开报表”按钮选择报表名,或者单击右侧的报表向导按钮进入报表向导,产生一个报表。“次级输出”同“屏幕”。
如果选择“页面预览”将在“页面预览”窗口中显示输出结果。
如果选择“活动控件台”将在活动输出窗口中显示输出结果。
如果选择“报告之前释放页”,将在报表开始之前打印一空白页,以在打印机上隔开文档
如果选择“仅总结信息”,将不打印细节信息。所生成的报表包括标头、注脚、总计信息等等,但不包括细节信息。
单击“标签”按钮,将会将查询结果输出到一个标签文件(.LBX)。使用此选项必须先设置标签文件,来容纳查询中的输出字段。其选项前面几个去向中已介绍。如下图:
其中的选项卡由于在“视图设计器”中已介绍,这里不再赘述了。
前面在“向导”一课中已提到,查询保存在扩展名为.QPR的文件中。以后使用此查询在命令窗口中输入:DO 查询名.QPR 即可。
第二节 建立多表查询
下面几节中,我们一起来建立一个几个查询。由于建立单表查询及分组查询的方法和在视图设计器中建立相应视图类似,而且比较简单,不再举例了。本节建立一个多表查询。
2.1 为举例作准备--建立“图
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
订货库”
为了以后举例的方便,我们再建立一个“图书订货库”,它包括图书表、订货表、客户表三个表。分别将图书表.书名、客户表.客户名称设置为主索引,将订货表.书名和客户名称设置为普通索引,并且在各表之间建立关联。如下图:
在图书表中输入数据(所有数据为随意设置,不做实际参考),如下图:
在订货表中输入数据,如下图:
在客户表中输入内容,如下图:
2.2 建立多表查询
我们建立这个多表查询的目的是查询“客户名称”为新华书店的订货信息。
我们看到,图书订货数据库中图书表和客户表是多对多关系,即一种书可由多个客户订购,一个客户可订购多种书。而图书表和订货表、客户表和订货表都是一对多关系。
我们打开“文件”菜单,单击“新建”,选择“查询”并单击“新件文件”按钮,进入查询设计器。在“添加表或视图”窗口中依次将“图书订货库”的图书表、订货表和客户表加入到表设计器。如下图:
由于我们在“图书订货库”中建立了表间永久关系,因此在添加的表之间自动产生关联。
注意:如果我们添加了图书表后接着添加客户表,由于我们在数据库中未建立两表的直接关联,便会弹出一个“联接条件”对话框,要求加入联接条件,我们不需要这两表建立直接关联,按“取消”按钮即可。如下图:
我们需要了解的项目有客户名称、订购的书名、每本书的定价、订货数量、每种书的预付款总额、客户联系电话,联系人等。因此我们在“字段”选项卡中选择加入相应的字段。
其中的每种书预付款总额没有与之相应的字段,需要在“函数和表达式”文本框中建立。单击文本框右侧的三点按钮,进入“表达式设计器”,通过选择或输入,在“表达式”框中建立表达式“图书表.定价*订货表.订货数量*0.75",其中的0.75指当一次性交清款,将按75折给予优惠。如下图:
按“确定”按钮关闭表达式生成器。这时在查询设计器中的“表达式和函数”文本框中出现刚才建立的表达式,按“添加”按钮,将表达式加入“选定字段”,并用垂直双向箭头调整字段输出的顺序。如下图:
在“联接”选项卡中我们取默认的内部联接。由于要查询的是各表之间的匹配记录,因此在为各表间的联接都要为内部联接。如下图:
在“筛选”选项卡中设置筛选条件。一种条件可以有几种表示方法,如何设置根据个人习惯。筛选条件和上面的联接条件类似,两者都是先比较值,然后输出满足条件的记录。不同的是两者比较的对象,联接条件是将一个表的字段值与另一个表的字段值相比较,而筛选条件则是字段值与筛选值(实例文本)相比较。这里我们选择、输入:订货表.客户名称=新华书店
我们希望按照预付款数额由小到大排列,因此我们从“选定字段”中将表达式添加到“排序条件”框中。如下图:
我们不需要分组,“分组依据”选项卡不设置。“杂项”取默认值。
这样,基于“图书订货库”的一个查询就完成了。
单击鼠标右键,在快捷菜单中选取“运行查询”,就会在默认的“浏览”窗口中看到我们查询的结果,如下图:
和输出到“浏览”窗口类似,如果我们选择“屏幕”则会将查询结果显示在屏幕上,下图为屏幕的一部分:
如果我们在“查询去向”中选择“临时表”,并在其文本框中输入“xhsd”作为表名,则在快捷菜单中“运行查询”时,就会将查询结果送到名为 xhsd 的临时表中。从“窗口”菜单中单击“数据工作期”,则会看到,在“数据工作期”窗口中,出现了 xhsd 的表名,双击它可以从浏览窗口中打开该表,同上图。数据工作期窗口如下图:
如果我们在“查询去向”中选择“表”,并在其文本框中输入“ls”,则当我们运行查询后,查询结果就送到ls.dbf表中,用来进行各种操作。从“打开”窗口就可看到出现了 ls.dbf 的表名。如下图:
和选择“表”类似,如果选择“报表”或“标签”,会将这次查询的结果送到指定的报表和标签中去。
选择“图形”的情况我们在下节中介绍。
我们在选择查询去向后将查询保存在“新华书店.QPR”中。
第三节 建立交叉表查询
我们在实际工作中常用到下面的一类表,
系 所
教授
副教授
讲师
助教
中文系
86.00
85.12
76.23
85.00
历史系
85.00
79.36
78.25
86.58
材料学院
95.00
86.78
80.31
88.56
教科所
78.69
90.12
86.13
79.98
这个表左边第一列是不同系所,其右边各列的第一行是不同技术职务,其余是平均考核成绩。可见这个表反映了各系所不同技术职务人员的平均考核成绩。
这样由左边、上边两个标头和右下角交叉数据构成的表我们称之为“交叉表”。这一节我们分别用查询设计器和查询向导建立交叉表查询。
3.1 用查询设计器建立交叉表查询
打开“查询设计器”,添加“职工表”。
建立交叉表只能取三个字段,且其中一个是数值型字段作交叉数据,另两个是字符型字段,一个作为行标头,一个作为列标头。
在“字段”选项卡中选取“所在部门”、“技术职务”二个字段添加到“选定字段”框中。从“表达式和函数”右侧的“表达式生成器”中生成平均成绩表达式:AVG(职工表.考核成绩),并将它也添加到选定字段中。如下图:
在“杂项”选项卡中只有在前面选定的字段为三个时,“交叉数据表”才有效,我们选择此复选框。如下图:
这时我们发现,“分组依据”选项卡中的“分组字段”和“排序”选项卡中的“排序条件”都已自行设置好,为“职工表.所在部门”和“职工表.技术职务”。如下图:
而且,我们看到其中的设置项都为暗灰色,表明不可设置。这是因为在“杂项”中选择了交叉表查询,前面的几个选项卡中的必需信息都自动设置好,不能再行设置。如果想修改,则须去掉“杂项”中的“交叉表数据”复选框。
一个简单的交叉表就这样完成了。
在快捷菜单中单击“运行查询”,我们可以在“浏览”窗口中看到查询结果,如下图:
3.2 用查询向导建立交叉表查询
下面我们用查询向导建立上面举例的查询,并建立一个统计技术职务人员在各部门的分布情况的查询。
打开“文件”菜单,单击“新建”。
在“新建”窗口中选择“查询”并单击“向导”。
在向导选取中单击“交叉表向导”。按“确定”进入“步骤1-字段选取”。
我们选取“所在部门”、“技术职务”“考核成绩”。这一步无法建立平均成绩的表达式。按“下一步”按钮,进入“步骤2-定义布局”,如下图:
在这一步里,我们想将“技术职务”字段的内容作为每列的标头,将“所在部门”字段的内容作为每行的标头。因此,我们单击“所在部门”字段,并将它拖动到“行”空白区放开,这时空白区被灰色填充且显示“所在部门”。同样,我们将“技术职务”字段拖动到“列”空白区,将“考核成绩”字段拖动到“数据”空白区。做完这些操作后,“下一步”按钮将成为可选按钮,单击它进入“步骤3-加入总结信息”。
通过从“总结”和“分类汇总”区域选择合适的单选按钮,可以添加一个包含总结信息和小计的列。总和将出现在交叉表查询结果中的最右列内。我们在“总结”框内选择“平均值”,它相当于“AVG(职工表.考核成绩)”,在“分类汇总”框内选择“无”。单击“下一步”按钮进入“步骤4-完成”。
“显示NULL值”指在无数据处显示NULL。使用NULL 值是为了说明这样一种情况:在字段或记录里的信息目前还无法得到。例如,如果一名雇员的保健津贴或税收状况在填写记录时还不清楚,那么,与其存储一个可能产生歧义的零或空格,则不如在字段中存储NULL值,直到存入有实际意义的信息为止。这里,我们去掉选择,即不显示NULL值。我们按“预览”按钮可以看到和上面用查询设计器建立的查询完全一样。
如果我们在“步骤3-加入总结信息”里选择“计数”和“数据求和”,如下图:
则完成的查询如下图:
我们可以看到,在最后一列出现了一个“总和”的列,它将每行的数据进行求和(这是上步“数据求和”的结果)。而且,数据区内不再显示考核成绩,而是显示人数(这是上步“计数”的结果)。这个查询显示了技术职务人员在各部门的分布情况。
从上面的例子,我们看到建立交叉表有时用查询设计器比较方便,有时用查询向导比较方便。例如,在需要“总和”数据时,查询设计器不易实现,用查询向导则易于实现;而在建立如“图书表.定价*订货表.订货数量*0.75”的表达式数据时,则正好相反。
第四节 本课小结
由于在上一课里我们比较详细地介绍了视图设计器,本课中查询设计器和视图设计器相同的选项和内容未再介绍,因此内容相对较少。
在这一课里我们介绍了查询设计器。它和视图设计器的主要不同在于它少了一个“更新条件”选项卡,而在菜单和工具栏中多了一个“查询去向”选项。两个设计器象孪生姊妹,不但外表相象,建立视图和建立查询的过程和方法也很相象。应注意两者比较着进行学习。
举例说明了如何利用查询设计器及查询向导建立多表查询、交叉表查询。建立多表查询时,要注意正确建立表间关联。交叉表和“查询去向”一样,也是查询的一个鲜明的特征。建立交叉表时,不要忘记在有些功能在查询向导中实现可能更方便一些。
我们学习的查询只是对常量进行的查询,在基础上,我们还可以建立一个动态查询。但动态查询不能单独运行,其顺利运行需要一定的环境,我们将在熟悉了表单以后再介绍。
第七课 设计报表和标签
通过上面的学习,我们已经能够根据需要从对数据库中检索出所要查找的信息了。进行信息查询检索最终要输出处理结果。处理结果可以输出到屏幕上,但很多时候也需要打印出来。屏幕尺寸大小有限并且不能永久保存处理结果,而数据通过打印机输出到书面上则可以进行永久保存及分析、报送。处理结果通过打印机输出到书面上就是报表和标签,它们是上一课学习的“查询去向”中的重要去向。这一课我们将介绍报表设计器和标签设计器,并利用它们来设计一定样式的报表和标签。
本课目录:
第一节 进一步学习报表向导
第七节 定制布局 完善报表
第二节 快速制作报表
第八节 使用变量及预览、打印报表
第三节 报表设计器及相关菜单、工具栏
第九节 设计一个报表
第四节 计划、创建报表布局
第十节 介绍标签设计器
第五节 添加报表控件
第十一节 本课小结
第六节 报表数据分组
第一节 进一步学习报表向导
前面学习了报表向导中的“报表向导”来建立了一个简单的报表,这一节我们用两个例子来学习报表向导的其他功能,以加深对将要学习的报表设计器的理解。
1.1 分组报表
从“文件”菜单中选择“新建”,选择报表并单击“向导”,进入“向导选取”对话框,在其中选择“报表向导”。按“确定”按钮进入“步骤1-字段选取”。
在这一步里只能从单个表或视图中选择字段,不能从多个表或视图中选择字段。我们从职工表中选择“姓名”、“所在部门”、“技术职务”、“考核成绩”四个字段。按“下一步”按钮进入“步骤2-分组记录”。
使用数据分组来分类并排序字段,能够方便读取。这一步里,我们选择依据“所在部门”
进行分组,分组依据最多可以有三个。第一个是主要分组依据,其他的相对上一个是次要的。在某个“分组类型”框中选择了一个字段之后,可以单击“分组选项”和“总结选项”按钮来进一步完善分组设置。
单击“分组选项”后将打开“分组间隔”对话框,从中可以选择与用来分组的字段中所含的数据类型相关的筛选级别,如下图。
选择“总结选项”将打开一个新的对话框,如下图。
我们可以利用下面的计算类型来处理数值型字段:
总结选项
返 回
求和
指定的数值型字段值的总和
平均值
指定的数值型字段值的平均值
计数
在指定的字段中,包含非零值的记录的个数
最小值
指定的数值型字段中的最小值
最大值
指定的数值型字段中的最大值
也可以为报表选择“细节及总结”、“只包含总结”或“不包含总计”。我们选择对“考核成绩”求“平均值”,其他为默认值。
在“步骤 4 - 定义报表布局”中指定列数或布局。向导即时在放大镜中更新成选定布局的实例图形。我们取默认值。
注意:如果在步骤 2 中指定分组选项,则本步骤中的“列数”和“字段布局”选项不可用。
在“步骤 5 - 排序记录”中选择用来排序的字段或索引标识。
注意:如果在步骤 2 中用来分组的字段,在这一步中不可用。
在“步骤 6 - 完成”中如果选定数目的字段不能放置在报表中单行指定宽度之内,字段将换到下一行上。如果不希望字段换行,清除“对不能容纳的字段进行折行处理”选项。如果选定的表来自数据库,则本步骤可以使用数据库中的显示设置。单击“预览”按钮,可以在离开向导前显示报表。
保存报表后,可以象其它报表一样在“报表设计器”中打开或修改它。
这样一个包含分组、平均、总计的报表就完成了。下面是利用报表“预览”看到的报表样式(由于报表较长,这里分两个图分别显示前面部分和后面部分)。
INCLUDEPICTURE "E:\\唐桂峰文件,请不要删除\\VFP6\\7\\d7-1-7.jpg" \* MERGEFORMATINET
1.2 一对多报表
从“文件”菜单中选择“新建”,选择报表并单击“向导”,进入“向导选取”对话框,在其中选择“一对多报表向导”。
在“步骤 1 - 从父表选择字段”中选择图书表作为父表,即“一对多”关系中的“一”方。从图书表中选取“书名”和“出版社”两个字段,这些选择的字段将会显示在报表的上半部分。这一步和步骤2都只能从单个表或视图中选择字段。
在“步骤 2 - 从子表选择字段”中选择订货表作为子表,即“一对多”关系中的“多”方。从中选择“客户名称”和“订货数量”两个字段,这些字段将会显示在父表字段的下方。
在“步骤 3 - 为表建立关系”中可以从字段列表中接受或选择决定表之间关系的字段。我们取默认值。
在“步骤 4 - 排序记录”中按照结果排序的顺序选择字段或索引标识。我们取“出版社”作为排序字段。
在“步骤 5 - 选择报表样式”中选择我们喜欢的样式,这里我们选择“带区式”,如下图。
在这一步里,单击“总结选项”按钮可以设置数值型数据的处理方式,其选项和上例步骤2中的一样。我们选择订货数量“求和”,如下图:
在“步骤6-完成”中我们填入适当的报表名称,选择合适的选项,按“预览”按钮可以在“预览”窗口中浏览报表,按“完成”按钮即可完成报表的设计。下面是“预览”窗口中报表的样式(一部分)。
第二节 快速制作报表
除了用报表向导创建报表外,我们还可以用“快速报表”来建立报表,“快速报表”是一项省时的功能,只需在其中选择基本的报表组件,Visual FoxPro 就会根据选择的布局,自动建简单的报表布局。
下面我们通过创建一个“快速报表”来认识一下它:
在“文件”菜单中选择“新建”。
在“新建”窗口中选择“报表”并单击“新建”按钮。出现“报表设计器”窗口如下:
其中的一个个的白色区域称为“带区”,其意义从字面上就可以看出,我们主要放在报表设计器一节中介绍。现在所有的带区都是空白的。
注意 如果已有的报表中“细节”带区是空的,就可以在其中使用“快速报表”。如果“页标头”带区已包含控件,“快速报表”将保留它们。
在“报表”菜单中,选择“快速报表”。
选定要使用的表,然后选定“确定”按钮,出现如下“快速报表”对话框。
在这个对话框中可以为报表选择所需的字段、字段布局以及标题和别名选项。对话框选项的意义如下:
字段布局 在左侧显示列布局,在右侧显示行布局。选择列布局可使字段在页面上从左到右排列。选择行布局可使字段在页面上从上到下排列。
标题 确定是否将字段名作为标签控件的标题置于相应字段的上面或旁边。
添加别名 在“报表设计器”窗口中,自动为所有字段添加别名(指定给一个表或表达式中某项的另一个名称,通常用来缩短在代码中连续引用的名称,别名可以防止可能的不确定引用)。
将表添加到数据环境中 自动将表添加到数据环境(在打开或修改一个表单或报表时需要打开的全部表、视图和关系)。
字段 显示“字段选择器”对话框,可在此对话框中选择要在报表中显示的字段。
单击字段,会出现“字段选择器”对话框,如下图。
我们在其中选择报表需要的字段。
注意 “快速报表”不能向报表布局中添加通用字段。
选择“确定”按钮,返回到“快速报表”对话框,在其中选择适当选项,按“确定”按钮。
这样我们在“快速报表”中选中的选项反映在“报表设计器”的报表布局中。如下图:
单击鼠标右键,在快捷菜单中选择“预览”,在“预览”窗口中可以看到快速报表的结果,如下图:
快速报表生成的报表样式比较简单。我们可以将它原样保存、预览也可以应用它进行报表输出。用“快速报表”快速生成报表布局,然后在“报表设计器”中进行修改、完善,对提高报表设计效率大有益处。
上面做了一个列布局的报表,请试着用快速报表设计一个行布局报表,看看有什么不同。
第三节 报表设计器及相关菜单、工具栏
如果已有一个空白报表或标签,或者已通过向导或“快速报表”生成了一个不算很符合要求的报表,下一步就可以在“报表设计器”中打开报表来修改和定制其布局。使用 Visual FoxPro 的“报表设计器”可使我们在进行格式编排、打印和总结数据时获取最大的灵活性。
本节要点:
3.1 报表设计器
3.2 “报表设计器”工具栏
3.3 “报表控件”工具栏
3.4 布局”工具栏
3.5 “调色板”工具栏
3.6 “报表”菜单
3.7 “显示”菜单
3.1 报表设计器
启动“报表设计器”:
在“文件”菜单中选择“新建”。
在“新建”窗口中选择“报表”,并单击“新建文件”。
出现“报表设计器”:
其中有报表设计器工具栏,从它的按钮中可以呼出报表控件工具栏、调色板工具栏、布局工具栏。在系统菜单中出现了“报表”菜单,在“格式”、“编辑”、“显示”菜单中都有针对报表的菜单选项。
注意:如果在报表设计器中不出现“报表设计器”工具栏,从“显示”菜单的“工具栏”选项中找。Visual FoxPro 中的工具栏都在这个选项里。
“报表设计器”提供的是一个空白布局,从空白报表布局开始,就可以添加各种控件,如表头、表尾、页标题、字段、各种线条、及OLE控件等。
3.1.1 报表设计器的报表带区
报表中的每个白色区域,称之为“带区”,它可以包含文本、来自表字段中的数据、计算值、用户自定义函数以及图片、线条和框等。报表上可以有各种不同类型的带区。
在“报表设计器”的带区中,可以插入各种控件,它们包含打印的报表中所需的标签、字段、变量和表达式。例如,在职工花名册列表布局中,应把字段控件置成姓名、性别等,同时应设置标签控件和列表顶端的列标题。要增强报表的视觉效果和可读性,还可以添加直线、矩形以及圆角矩形等控件。也可以包含图片/OLE 绑定型控件。
每一带区底部的灰色条称为分隔符栏。带区名称显示于靠近蓝箭头的栏,蓝箭头指示该带区位于栏之上,而不是之下。
默认情况下,“报表设计器”显示三个带区:页标头、细节和页注脚。
页标头带区 包含的信息在每份报表中只出现一次。一般来讲,出现在报表标头中的项包括报表标题、栏标题和当前日期。
细节带区 一般包含来自表中的一行或多行记录。
页注脚带区 包含出现在页面底部的一些信息(如页码、节等等)。
也可给报表添加其他带区,报表也可能有多个分组带区或者多个列标头和注脚带区。使用本课后面的“定义报表的页面”和“按布局分组数据”部分中提供的过程,可以添加这些带区。可以根据下表决定所需的带区。
带区
打印
使用方法
标题
每报表一次
从“报表”菜单中选择“标题/总结”带区。
页标头
每页一次
默认可用。
列标头
每列一次
从“文件”菜单中选择“页面设置”,设置“列数”> 1。
组标头
每组一次
从“报表”菜单中选择“数据分组”。
细节带区
每记录一次
默认可用。
组注脚
每组一次
从“报表”菜单中选择“数据分组”。
列注脚
每列一次
从“文件”菜单中选择“页面设置”,设置“列数”> 1
页注脚
每页一次
默认可用。
总结
每报表一次
从“报表”菜单中选择“标题/总结”带区
上面所列带区样式和简单说明如下图:
可以在任何的带区中设置任何的“报表”控件。也可以添加运行报表时执行的用户自定义函数。
3.1.2 调整报表带区的大小
在“报表设计器”中,可以修改每个带区的大小和特征。
方法是:
用鼠标左键按住分相应的隔符栏,将带区栏拖动到适当高度。
使用左侧标尺作为指导。标尺量度仅指带区高度,不表示页边距。
注意 不能使带区高度小于布局中控件的高度。可以把控件移进带区内,然后减少带区高度。
然后就可以使用“报表设计器”的任一功能来添加控件和定制报表。
3.1.3 标尺
“报表设计器”中最上面部分设有标尺,可以在带区中精确地定位对象的垂直和水平位置。把标尺和“显示”菜单的“显示位置”命令一起使用可以帮助定位对象。
标尺刻度由系统的测量设置决定。您可以将系统默认刻度(英寸或厘米)改变为 Visual FoxPro 中的像素。若要更改标尺刻度为像素可用如下方法:
从“格式”菜单中选择“设置网格刻度”。显示如下的“设置网格刻度”对话框。
系统默认值 根据系统的语言设置,指定英尺或厘米为标尺上显示的度量单位。
像素 指定像素作为标尺的度量单位。
在“设置网格刻度”对话框中选定“像素”并选择“确定”。
如果标尺的刻度设置为像素,并且状态栏中的位置指示器(如果在“显示”菜单上选中了“显示位置”)也以像素为单位显示。
3.2 “报表设计器”工具栏
当“报表设计器”打开时,显示“报表设计器”工具栏。
按 钮
名 称
说 明
数据分组
显示“数据分组”对话框,从中可以创建数据组并指定其属性。
报表控件工具栏
显示或隐藏报表控件工具栏。
调色板工具栏
显示或隐藏调色板工具栏。
布局工具栏
显示或隐藏布局工具栏。
此工具栏包括如下按钮:
3.3 “报表控件”工具栏
可以使用报表控件工具栏在报表或标签上创建控件。当打开“报表设计器”时,自动显示此工具栏如下图:
单击需要的控件按钮,把鼠标指针移到报表上,然后单击报表来放置控件或把控件拖动到适当大小。
报表控件工具栏包括如下按钮:
按钮
意义/名称
说 明
选定对象
移动或更改控件的大小。在创建了一个控件后,会自动选定“选定对象”按钮,
除非按下了“按钮锁定”按钮。
标签
创建一个标签控件,用于保存不希望用户改动的文本,
如复选框上面或图形下面的标题。
域控件
创建一个字段控件,用于显示表字段、内存变量或其他表达式的内容。
线条
设计时用于在表单上画各种线条样式。
矩形
用于在表单上画矩形。
圆角矩形
用于在表单上画椭圆和圆角矩形。
图片/ ActiveX 绑定控件
用于在表单上显示图片或通用数据字段的内容。
按钮锁定
允许添加多个同种类型的控件,而不需多次按此控件的按钮。
如果我们在报表上设置了控件以后,可以双击报表上的此控件,在显示一个对话框中设置、修改其属性。
3.4 布局”工具栏
使用布局工具栏可以在报表或表单上对齐和调整控件的位置。
此工具栏包括如下按钮:
按钮
名称
说明
左边对齐
按最左边界对齐选定控件。当选定多个控件时可用。
右边对齐
按最右边界对齐选定控件。当选定多个控件时可用。
顶边对齐
按最上边界对齐选定控件。当选定多个控件时可用。
底边对齐
按最下边界对齐选定控件。当选定多个控件时可用。
垂直居中对齐
按照一垂直轴线对齐选定控件的中心。当选定多个控件时可用。
水平居中对齐
按照一水平轴线对齐选定控件的中心。当您选定多个控件时可用。
相同宽度
把选定控件的宽度调整到与最宽控件的宽度相同。
相同高度
把选定控件的高度调整到与最高控件的高度相同。
相同大小
把选定控件的尺寸调整到最大控件的尺寸。
水平居中
按照通过表单中心的垂直轴线对齐选定控件的中心。
垂直居中
按照通过表单中心的水平轴线对齐选定控件的中心。
置前
把选定控件放置到所有其他控件的前面。
置后
把选定控件放置到所有其他控件的后面。
3.5 “调色板”工具栏
使用“调色板”工具栏可以设定表单或报表上各控件的颜色。
此工具栏包括如下按钮:
按钮
名称
说明
前景色
设置控件的默认前景色。
背景色
设置控件的默认背景色。
其他颜色
显示“Windows 颜色”对话框,可定制用户自己的颜色。
3.6 “报表”菜单
使用“报表设计器”可以创建和修改报表,在“报表设计器”窗口活动时,Visual FoxPro 显示“报表”菜单和“报表控件”工具栏。
“报表”菜单包含用于创建和修改报表的命令。其意义简要介绍如下:
标题/总结 显示“标题/总结”对话框,可以指定是否将“标题”和(或)“总结”带区包括在报表中。
数据分组 显示“数据分组”对话框,可以创建数据组并指定其属性。
变量 显示“报表变量”对话框,可以创建报表中的变量。
默认字体 显示“字体”对话框,可以指定报表和标签中标签和字段控件的永久字体、字体样式和字体大小。此设置随报表一起存储,这样,每次修改报表时,默认字体都是相同的。
私有数据工作期 在一个私有工作期中打开报表使用的表,这样它们将不受其他报表、表单或程序的影响。单击此命令将它打开或关闭。
快速报表 自动将选定字段放入一个空的“报表设计器”窗口中,快速创建简单的报表布局。该命令提示选择一个表,并显示“快速报表”对话框,可以选择字段及字段布局。
运行报表 显示“打印”对话框,使您可以将报表传送给打印机。运行报表不会改变表、索引或备注字段中的数据。
3.7 “显示”菜单
“显示”菜单显示“报表”、“标签”和“表单”等设计器及工具栏。允许定制报表的工作方式。
与报表相关的菜单命令及意义如下:
工具栏 显示“工具栏”对话框,从中创建、编辑、隐藏以及定制工具栏。
网格线 移去或添加网格线,辅助阅读数据或定位对象。如果正以“浏览”或“追加”模式显示一个表,“网格线”命令在记录和字段之间添加水平线及垂直线;在“编辑”方式中,在记录之间添加水平线。如果正在设计一个表单、报表或标签,“网格线”命令在设计区域中放置一个网格。
注释 这些网格线设置仅应用于当前报表、表单或标签中,并且将保存到当前对象的资源文件中。
设计 将新建的或已有的标签、报表或表单设置为设计方式。当您创建一个新标签或报表,或者当您打开一个现有标签或报表时,该命令可用并被选定。要关闭该命令,选择“预览”命令。
布局工具栏 显示“布局工具栏”,可以使用它对齐、放置控件以及调整控件大小。命令前的标记表示工具栏当前已经显示。此命令在打开“表单设计器”、“类设计器”、“报表设计器”或“标签设计器”时可用。
调色板工具栏 显示“调色板”工具栏,可以使用它指定一个控件的前景色和背景色。命令前的标记表示工具栏当前已经显示。此命令在打开“表单设计器”、“报表设计器”、“类设计器”或“标签设计器”时可用。
显示位置 在状态栏中显示表单、报表或标签中选定对象的位置、高度和宽度。如果选定了多个对象,“显示位置”显示第一个选定对象的位置。对报表或标签中的一个选定对象,它的位置和范围显示在状态栏的左半部分。状态栏以当前标尺的单位显示了对象的上边、左边、底边以及右边的位置,接着是它的高度和宽度。如果没有选定对象,将显示鼠标指针的位置。对表单中的一个选定对象,它的位置和范围显示在状态栏的右半部分。第一对数显示了对象左上角的水平位置,然后是垂直位置。第二对数显示了对象的宽度和高度。位置和范围从设计器窗口的左上角开始,从左向右按像素计算。此命令在“报表设计器”、“表单设计器”或“标签设计器”里工作时可用。
预览 在打印预览中显示报表或标签。要关闭打印预览,您可以单击“打印预览”工具栏上的“关闭预览”按钮,或者在“显示”菜单上选择“设计”命令。此命令在“报表设计器”或“标签设计器”中工作时可用。
报表控件工具栏 显示“报表控件”工具栏,可以使用它在报表上创建控件。命令前的标记表示工具栏当前已经显示。此命令在“报表设计器”中时可用。
数据环境 显示“数据环境设计器”,用设计器创建或修改表单、表单集和报表的数据环境。此命令在打开“报表设计器”、“标签设计器”或“表单设计器”时可用。
第四节 计划、创建报表布局
报表包括两个基本组成部分:数据源和布局。数据源通常是数据库中的表,也可以是视图、查询或临时表。视图和查询筛选、排序、分组数据库中的数据,而报表布局则定义了报表的打印格式。在定义了一个表、一个视图或查询后,便可以创建报表(或标签)。
4.1 计划报表布局
通过设计报表,可以用各种方式在打印页面上显示数据。使用“报表设计器”可以设计复杂的列表、总结摘要或数据的特定子集,比如发票。
设计报表有四个主要步骤:
1. 决定要创建的报表类型。
2. 创建报表布局文件。
3. 修改和定制布局文件。
4. 预览和打印报表。
4.1.1 报表的创建过程
报表的创建过程可以图示如下:
4.1.2 决定报表的常规布局
创建报表之前,应该确定所需报表的常规格式。报表可能同基于单表的电话号码列表一样简单,也可能复杂得象基于多表的发票那样。另外您还可以创建特殊种类的报表。例如,邮件标签便是一种特殊的报表,其布局必须满足专用纸张的要求。
常规报表布局有如下几种:
为帮助选择布局,这里给出常规布局的一些说明,以及它们的一般用途举例。
布局类型
说 明
用途举例
列
每行一条记录,每条记录的字段在页面上按水平方向放置。
分组/总计报表
财政报表
存货清单
销售总结
行
一列的记录,每条记录的字段在一侧竖直放置
列表
一对多
一条记录或一对多关系
发票
会计报表
多列
多列的记录,每条记录的字段沿左边缘竖直放置
电话号码薄
名片
标签
多列记录,每条记录的字段沿左边缘竖直放置,打印在特殊纸上
邮件标签
名字标签
选定满足需求的常规报表布局后,便可以用“报表设计器”创建报表布局文件。
4.1.3 深入了解报表布局文件
报表布局文件具有 .frx 文件扩展名,它存储报表的详细说明。每个报表文件还有带 .frt 文件扩展名的相关文件。
报表文件指定了所用到的域控件、要打印的文本以及信息在页面上的位置。报表文件不存储每个数据字段的值,只存储一个特定报表的位置和格式信息,即每次运行报表时都根据报表文件指定的数据源中读取数据。因此,报表的值取决于报表文件所用数据源的字段内容。如果经常更改数据源内容,每次运行报表,值都可能不同。
4.2 设置报表数据环境
在 Visual FoxPro 中,有三种创建报表布局的方法:
1. 用“报表向导”创建简单的单表或多表报表。
2. 用“快速报表”从单表中创建一个简单报表。
3. 用“报表设计器”修改已有的报表或创建自己的报表。
以上每种方法创建的报表布局文件都可以用“报表设计器”进行修改。“报表向导”是创建报表的最简单途径,它自动提供很多“报表设计器”的定制功能。“快速报表”是创建简单布局的最迅速途径。如果直接在“报表设计器”内创建报表,“报表设计器”将提供一个空白布局。
4.2.1 规划数据的位置
使用“报表设计器”内的带区,可以控制数据在页面上的打印位置。报表布局可以有几个带区。规划好报表中可能包含的一些带区以及每个带区的内容。注意每个带区下的栏标识了该带区。
4.2.2 设置报表数据环境
数据环境定义了报表(或表单)使用的数据源,它包括了表、视图和关系,可以用它们来填充报表中的控件。数据环境与报表或表单一起保存,可以用“报表设计器”或“表单设计器”进行修改。
定义报表或表单的数据环境之后,当打开或运行该文件时,Visual FoxPro 自动打开表或视图,并在关闭或释放该文件时关闭表或视图。
设置报表的数据源是在数据环境设计器中进行的。
向数据环境中添加表或视图的方法:
在“报表设计器”中空白带区里单击鼠标右键,在弹出的“快捷菜单”中选择“数据环境”,(或者从“显示”菜单中,选择“数据环境”)。
从快捷菜单或从“数据环境”菜单中,选择“添加”。
在“添加表或视图”对话框中,从“数据库”框中选择一数据库。
在“选定”区域中选取“表”或“视图”。
在“数据库中的表/视图”框中,选取一个表或视图。
选择“添加”按钮。
这样,选择的数据源就添加到“数据环境设计器”中。
设计数据源的还可以对报表进行排序输出。如果报表的数据源是一个表,则报表中输出的记录一般是按照表中记录的顺序进行排序的。如果是数据源是视图,则可利用视图的记录顺序来排序。
使用视图作为数据源可以图示如下:
当然,还可通过设置索引来决定出现在报表中的记录顺序,方法如下:
从快捷菜单或从“显示”菜单中,选择“数据环境”。
从快捷菜单中,选择“属性”。出现“属性”对话框,如下:
在“属性”窗口中,选择对象框中的“Cursor1”。
选择“数据”选项卡,然后,选定“Order”属性。
输入索引名 (或者从可用索引列表中选定一个索引,比如图中选择了“技术职务”作为索引)。
如果我们添加了不需要的表或视图,就需要移去它们,方法是:鼠标指向要移去的表,单击右键,在快捷菜单中选择“移去”。