罗斯文数据库学习连载(36)

发表时间:2008/4/16 18:59:38 评论(4) 浏览(13322)  评论 | 加入收藏 | 复制摘 要:“按金额汇总销售额”报表正 文:7.“按金额汇总销售额”报表“按金额汇总销售额”报表按金额降序显示销售额,并在第一页只显示10个最大的客户。以销售金额相差1000为一个分组,每个分组之间以横线隔开,在每页的页脚中显示每页的销售金额合计数。这是一个让我们学习宏运用的示例,本示例中没有任何代码。进入报表设计视图:

报表的记录源是“按金额汇总销售额”查询。报表页眉中包含报表标题“按金额汇总销售额”及打印日期。页面页眉中是为主体进行说明的标题,用标签显示,并以灰色作为背景色。主体节中包含三个文本框字段,它们对应的控件来源分别为:“销售金额”、“订单ID”、“公司名称”。主要看最后一个名为“计数器”的文本框,如下图

它的控件来源设为“=1”,并且设置运行总和的属性为“全部之上”,表示将该控件的值随着其在主体中出现的次数累加。出现第一次时值为1;出现第二次时,用控件来源中的值1加上上次出现的值1,显示为2;第三次出现时,用控件来源中的值1加上上次出现的值2,显示为3;以此类推。这种方法常用在报表中,用来统计主体中记录出现的次数或用来实现统计累计数。可以结合本示例来体会作为计数的用处,要体会用作累加的作用,可以把控件来源改为“销售金额”来看。主体节的下方有一条虚线,这是一个名为“隐藏分页符”的分页符控件,分页符的作用是从放置分页符的位置开始强行分页,下面的数据从下一页中显示。如果单纯从主体的这个位置放置这样一个分页符的作用是显示一行数据后就分页。但通过预览可知本例并没有马上分页,而是在第一页显示了十条数据后才分页的。这个功能是通过宏来实现的。从数据库的对象中选择宏,选中其中名为“按金额汇总销售额”的宏。单击设计,打开宏设计视图

“按金额汇总销售额”是一个宏组,其中包含了多个宏,在“宏名”中显示的是在本宏组中存在的宏。在执行宏时,如果指定了宏名,将按顺序执行宏名下的每个操作,遇到其他宏名时,将停止执行。可以用宏组.宏名的形式来执行宏组中的某个宏。下面依次讲解宏组中的每个宏:1.“隐藏分页符”宏的作用是将分页符控件隐藏起来,这样报表就不会分页。它的操作为“SetValue”,表示设置值,在下半部分的操作参数中,“项目”为“[隐藏分页符].[Visible]”,“表达式”为“No”,表示将“隐藏分页符”控件的可见性属性设为否,这样这个控件就不会显示了。注释字段描述的是本宏的用法与说明。2.“显示分页符”宏的作用是将分页符在[计数器]=10的时候,显示出来,将报表分页。这个宏的操作也是“SetValue”,操作参数中,“项目”为“[隐藏分页符].[Visible]”,“表达式”为“Yes”。看一下宏的条件一列,设置为“[计数器]=10”。表示只有当满足这个条件时才将[隐藏分页符]的可见性属性设为是。3.“隐藏页脚”宏的作用是在[计数器]=10的时候,取消“销售金额”组页脚中的格式显示。这个宏的操作是“CancelEvent”,表示取消事件的执行,这个操作没有参数。在哪个事件中执行该宏,那么这个事件即被取消操作。宏的条件为“[计数器]=10”。4.“页合计”宏的作用是将“销售金额”文本框的值累加到“页合计”文本框中。宏的操作也是“SetValue”, 操作参数中,“项目”为“[页合计]”,“表达式”为“[页合计]+[销售金额]”。5.“新增页”宏的作用是每一个页面开始时,将“页合计”控件中的值设为0。宏的操作也是“SetValue”, 操作参数中,“项目”为“[页合计]”,“表达式”为“0”。学习完宏后,我们来看下各个宏在本报表中是如何调用的,查看主体节的事件

主体的格式化事件中设置为“按金额汇总销售额.显示分页符”,表示在格式化主体节时,执行“按金额汇总销售额”宏组中的“显示分页符”宏。如果满足条件即显示分页符。另外主体的打印事件中设置为“按金额汇总销售额.页合计”,主体中的每一条记录都会发生Print事件,这样当前记录显示一次就会在“页合计”文本框中累加一次,实现了页面的累加功能。我们再回过头来看下页面页眉的事件

在页面页眉格式化中调用“隐藏分页符”宏,表示在显示每页页眉前就先将分页符控件隐藏起来了,配合主体格式化时调用的宏“显示分页符”,这样就可以实现在第一页显示十条数据的功能。页面面眉打印事件中调用“新增页”宏,表示在每页页眉显示前把当前页的“页”合计文本框中的值置为0。销售金额页脚是一个组页脚,在排序与分组的设置中,只设置了页脚,没有组页眉。分组形式为“间隔”,组间距为“1000”,表示按销售金额的数值,每隔1000分一组,排序次序为降序,这样就会按销售金额由大到小显示。销售金额页脚中只有一条水平线,用于分隔每组,在格式化事件中调用“隐藏页脚”宏。这是因为在主体中运行了“显示分页符”的宏,在第十条数据时插入了分页符,这样该组的组页脚就会显示到下一页中,所以这里设置了“隐藏页脚”。页面页脚中包含一条粗水平线及页码,另外还有一个名为“页合计”的文本框,内容未绑定,页合计中的值是结合页页面眉打印事件中的“按金额汇总销售额.新增页”宏及主体打印事件中的“按金额汇总销售额.页合计”宏来生成的。报表页脚无。如果您没有注册这个论坛,请赶快注册吧,与我在论坛进行交流,共同学习提高。   上一篇   下一篇

(0)

相关推荐