Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-教程

access2010开发教程第7章第4节

时 间:2012-04-28 13:03:59
作 者:Access软件网编著   ID:8  城市:上海  QQ:2851379730点击这里给张志发消息
摘 要:7.4 动态报表切换面板的制作
正 文:

7.4 动态报表切换面板的制作

    继续上一节的操作,切换到报表窗格,参照静态报表的制作,再利用向导建立一个只包含“员工姓名”和“报销金额”的查询,除了所选的两个字段与之前不一样外,其他的全部一样,完成之后,修改报表的页眉,并将报表名称命名为: rptBxmx_yg ,完成之后,如下图所示 :

现在制作出来的是静态报表,还需要进行该报表的动态改造,参照动态报表制作的那一小节,可以发现,前两步都是所有基于该窗体的所有动态报表所通用的,唯有第三步,是从属于各个报表的特性,参照动态报表的制作,我们直接进入该报表的打开事件编辑界面,输入以下代码 :


If strRptReSource = "" Then
Me.RecordSource = Forms!usysfrmMain!frmChild.Form.RecordSource
Else
Me.RecordSource = strRptReSource
End If


完成之后如下图所示 :

再进入报表关闭事件,在关闭的时候清空一下变量的值,完整的代码如下:
 Private Sub Report_Close()
     strRptReSource = ""
End Sub

其实,这里录入的代码和另一个报表的代码是完全一致的。确认输入无误之后,保存录入并关闭报表。
好了,已经设计完成了两个动态的报表,现在就该设计一个中转的切换面板,可以使用户在查询之后选择要浏览的报表的种类或者未经查询就直接浏览的报表种类。记得在前面静态报表的时候,我们在 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 标签修改为:按员工姓名统计报表浏览,并调整各个控件在窗体上的布局,如下图所示:

和前面新增修改窗体类似,复制2个按钮到窗体里,调整位置,设置窗体的窗体页眉/页脚,再单击功能区的排列,在左上角的自动套用格式按钮里面设置窗体的背景,调整窗体大小后保存,如下图所示:

基本布局已经基本完成,现在进行属性修改:
第一:打开选项组的属性,选择其他选项卡,将默认的 Frame0 名称修改为 Select_rpt ,如下图所示:

第二:打开单选按钮“按报销分类统计报表浏览”的属性,选择数据选项卡,将选项值由默认的 1 修改为 7 ,如下图所示:

同理,将“按员工姓名统计报表浏览”单选按钮的该选项值修改为 8 ;
第三:打开命令按钮“取消”的属性,选择其他选项卡,如果按钮名称不是cmdCancel 则将名称属性修改为 cmdCancel ,如下图所示:

之后切换到事件选项卡,进入单击事件的代码编辑页面,如下图所示:

在代码光标处输入以下代码:


Docmd.Close acForm,me.Name


输入之后保存,并关闭代码输入页面,关闭“取消”的控件属性,之后打开确定按钮的属性,如果其它选项卡的名称属性不为cmdOK则修改为cmdOK ,如下图所示:

之后切换到事件选项卡,进入到单击事件的代码输入界面,如下图所示:

在鼠标光标处输入以下代码:


Select Case Me.Select_rpt
Case 7
'预览报表 - 按报销类别
DoCmd.OpenReport "rptBxmx", acViewPreview
Case 8
'预览报表 - 按员工姓名
DoCmd.OpenReport "rptBxmx_yg", acViewPreview
End Select
DoCmd.Close acForm, me.name


    请注意蓝颜色的个性化参数,我们对照前面的本小节的第一步和第二步,就会发现第一步和第二步做的属性设置在这里得到了反映,其实,前两步不修改其属性也是可以的,之所以修改,就是为了让初学者能读懂这一段重要的代码,明白那里的属性和这里代码的对应关系。
    保存输入,之后关闭代码输入界面,并关闭属性对话框,之后按之前所学的方法,调整该窗体运行时的实际显示大小,如下图所示:

 

调整完成之后,所有的实际设计工作也就完成了。关闭该窗体,给该窗体增加说明:报销明细 - 报表切换面板。
我们可以测试一下,我们先进行查询,比如,查询李三的所有报销明细,如下图所示:

关闭数据查询对话框,单击打印按钮,则如下图所示:

  选择“按报销分类统计报表浏览”,之后再单击确定按钮,则如下图所示:

 如果选择“按员工姓名统计报表浏览”,之后再单击确定按钮,则如下图所示:

    的确如我们起初预料的那样,动态报表的切换面板的工作圆满完成。我们在这里设计的是两个报表的切换,如果你有多个查询要求,可以设计三个乃至更多个报表的切换面板,原理和两个报表的切换是一样的。
顺便多说一句,我们一直没有讲打印,事实上当以上的预览的报表出来之后,只需要直接单击左上角的打印按钮就可以直接执行打印工作。
 

相关索引: 上一节   下一节



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助