水晶报表 打印没数据的问题

xunis 2010-07-26 02:22:08



    Protected Sub cmdPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdPrint.Click

Try

Dim crs As New CrystalDecisions.Web.CrystalReportSource
Dim rpt As ReportDocument = crs.ReportDocument
'Dim rpt As ReportDocument = Me.CrystalReportSource1.ReportDocument

rpt.Load(Server.MapPath("Print.rpt")) '加载报表
rpt.SetDataSource(getDataSet()) '加载数据源
crs.DataBind()

Me.CrystalReportViewer1.ReportSource = rpt
Me.CrystalReportViewer1.DataBind()

Catch ex As Exception
Throw ex
End Try
End Sub

'数据源
Function getDataSet() As DataSet
Dim ds As New DataSet
Dim dtCustomers As New DataTable
dtCustomers.TableName = "Customers"
Dim dtOrders As New DataTable
dtOrders.TableName = "Orders"
Dim dtOrderDetail As New DataTable
dtOrderDetail.TableName = "OrderDetail"

'给datatable赋数据的代码就省略了 通过dubug 每次这里都是没问题的

ds.Tables.Add(dtCustomers)
ds.Tables.Add(dtOrders)
ds.Tables.Add(dtOrderDetail)
Return ds
End Function


第一张图是执行上面的代码后出现的结果



当点击了上面的打印按钮后 然后调打印机打印 打印完毕 刷新的页面是上面的图 没有数据了

请问这是怎么回事?



ASP.NET 和 VB.NET写的

***.xsd 数据源里面的表明和字段名也是准确无误的 就是点打印后没数据
...全文
241 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xunis 2010-07-26
  • 打赏
  • 举报
回复
方法如下:

Private Shared flag As Boolean = False

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
If flag Then 'flag的作用根据你自己的情况定义 我的报表页面也在查看页面 所以用这个来限制报表是否显示
If (Session("rpt") IsNot Nothing) Then '赋session
CrystalReportViewer1.ReportSource = CType(Session("rpt"), ReportDocument)
End If
End If
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
flag = False
'...省略自己用的若干代码
End If
End Sub



Sub Print()
Try

Dim crs As New CrystalDecisions.Web.CrystalReportSource
Dim rpt As ReportDocument = crs.ReportDocument
'Dim rpt As ReportDocument = Me.CrystalReportSource1.ReportDocument

rpt.Load(Server.MapPath("Print.rpt")) '加载报表
rpt.SetDataSource(getDataSet()) '加载数据源 赋给一个dataset
crs.DataBind()
Me.CrystalReportViewer1.ReportSource = rpt
Session("rpt") = rpt 'session赋值
Me.CrystalReportViewer1.DataBind()

Catch ex As Exception
Throw ex
End Try
End Sub


Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload
Me.CrystalReportViewer1.Dispose()
End Sub



请参考,谢谢以上
xunis 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 babyt 的回复:]
请贴一下你“按照方法做了”之后的代码
[/Quote]

哈哈 感谢阿泰啦 问题解决了 自己的小失误导致出错的 遇到此类问题的 请参考四楼!谢谢 完美结贴!
xunis 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 luols 的回复:]
http://topic.csdn.net/u/20090713/18/6e14bf28-1979-4ade-9c60-aaf09284553d.html?97378

仔细看一下里面的第2点 小代码,大作用
[/Quote]
感谢了 方法是准确无误的 是我的小失误 哈哈 问题解决了!
阿泰 2010-07-26
  • 打赏
  • 举报
回复
请贴一下你“按照方法做了”之后的代码
xunis 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 luols 的回复:]
http://topic.csdn.net/u/20090713/18/6e14bf28-1979-4ade-9c60-aaf09284553d.html?97378

仔细看一下里面的第2点 小代码,大作用
[/Quote]

当我看到你时 我激动万分 按照方法做了 还是不行?其他地方出问题了吧?

并且之前我也有翻页没数据的情况的 郁闷了 阿泰所说的应该就是我的问题啊 晕晕
阿泰 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xunis 的回复:]

引用 5 楼 izbox 的回复:
Sorry 这个报表,没研究 - -


师傅 赶紧研究啊 徒儿就要由于这毙命了
[/Quote]

请参考4楼给的链接。
xunis 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 izbox 的回复:]
Sorry 这个报表,没研究 - -
[/Quote]

师傅 赶紧研究啊 徒儿就要由于这毙命了
izbox 2010-07-26
  • 打赏
  • 举报
回复
Sorry 这个报表,没研究 - -
阿双2009 2010-07-26
  • 打赏
  • 举报
回复
xunis 2010-07-26
  • 打赏
  • 举报
回复
rpt.Load(Server.MapPath("Print.rpt")) '加载报表
rpt.SetDataSource(getDataSet()) '加载数据源

rpt.PrintToPrinter(1, True, 0, 0)
Me.CrystalReportViewer1.ReportSource = rpt
Me.CrystalReportViewer1.DataBind()


加入了上面的一行代码也是不行!
xunis 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 z307755214 的回复:]
 是否传入了中文参数 ? 
[/Quote]

中文参数? 烦请具体点告诉我 第一次做报表 getDataSet() table中没有中文参数
雷肿么了 2010-07-26
  • 打赏
  • 举报
回复
 是否传入了中文参数 ? 

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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