access开发教程第7章第4节
时 间:2008-12-02 13:56:23
作 者:Access软件网编著 ID:11 城市:上海 QQ:3002789054
摘 要:7.4 动态报表切换面板的制作
正 文:
7.4 动态报表切换面板的制作
继续上一节的操作,切换到报表窗格,参照静态报表的制作,再利用向导建立一个只包含“员工姓名”和“报销金额”的查询,除了所选的两个字段与之前不一样外,其他的全部一样,完成之后,修改报表的页眉,并将报表名称命名为: rptBxmx_yg ,完成之后,如下图所示 :
继续上一节的操作,切换到报表窗格,参照静态报表的制作,再利用向导建立一个只包含“员工姓名”和“报销金额”的查询,除了所选的两个字段与之前不一样外,其他的全部一样,完成之后,修改报表的页眉,并将报表名称命名为: rptBxmx_yg ,完成之后,如下图所示 :
现在制作出来的是静态报表,还需要进行该报表的动态改造,参照动态报表制作的那一小节,可以发现,前两步都是所有基于该窗体的所有动态报表所通用的,唯有第三步,是从属于各个报表的特性,参照动态报表的制作,我们直接进入该报表的打开事件编辑界面,输入以下代码 :
If strRptReSource = "" Then
Me.RecordSource = Forms!usysfrmMain!frmChild.Form.RecordSource
Else
Me.RecordSource = strRptReSource
End If
If strRptReSource = "" Then
Me.RecordSource = Forms!usysfrmMain!frmChild.Form.RecordSource
Else
Me.RecordSource = strRptReSource
End If
完成之后如下图所示 :
其实,这里录入的代码和另一个报表的代码是完全一致的。确认输入无误之后,保存录入并关闭报表。
好了,已经设计完成了两个动态的报表,现在就该设计一个中转的切换面板,可以使用户在查询之后选择要浏览的报表的种类或者未经查询就直接浏览的报表种类。记得在前面静态报表的时候,我们在 frmBxmx_child 窗体的代码页面 录入过这样的一段代码 :
Public Sub btnPrint()
DoCmd.OpenReport "rptBxmx", acViewPreview
End Sub
这段代码的意思就是说,当单击预览按钮的时候,就直接打开 rptBxmx 报表,但是我们现在有两个报表,因此,这样的场景的情况下,无法使一个按钮直接与两个报表相对应,试想一下,如果我们单击这个按钮的时候打开一个窗体,通过这个窗体来选择显示哪一个报表,这样一来,问题就可以得到解决,因此,鉴于此窗体的实际用途,我们可以将其称为切窗体,或者切换面板。在当前场景下,我们将该切换窗体的名称事先定义为 : frmBxmx_child_rpt ,则应该将 frmBxmx_child 窗体的代码如下的一段代码修:
Public Sub btnPrint()
DoCmd.OpenReport "rptBxmx", acViewPreview
End Sub
改为:
Public Sub btnPrint()
DoCmd.OpenForm "frmBxmx_child_rpt"
End Sub
这样一改,其意思就是说,当单击预览按钮的时候,就自动打开我们实现定义的 frmBxmx_child_rpt 的报表切换窗体,下面,我们就来设计这个切换窗体。
新建一个窗体,将其名称定义为 frmBxmx_child_rpt ,之后进入窗体属性,进行以下属性设置:
格式选项卡:
标题:无默认值,输入以下字符:请选择您所要浏览的报表;
滚动条:默认值为两者都有,修改为:两者均无;
记录选定器:默认为是,修改为:否;
导航按钮:默认为是,修改为:否;
分隔线:默认为是,修改为:否;
自动调整:默认为是,修改为:否;
自动居中:默认是否,修改为:是;
边框样式:默认为可调边框,修改为:对话框边框;
控制框:默认为是,修改为:否;
最大化最小化按钮:默认为两者都有,修改为:无。
关闭按钮:默认为是,修改为:否;
其他选项卡:
弹出方式:默认为否,修改为:是。
请注意一点,在这里,多数的属性修改与前面讲的新增修改的属性修改基本一致,但是有一点请特点注意,前面的窗体属性设置,无论是新增窗体还是修改窗体,均修改了其他选项卡的模式属性,将其从默认值否,修改为是,但是在这个切换面板的场合,此属性切不可修改,否则,会出现莫名其妙的问题——虽然不致于让系统无法使用,但是毕竟显得太不合理了,有兴趣的可以试试是什么效果。修改完毕之后,关闭窗体属性对话框保存修改。
单击工具箱上的选项组按钮 ,之后在窗体上选择适当位置放置,如下图所示:
好了,已经设计完成了两个动态的报表,现在就该设计一个中转的切换面板,可以使用户在查询之后选择要浏览的报表的种类或者未经查询就直接浏览的报表种类。记得在前面静态报表的时候,我们在 frmBxmx_child 窗体的代码页面 录入过这样的一段代码 :
Public Sub btnPrint()
DoCmd.OpenReport "rptBxmx", acViewPreview
End Sub
这段代码的意思就是说,当单击预览按钮的时候,就直接打开 rptBxmx 报表,但是我们现在有两个报表,因此,这样的场景的情况下,无法使一个按钮直接与两个报表相对应,试想一下,如果我们单击这个按钮的时候打开一个窗体,通过这个窗体来选择显示哪一个报表,这样一来,问题就可以得到解决,因此,鉴于此窗体的实际用途,我们可以将其称为切窗体,或者切换面板。在当前场景下,我们将该切换窗体的名称事先定义为 : frmBxmx_child_rpt ,则应该将 frmBxmx_child 窗体的代码如下的一段代码修:
Public Sub btnPrint()
DoCmd.OpenReport "rptBxmx", acViewPreview
End Sub
改为:
Public Sub btnPrint()
DoCmd.OpenForm "frmBxmx_child_rpt"
End Sub
这样一改,其意思就是说,当单击预览按钮的时候,就自动打开我们实现定义的 frmBxmx_child_rpt 的报表切换窗体,下面,我们就来设计这个切换窗体。
新建一个窗体,将其名称定义为 frmBxmx_child_rpt ,之后进入窗体属性,进行以下属性设置:
格式选项卡:
标题:无默认值,输入以下字符:请选择您所要浏览的报表;
滚动条:默认值为两者都有,修改为:两者均无;
记录选定器:默认为是,修改为:否;
导航按钮:默认为是,修改为:否;
分隔线:默认为是,修改为:否;
自动调整:默认为是,修改为:否;
自动居中:默认是否,修改为:是;
边框样式:默认为可调边框,修改为:对话框边框;
控制框:默认为是,修改为:否;
最大化最小化按钮:默认为两者都有,修改为:无。
关闭按钮:默认为是,修改为:否;
其他选项卡:
弹出方式:默认为否,修改为:是。
请注意一点,在这里,多数的属性修改与前面讲的新增修改的属性修改基本一致,但是有一点请特点注意,前面的窗体属性设置,无论是新增窗体还是修改窗体,均修改了其他选项卡的模式属性,将其从默认值否,修改为是,但是在这个切换面板的场合,此属性切不可修改,否则,会出现莫名其妙的问题——虽然不致于让系统无法使用,但是毕竟显得太不合理了,有兴趣的可以试试是什么效果。修改完毕之后,关闭窗体属性对话框保存修改。
单击工具箱上的选项组按钮 ,之后在窗体上选择适当位置放置,如下图所示:
删除该选择组的标签,之后再单击工具箱中的选项按钮按钮 ,即单选按钮按钮,放置两个于选项组区域内,如下图所示:
由于单选按钮默认带了一个标签控件,我们就先修改其携带的两个标签,将第一个名为 Option2 标签修改为:按报销分类统计报表浏览,将第二个名为 Option4 标签修改为:按员工姓名统计报表浏览,并调整各个控件在窗体上的布局,如下图所示:
单击工具箱上的命令按钮按钮 ,在选项组控件下面放置两个命令能按钮,将第一个命令按钮命名为确定,将第二个命令按钮命名为取消,如下图所示:
基本布局已经基本完成,现在进行属性修改:
第一:打开选项组的属性,选择其他选项卡,将默认的 Frame0 名称修改为 Select_rpt ,如下图所示:
第一:打开选项组的属性,选择其他选项卡,将默认的 Frame0 名称修改为 Select_rpt ,如下图所示:
第二:打开单选按钮“按报销分类统计报表浏览”的属性,选择数据选项卡,将选项值由默认的 1 修改为 7 ,如下图所示:
同理,将“按员工姓名统计报表浏览”单选按钮的该选项值修改为 8 ;
第三:打开命令按钮“取消”的属性,选择其他选项卡,将名称属性修改为 cancel ,如下图所士:
第三:打开命令按钮“取消”的属性,选择其他选项卡,将名称属性修改为 cancel ,如下图所士:
之后切换到事件选项卡,进入单击事件的代码编辑页面,如下图所示:
在代码光标处输入以下代码:
DoCmd.Close
输入之后保存,并关闭代码输入页面,关闭“取消”的控件属性,之后打开确定按钮的属性,将其它选项卡的名称修改为 OK ,如下图所示:
DoCmd.Close
输入之后保存,并关闭代码输入页面,关闭“取消”的控件属性,之后打开确定按钮的属性,将其它选项卡的名称修改为 OK ,如下图所示:
之后切换到事件选项卡,进入到单击事件的代码输入界面,如下图所示:
在鼠标光标处输入以下代码:
Select Case Me.Select_rpt
Case 7
'预览报表 - 按报销类别
DoCmd.OpenReport "rptBxmx", acViewPreview
Case 8
'预览报表 - 按员工姓名
DoCmd.OpenReport "rptBxmx_yg", acViewPreview
End Select
DoCmd.Close acForm, "frmBxmx_child_rpt"
请注意蓝颜色的个性化参数,我们对照前面的本小节的第一步和第二步,就会发现第一步和第二步做的属性设置在这里得到了反映,其实,前两步不修改其属性也是可以的,之所以修改,就是为了让初学者能读懂这一段重要的代码,明白那里的属性和这里代码的对应关系。
保存输入,之后关闭代码输入界面,并关闭属性对话框,之后按之前所学的方法,调整该窗体运行时的实际显示大小,如下图所示:
Select Case Me.Select_rpt
Case 7
'预览报表 - 按报销类别
DoCmd.OpenReport "rptBxmx", acViewPreview
Case 8
'预览报表 - 按员工姓名
DoCmd.OpenReport "rptBxmx_yg", acViewPreview
End Select
DoCmd.Close acForm, "frmBxmx_child_rpt"
请注意蓝颜色的个性化参数,我们对照前面的本小节的第一步和第二步,就会发现第一步和第二步做的属性设置在这里得到了反映,其实,前两步不修改其属性也是可以的,之所以修改,就是为了让初学者能读懂这一段重要的代码,明白那里的属性和这里代码的对应关系。
保存输入,之后关闭代码输入界面,并关闭属性对话框,之后按之前所学的方法,调整该窗体运行时的实际显示大小,如下图所示:
调整完成之后,所有的实际设计工作也就完成了。关闭该窗体,给该窗体增加说明:报销明细 - 报表切换面板。
我们可以测试一下,我们先进行查询,比如,查询李三的所有报销明细,如下图所示:
我们可以测试一下,我们先进行查询,比如,查询李三的所有报销明细,如下图所示:
关闭数据查询对话框,单击打印按钮,则如下图所示:
选择“按报销分类统计报表浏览”,之后再单击确定按钮,则如下图所示:
如果选择“按员工姓名统计报表浏览”,之后再单击确定按钮,则如下图所示:
的确如我们起初预料的那样,动态报表的切换面板的工作圆满完成。我们在这里设计的是两个报表的切换,如果你有多个查询要求,可以设计三个乃至更多个报表的切换面板,原理和两个报表的切换是一样的。
顺便多说一句,我们一直没有讲打印,事实上当以上的预览的报表出来之后,只需要直接单击工具栏上的按钮就可以直接执行打印工作。如果你看不到这个按钮,检查一下该报表属性,即检查该报表属性的其他选项卡的工具栏属性,检查一下,其值是否等于 rptToolBar ,如果不是这个值,那么,你很可能看不到打印按钮。
相关索引:上一节 下一节
顺便多说一句,我们一直没有讲打印,事实上当以上的预览的报表出来之后,只需要直接单击工具栏上的按钮就可以直接执行打印工作。如果你看不到这个按钮,检查一下该报表属性,即检查该报表属性的其他选项卡的工具栏属性,检查一下,其值是否等于 rptToolBar ,如果不是这个值,那么,你很可能看不到打印按钮。
相关索引:上一节 下一节
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)