Office中国论坛/Access中国论坛
标题:
【源码】报表分页总计及补空行示例
[打印本页]
作者:
红尘如烟
时间:
2010-9-18 09:00
标题:
【源码】报表分页总计及补空行示例
本帖最后由 红尘如烟 于 2010-9-18 19:17 编辑
Access的报表存在一个问题,无论你在设计视图中将控件对的看上去多么整齐,但预览的时候通过控件边框显示出来的表格线条仍然会出现错位现象,而通过报表的Line方法来画表格就没有这个问题了,而且在不用到临时表的情况下,画表格也是补空行的好办法。
'=======================================================================
'函数名称: ReportSheet
'功能描述: 简单报表中用来画表格并实现补空行,用于打印单据类每页样式固定的报表
'输入参数: rpt 必需的,报表对象,使用时用Me关键字引用
' RowsOfPage 必需的,每页要显示的记录行数
' Style 可选的,表格样式,0为网格式,1为横格式,2为竖格式
' HasColumnHeader 可选的,是否对列标题同样画表格
'返回参数: 无
'使用示例: 在窗体的Page事件中调用: ReportSheet Me,30
'相关调用:
'使用注意: 主体节中的控件必须是索引从左到右,可以通过选中主体节中的所有控件,然后剪切再粘贴的操作来处理
'兼 容 性:
'参考资料:
'作 者: 红尘如烟
'创建日期: 2010-9-17
'=======================================================================
Public Function ReportSheet(rpt As Report, _
ByVal RowsOfPage As Integer, _
Optional ByVal Style As Integer = 0, _
Optional ByVal HasColumnHeader As Boolean = True)
Dim intI As Integer
Dim lngTop As Long '表格上边距,即报表页眉的高度
Dim lngBottom As Long '表格下边距,报表页眉的高度 +主体节高度×每页要显示的记录数
Dim lngLeft As Long '表格左边距,第一个控件的左边距
Dim lngRight As Long '表格右边距,最后一个控件的左边距+最后一个控件的宽度
Dim lngRowHeight As Long '行高,即主体节高度
Dim lngMaxIndex As Integer '主体节控件最大索引值
lngRowHeight = rpt.Section(acDetail).Height
lngMaxIndex = rpt.Section(acDetail).Controls.Count - 1
lngTop = rpt.Section(acPageHeader).Height
lngBottom = lngTop + lngRowHeight * (RowsOfPage)
lngLeft = rpt.Section(acDetail).Controls(0).Left
lngRight = rpt.Section(acDetail).Controls(lngMaxIndex).Left + rpt.Section(acDetail).Controls(lngMaxIndex).Width
If HasColumnHeader Then
RowsOfPage = RowsOfPage + 1
lngTop = lngTop - lngRowHeight
End If
'样式为1(竖线格样式)时不画横线
If Style <> 1 Then
For intI = 0 To RowsOfPage
rpt.Line (lngLeft, lngTop + lngRowHeight * intI)-(lngRight, lngTop + lngRowHeight * intI)
Next
End If
'样式为2(横线格样式)时不画竖线
If Style <> 2 Then
For intI = 0 To lngMaxIndex
rpt.Line (rpt.Section(acDetail).Controls(intI).Left, lngTop)-(rpt.Section(acDetail).Controls(intI).Left, lngBottom)
Next
'在最右边画竖线
rpt.Line (lngRight, lngTop)-(lngRight, lngBottom)
End If
End Function
复制代码
作者:
lkkl66
时间:
2010-9-18 09:26
先学习--收藏!谢谢!
作者:
tmtony
时间:
2010-9-18 09:52
谢谢分享!!
作者:
sxb2007
时间:
2010-9-18 09:52
谢谢分享!!
作者:
zyp
时间:
2010-9-18 09:56
谢谢,收下了
作者:
hljthzbc
时间:
2010-9-18 09:57
报表分页总计及补空行示例
作者:
ZHENGLIAN
时间:
2010-9-18 09:59
这个应该有用哦! 大力支持一下。
作者:
aslxt
时间:
2010-9-18 10:18
好东西,好心情
作者:
ycxchen
时间:
2010-9-18 10:56
谢谢分享,学习!
作者:
ycxchen
时间:
2010-9-18 11:13
运行出错,提示引用不存在的对象,ngLeft = rpt.Section(acDetail).Controls(0).Left这句话反相显示。
作者:
huangqinyong
时间:
2010-9-18 14:11
学习一下,
作者:
t小宝
时间:
2010-9-18 15:56
很好的方法和代码!!
作者:
ZBJKJH
时间:
2010-9-18 18:10
学习
作者:
fnsmydyang
时间:
2010-9-18 23:37
学习红尘老师精品之作,哈哈。。。
作者:
fnsmydyang
时间:
2010-9-18 23:37
学习红尘老师精品之作,哈哈。。。
作者:
gaofei186
时间:
2010-9-19 08:02
看看一下
作者:
xuwenning
时间:
2010-9-19 08:25
谢谢分享
学习了
作者:
c101
时间:
2010-9-19 09:41
谢谢分享
作者:
ljp518
时间:
2010-9-19 10:31
,学习
作者:
apsfxc1
时间:
2010-9-19 10:33
感谢分享
作者:
yihesmxx
时间:
2010-9-19 12:12
学习学习
作者:
jackysu78
时间:
2010-9-19 20:01
学习
作者:
kangking
时间:
2010-9-20 09:59
拿来学习。
作者:
轻风
时间:
2010-9-20 10:52
很好,谢谢分享。
作者:
ycxchen
时间:
2010-9-20 15:10
10楼的问题如何解决?
作者:
t小宝
时间:
2010-9-20 15:46
回复
红尘如烟
的帖子
奇怪了,我原来在一台电脑测试没有问题,现在另一台电脑却有10楼说的问题!同样是XP+ACCESS2003的环境.
运行出错,提示引用不存在的对象,ngLeft = rpt.Section(acDetail).Controls(0).Left这句话反相显示。
ycxchen 发表于 2010-9-18 11:13
作者:
aone
时间:
2010-9-20 17:02
报表画线确实很头疼!
作者:
ycxchen
时间:
2010-9-20 17:32
是不是ACCESS2003也分精简版与完整版的?以致会出现10楼的情况?
作者:
t小宝
时间:
2010-9-20 21:22
原来没有10楼问题的电脑现在也有问题了,晕
不过好象发现了一点问题:
我刚重装了OFFICE2003完整版的,反而有问题,而原来没有问题时装的却是雨林木风精简版的。
作者:
想做NO.1
时间:
2010-9-21 09:02
作者:
guzhonghua26
时间:
2010-9-25 15:46
学习一下,谢谢分享。
作者:
luhao
时间:
2010-10-13 00:39
look look
作者:
haocyc
时间:
2010-10-13 10:26
我要学习下
作者:
pipu7749
时间:
2010-10-15 22:12
試看看
作者:
zx994398
时间:
2010-10-29 09:55
高手如云啊,虚心求教,学习中……
作者:
石三少
时间:
2010-10-29 13:47
看看
作者:
chaosheng
时间:
2010-10-29 14:14
谢谢分享
作者:
j8311456
时间:
2010-10-29 15:06
谢谢分享
作者:
yanwei82123300
时间:
2010-11-22 10:15
谢谢分享!!
作者:
ralfchai
时间:
2010-11-23 11:49
谢谢分享,学习!
作者:
goto2008
时间:
2010-11-23 21:48
学习
作者:
lingjiang
时间:
2010-11-24 23:09
先学习--收藏!谢谢
作者:
pwj2009
时间:
2010-12-2 10:12
..哇。!!
作者:
zbjit
时间:
2010-12-17 17:42
找到了,多谢
作者:
li08hua
时间:
2010-12-17 18:12
谢谢指教!
作者:
QBH
时间:
2011-1-10 21:46
谢谢~学习一下
作者:
xyh2732
时间:
2011-1-10 22:13
学习学习
作者:
大胆
时间:
2011-1-10 23:51
学习呀,看来我什么都不懂呀,谢谢了
作者:
wang1950317
时间:
2011-1-11 15:01
收藏学习!谢谢!
作者:
xiaowuo2
时间:
2011-1-12 09:08
老师的作品,要顶的
作者:
hxn
时间:
2011-1-25 17:50
study
作者:
sd大海无量
时间:
2011-2-1 19:32
谢谢楼主!!!!
作者:
foxcong
时间:
2011-2-2 03:11
学习中
作者:
tzjj
时间:
2011-2-5 11:01
学习学习
作者:
明镜
时间:
2011-2-5 15:17
谢谢分享!!
作者:
hkbb100
时间:
2011-2-14 15:41
Thanks
作者:
简
时间:
2011-2-14 20:07
我在做报表,我要学习学习哈。
作者:
wgh3g
时间:
2011-2-14 22:42
学习了
作者:
momocaicai
时间:
2011-2-16 11:46
收藏了
谢谢
作者:
13555609005
时间:
2011-2-16 11:56
很好的功能,收藏了
作者:
文棣
时间:
2011-3-14 18:15
学习 用得着
作者:
newglord
时间:
2011-3-23 15:48
ding yi xiaxia
作者:
ptlijx
时间:
2011-3-23 19:59
很好
作者:
dddd042821
时间:
2011-4-7 13:43
先学习--收藏!谢谢!
作者:
zxy591
时间:
2011-4-7 22:03
好文章
作者:
GAOZHONG
时间:
2011-4-9 08:17
正好有用!多谢了
作者:
fxbianxiu
时间:
2011-4-11 11:51
好东西,收下,必须地
作者:
roych
时间:
2011-4-11 15:34
学习下
作者:
真主
时间:
2011-4-11 18:49
谢了
作者:
xxiaoxin321
时间:
2011-4-14 09:55
很好很强大!经常被报表对齐的问题困扰~~谢谢了!!!
作者:
eedream
时间:
2011-5-4 18:36
不错 谢谢!
作者:
liuhz2006
时间:
2011-5-6 18:16
先学习--收藏
作者:
qczvba
时间:
2011-5-7 08:39
thank,一定好。谢版主。
作者:
kucao520
时间:
2011-5-8 03:14
学习--收藏!谢谢!
作者:
jay_0218
时间:
2011-5-17 13:53
xiexie fenxiang
作者:
zsd5237
时间:
2011-5-23 06:30
学习再学习
作者:
youchytan
时间:
2011-5-23 07:28
先收再细细研习
作者:
mybigeng
时间:
2011-5-23 07:51
经典学习
作者:
fyssz
时间:
2011-5-27 13:59
先学习--收藏!谢谢!
作者:
Rules
时间:
2011-5-27 16:21
看看学学
作者:
zhaozhuonayes
时间:
2011-5-27 16:47
学习了,太喜欢了
作者:
宿命的风
时间:
2011-5-27 17:39
作者:
zyz218
时间:
2011-6-21 18:23
学习一下哦
作者:
xiazaidj
时间:
2011-7-11 13:58
学习学习
作者:
wmok
时间:
2011-7-12 02:43
看看,谢谢分享
作者:
licongli
时间:
2011-7-12 10:45
看看。
作者:
szgyyqty
时间:
2011-7-20 20:51
学习!学习!
作者:
crmserver
时间:
2011-7-21 15:45
good!!!!!!!!!!!!
作者:
yanghua1900363
时间:
2011-7-28 17:08
又出精品了 当然要学习!
作者:
today416
时间:
2011-8-4 13:49
看看
作者:
liusirang
时间:
2011-8-4 14:11
先学习--收藏!谢谢!
作者:
today416
时间:
2011-8-4 14:38
发表于 2010-9-18 11:13 |只看该作者
运行出错,提示引用不存在的对象,ngLeft = rpt.Section(acDetail).Controls(0).Left这句话反相显示。
---------------------------------------------------------------
这个问题没解决办法么?我下下来运行也有这个问题
作者:
kdjifir34562
时间:
2011-8-11 13:35
thanks
作者:
huangli0356
时间:
2011-8-11 23:37
看了,可是不清楚之间的含义???
作者:
tianya0073
时间:
2011-8-13 12:09
KKKKK
作者:
u2u0
时间:
2011-8-14 10:23
办法不错,试试看
作者:
大懒猫68
时间:
2011-8-17 22:33
学习红尘老师精品之作,哈哈。。。
作者:
wzh
时间:
2011-8-21 09:52
学习--收藏!谢谢!
作者:
xiayumei
时间:
2011-8-25 10:57
学习中!
作者:
MYPCOO
时间:
2011-9-5 21:08
谢谢分享!!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3