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

[access报表]access报表画线实例(二)VBA画线

时 间:2008-12-01 13:32:07
作 者:芊芊   ID:54  城市:东营
摘 要:报表画线
正 文:

    在报表视图中已将所有的控件排列整齐,现在需要在报表相关节“中的FORMAT事件中,写入画线的相关代码。

       进入报表设计窗口,进入页面页眉节的属性对话框,点击事件,找到“格式化”,点击最右边的“三个点”的按钮,

进入VBE窗口,将代码粘贴进去(主体FROMAT事件也一起粘贴进去了)。

 

代码如下:

说明:代码中+70-70,是因为如果页面页眉或主体节,调整高度大时,根据控件边框画线有间断的情况,可根据实际情况适当调整,使画线连续。

 Private Sub 页面页眉_Format(Cancel As Integer, FormatCount As Integer)

    Dim a As Control

    '设置线度量单位    Me.scalemode = 3 (可自己选择度量单位)

'设置线(宽度)

    Me.DrawWidth = 3

    '设置线的类型

    Me.DrawStyle = 0

    For Each a In Me.Controls

        If a.ControlType = acLabel And a.Tag = "left" Then

            '画顶线

            Me.Line (a.Left, 0)-(a.Left + a.Width + 70, 0)

 

            '画竖线

            Me.Line (a.Left, 0)-(a.Left, a.Height + 70)

            '画底线

            Me.Line (a.Left, a.Height + 70)-(a.Left + a.Width + 70, a.Height + 70)

        ElseIf a.ControlType = acLabel And a.Tag = "LR" Then

            '画顶线

            Me.Line (a.Left, 0)-(a.Left + a.Width, 0)

            '画左竖线

            Me.Line (a.Left, 0)-(a.Left, a.Height + 70)

            '画右竖线

            Me.Line (a.Left + a.Width, -70)-(a.Left + a.Width, a.Height + 70)

            '画底线

            Me.Line (a.Left, a.Height + 70)-(a.Left + a.Width, a.Height + 70)

 

        End If

    Next

End Sub

 

Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)

    Dim a As Control

    '设置线 (宽度)

    Me.DrawWidth = 12

    '设置线的类型

    Me.DrawStyle = 0

    For Each a In Me.Controls

        If a.ControlType = acTextBox And a.Tag = "left" Then

            Me.Line (a.Left, -70)-(a.Left, a.Height + 70)

            Me.Line (a.Left, a.Height + 70)-(a.Left + a.Width + 70, a.Height + 70)

        ElseIf a.ControlType = acTextBox And a.Tag = "LR" Then

            Me.Line (a.Left, -70)-(a.Left, a.Height + 70)

            Me.Line (a.Left + a.Width, -70)-(a.Left + a.Width, a.Height + 70)

             'Me.Line (a.Left, a.Top - 70)-(a.Left + a.Width, a.Top - 70)

            Me.Line (a.Left, a.Height + 70)-(a.Left + a.Width, a.Height + 70)

         End If

     Next

 End Sub

 预览报表结果:

下面进行分组操作:

进入报表设计窗口,点击鼠标右键,

选择排序与分组,选择分组字段,

 

报表设计窗口,出现组页眉(货主名称页眉)和组页脚(货主名称页脚),

货主名称页眉,在这用不到,可设高度为0,或设置属性中的可见属性为否。

既然分组了,得合计数据,例如需合计运货费,在货主名称页脚增加文本框,文本框中录入SUM([运货费]),将文本框与主体节的“运货费”文本框对齐即可。再新增标签录入“合计”,在适当位置即可。

当然,货主名称页脚也需要画线的,同上在货主名称页脚的FORMAT事件中粘贴画线代码。但货主名称页脚画线会根据主体节的文本框,自动画线对齐,我们只需要增加所要的文本框,与主体节相关文本框适当对齐即可

报表页脚可参考“货主名称页脚”设置。

预览效果如下:

加入报表页脚“总计”和“运货费”预览图:

需注意,组页脚和报表页脚的高度得适当,高度过小,“合计”“总计”行下面的横线会丢失,适当调整高度可解决。

至此报表画线,可一劳永逸了。

报表增加序号、页计、累计、组分页、补空行,可参阅本站相关文章。

附  件:

点击下载此附件



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

常见问答:

技术分类:

相关资源:

专栏作家

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