1.如何判断是否到报表的最后一页
2.当报表数据源为空是,如果填充记录,也就是空报表(主要报表是以表格方式)
第页20行数据!
3.以表格形式做报表时,细节和本页合计部分有一部分空间,如何去掉,谢谢!
2.当报表数据源为空是,如果填充记录,也就是空报表(主要报表是以表格方式)
第页20行数据!
3.以表格形式做报表时,细节和本页合计部分有一部分空间,如何去掉,谢谢!
解决方案 »
- 如何用代码直接打开桌面“显示 属性”中“设置”选项卡的“高级”属性对话框?
- 隆重散分:一项重大发现供大家分享!
- 急问有关文件流问题......
- 100分求救仍未解决的问题---------------为什么我的用下面的方法关掉EXCEL,进程中总有EXCEL.exe存在,当关机的时候却总要提示保存模板?
- 编译错误的问题!!!---回者有分!!
- 如何在VB窗口中添加XP风格的菜单和按钮阿,谢谢谢谢!!!!!
- 请大家看看这条SQL语句应该怎么写???
- 谁有通过域名查IP的资料或代码?谢谢了
- 选用何种表格控件的问题
- 如何在VB中播放GIF动画?
- 这段数据插入代码哪里有问题?
- 求比DevPower Button Bar好的类似控件.
的方法是控制一页的记录行数,然后根据记录总数计算出总的页数,报表的pageNumber属
性表示当前的页码,比较一下就可以了,然后显示总页数与当前页码的方法如下:
--在页脚中添加一个用于显示总页数的Field和一个用于显示第几页的Field2。
--显示总页数的Field1:设置Summaryrunning的值为:0(ddsrNone)
summaryFunc的值为0
Summarytype的值为4
--显示第几页的Field2:设置Summaryrunning的值为:2(ddsrall)
summaryFunc的值为2
Summarytype的值为4
1) 如果记录源空,则可以建一临时记录集,除了允许字段为空外,其他的与原记录源
相同,这样可以增加空记录(比如20条),然后用临时记录集绑定
2) 如果记录源不空,记录数不能添满一页,想用空记录添满;则可以用如下方法控制: 首先,要有变量记录当前打印的是一页中的第几行(如整型的printline变量) 然后在报表的Detail_Format()事件中控制是否到达记录集尾,是否打印了20行 如果打到最后一条记录还没有打完一页,就让帮定的记录集moveprevious!!!直到
打印完一页! 注意:这里的最后一行可要控制好
第一次moveprevious时,不要进行清空绑定的field控件
第二次到最后一次moveprevious时,一定要清空绑定的field控件,否则会一直
显示最后一条记录
当到这一页最后一条记录时,设置它的visible为true,
Dim rst As ADODB.Recordset
Dim num As Integer '记录已输出的有效记录数-1
Dim bc As Integer '记录所需补的空记录数 ,在变,最后减为0
Dim bc2 As Integer '记录所需补的空记录数 ,一直不变
Dim totalPagenum As Integer '记录总页数
Dim recordnum As Integer '记录总记录数
Dim flag As Boolean '控制开关,控制最后一条记录的显示Private Sub ActiveReport_ReportStart()
Set rst = GetRecordset("select * from ymjzjl") '注意这里的打开方式,recordcount
'的属性必须可用
'赋初值
num = -1
recordnum = rst.RecordCount'总记录数
bc = 10 - recordnum Mod 10
If bc = 10 Then
bc = 0
End If
bc2 = bc '需要补充的行数
If bc = 0 Then
totalPagenum = recordnum / 10'总的页数
Else
totalPagenum = recordnum / 10 + 1
End If
rst.MoveFirst
DataControl1.Recordset = rst
End SubPrivate Sub Detail_Format()
PageBreak1.Enabled = False 'PageBreak1用来控制一页只显示10条记录
num = num + 1 '已经打印的行数
If num >= recordnum - 1 And bc > 0 Then
If flag = True Then
Field2.Text = ""
Field1.Text = ""
Field3.Text = ""
Field4.Text = ""
Field5.Text = ""
End If
flag = True
rst.MovePrevious
bc = bc - 1 '还需打印的空行减1
End If
If bc = 0 And flag = True Then
Field2.Text = ""
Field1.Text = ""
Field3.Text = ""
Field4.Text = ""
Field5.Text = ""
End If
If (num + 1) Mod 10 = 0 Then
If Me.pageNumber = totalPagenum Then
MsgBox ("Last Page!") '最后一页的最后一条,这里你可以添加自己的代码
End If If Not Me.pageNumber = totalPagenum Then
PageBreak1.Enabled = True '一页10行打印完毕,换页
End If
End If
End Sub
如果直接用AReport.pages则会出现错误!