我在datareport页注脚里添加了一个label控件有没有方法使label.caption属性每页显示的不一样呢?
比如我有a,b,c三个数值。我想第一页的label.caption=a,第二页的label.caption=b,第三页的label.caption=c。另:小弟我初来乍到,怎样给分?怎样看我最多有多少分可以给呢?
比如我有a,b,c三个数值。我想第一页的label.caption=a,第二页的label.caption=b,第三页的label.caption=c。另:小弟我初来乍到,怎样给分?怎样看我最多有多少分可以给呢?
解决方案 »
- 在部件引用中出现多个相同的部件名称
- VB6.0 MDI窗口下显示一个子窗口时如何自动关闭其他已经打开的子窗口?
- 紧急求救关于vb操作excel问题!!100分重谢,可以加分!
- 请问如何用VB实现 备份 / 恢复 功能?
- 100分求助如何用vb做一个脚本执行器可以在webBrowse里执行一段js脚本
- 这个insert为什么不行?
- 制作WINXP的资源管理器!高分求助!
- 只知道结构的地址,有什么办法取它的各个值??高手接分.
- 数据库引用问题,急,请帮忙,先谢谢各位
- 为什么我的Visual Basic没有SnapIn选项?
- 关于LEFT JOIN以后 更新 主表 中的相关记录的问题
- 我想请教一个VB方面的问题!
Label.Caption = Choose(Me.pageNumber, "a", "b", "c")
End Sub
如果a,b,c是变量呢?
调用的
'在Footer上放一个字段,设置如下属性:
.SummaryFunc=ddSFSum
.SummaryDistinctField="金额" '需要汇总的字段名
.SummaryRunning=ddSRAll
.SummaryType=ddSMPageTotal '按页汇总
'二.分析:DataReport没有页合计功能,而且每页5行数据的设置比较困难,虽然可以通过调节
' 边距来达到目的,但因系统、软硬件的设置,可能会在实际应用中出现偏差。要实现
' 上述二项功能,分组是一个手段
'三.思路:先导出表中数据,加上分组字段(5条数据一组)后导入一个新表。用ADO的SHAPE命令
' 实现分组和统计。隐藏分组标头的信息,设置分组标头的ForcePageBreak = 1,实现
' 每页5条数据的显示'====================================================================================='以下代码要选择“工程\引用”命令,引用“Microsoft AetiveX Date Objects 2.x Library”Option ExplicitPrivate Sub DataReport_Initialize()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Sql As String, strSql As String
Dim gID As Integer, i As Integer
'连接数据库,打开记录集
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Provider = "MSDataShape" '一定要这句,因为要用到ADO的SHAPE命令
cn.Open "Data Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source=" & App.Path & "\Northwind.mdb; " _
& "Persist Security Info=False;" _
& "Jet OLEDB:Database Password=zxcvbnm"
rs.CursorLocation = adUseClient
Sql = "select product,price,qty from tb"
rs.Open Sql, cn, adOpenKeyset, adLockOptimistic
'将信息添加分组字段导入临时表
Sql = "delete from temp_tb"
cn.Execute Sql '先删除临时表中信息
gID = 0
For i = 0 To rs.RecordCount - 1
If i Mod 5 = 0 Then gID = gID + 1 '5条信息用一个值,以便按gID分组
Sql = "insert into temp_tb(group_id,product,price,qty) values " & _
"(" & gID & ",'" & rs!product & "'," & rs!price & "," & rs!qty & ")"
cn.Execute Sql
rs.MoveNext
Next
Set rs = Nothing
'用SHAPE命令打开分组父子记录集
Sql = "select group_id,product,price,qty from temp_tb"
strSql = "SHAPE {" & Sql & " } " & _
"AS mGroup COMPUTE sum(mGroup.price) as price," & _
"sum(mGroup.qty) as qty, mGroup BY 'group_id' "
Set rs = New ADODB.Recordset
rs.Open strSql, cn, adOpenStatic, adLockReadOnly
'设置报表数据源
Set Rpt.DataSource = rs
'横向打印
Rpt.Orientation = rptOrientLandscape
'设置报表控件属性
'分组标头,不用设置DataMember
Rpt.Sections("Section6").Controls("text4").DataField = "group_id"
Rpt.Sections("Section6").Controls("text4").Visible = False '隐藏分组信息
Rpt.Sections("Section6").ForcePageBreak = 1 '强制分页
'细节标头
Rpt.Sections("Section1").Controls("text1").DataMember = "mGroup"
Rpt.Sections("Section1").Controls("text1").DataField = "product"
Rpt.Sections("Section1").Controls("text2").DataMember = "mGroup"
Rpt.Sections("Section1").Controls("text2").DataField = "price"
Rpt.Sections("Section1").Controls("text3").DataMember = "mGroup"
Rpt.Sections("Section1").Controls("text3").DataField = "qty"
'分组注脚,页合计。不用设置DataMember
Rpt.Sections("Section7").Controls("text5").DataField = "price"
Rpt.Sections("Section7").Controls("text6").DataField = "qty"
Rpt.Sections("Section7").Controls("label1").Caption = "本页合计"
'页标头,不要每页显示的话也可以放在报表标头中
Rpt.Sections("Section2").Controls("Label2").Caption = "库存报表"
Rpt.Sections("Section2").Controls("Label5").Caption = "报表日期:" & Date
Rpt.Sections("Section2").Controls("Label7").Caption = "产品名称"
Rpt.Sections("Section2").Controls("Label8").Caption = "价 格"
Rpt.Sections("Section2").Controls("Label9").Caption = "库存数量"
'页注脚
Rpt.Sections("Section3").Controls("Label3").Caption = "制表:张三"
Rpt.Sections("Section3").Controls("Label4").Caption = "审核:李四"
'报表注脚总计信息:
Rpt.Sections("Section5").Controls("Label6").Caption = "总 计"
Rpt.Sections("Section5").Controls("Function1").DataField = "price"
Rpt.Sections("Section5").Controls("Function2").DataField = "qty"
End Sub