Datareport打印动态报表的问题续

CowmanKing 2008-10-30 10:41:35
哈哈,打印字段数动态变化的报表已经取得进展,继续问家人大哥及其他朋友一点问题。

1.代码中我照猫画虎似的添加section2部分的表头标签label,但未成功,如何改进?
2.如何将section1部分的textbox定位到该部分的居中位置?因为bt要求如果只有一个或很少几个字段必须居中。(这个我觉得挺难的)。
3.由于section1部分的某字段比较长,所以我设置其width长一些,但是这样必然造成其后的小竖线(line)位置不定。如何画竖线并给竖线定位?

如果可能,欢迎在代码上标注并修改一下。

Private Sub DataReport_Initialize()

Dim dTextCol As New Collection '声明一个控件集合
Dim Ctl As Object

'根据情况,预先在报表上添加多个相关控件
'下面以RptTextBox控件为例

'先将所有TextBox(RptTextBox) 控件绑定到随便某一字段
For Each Ctl In Rpt7.Sections.Item("Section1").Controls
If TypeName(Ctl) = "RptTextBox" Then
Ctl.DataField = rs.Fields.Item(0).Name
dTextCol.Add Ctl
Ctl.Visible = False
End If
Next

'设定特定字段长度
For i = 0 To rs.Fields.Count - 1
If (rs.Fields.Item(i).Name = "油品标号") Then
dTextCol.Item(i + 1).Width = 1200
End If
If (rs.Fields.Item(i).Name = "购油单位") Then
dTextCol.Item(i + 1).Width = 1500
End If
Next i
'循环记录集,重新绑定字段
For i = 0 To rs.Fields.Count - 1
With dTextCol.Item(i + 1)
.Visible = True
.DataField = rs.Fields.Item(i).Name

.Left = mLeft
mLeft = .Left + .Width
'控件定位。还有Width等等比较复杂,要根据具体情况写代码判断
End With

Next i
Rpt7.Sections.Item("Section1").Height = 400

'__________以下照猫画虎把sections2部分的页标头里面的label标签加上,但没有成功。

For Each Ctl In Rpt7.Sections.Item("Section2").Controls
If TypeName(Ctl) = "RptLabel" Then
Ctl.Caption = rs.Fields.Item(0).Name
'MsgBox (Ctl.Caption)
dTextCol.Add Ctl
Ctl.Visible = False
End If
Next

For i = 0 To rs.Fields.Count - 1
With dTextCol.Item(i + 1)
.Visible = True
.Caption = rs.Fields.Item(i).Name '_________就是这里开始出错,所以画虎失败

.Left = mLeft
mLeft = .Left + .Width
'控件定位。还有Width等等比较复杂,要根据具体情况写代码判断
End With

Next i


Rpt7.Orientation = rptOrientLandscape '横向打印

End Sub
...全文
47 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CowmanKing 2008-10-31
  • 打赏
  • 举报
回复
哈哈,差点忘结贴了。
vbman2003 2008-10-30
  • 打赏
  • 举报
回复
1.这种报表定位的确比较麻烦...具体情况复杂,估计没法帮你
2.对于label控件,你要另外声明集合,比如:
Dim dLabelCol As New Collection

而且每个部分、各种类型控件都要声明一个集合,不能混用...

比如示例中集合命名的规则是
第一个字母d表示是细节部分,后面Col表示是集合,介于这两者之间的就是控件类型...

动态报表的考虑的东西更多,比较复杂,代码量比较大,慢慢来,急不得...
CowmanKing 2008-10-30
  • 打赏
  • 举报
回复
哈哈,谢谢家人大哥。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧