还是“该报表不包含表”的问题

bdxxxx 2009-08-12 06:22:20

Dim DS2 As DataSet2 = New DataSet2
DS2.Clear()
Dim DS2DT1 As DataSet2.DataTable1DataTable = New DataSet2.DataTable1DataTable
For i As Integer = 0 To MainForm.SalesView.Rows.Count - 1
Dim dr As DataRow = DS2DT1.NewRow
For j As Integer = 0 To MainForm.SalesView.ColumnCount - 1
dr(j) = MainForm.SalesView.Rows(i).Cells(j).Value
Next
DS2DT1.Rows.Add(dr)
Next

Dim MyReport As CrystalDecisions.CrystalReports.Engine.ReportDocument = New CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim P As String = Application.StartupPath & "\Report.rpt"
MyReport.Load(P)
MyReport.SetDataSource(DS2)
CRV.ReportSource = MyReport


在报表中设置的数据库字段就是DataSet2.DataTable1这个表的列,名称上也没问题。
MyReport.SetDataSource(DS2)这一行换成
MyReport.SetDataSource(DS2DT1.DataSet)也不行
在代码的空行处加上DS2.Tables.Add(DS2DT1)也不行
就不知道哪里有问题了
请高手帮忙看看!
...全文
471 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
superman_2008_2009 2011-01-01
  • 打赏
  • 举报
回复
从lz的问题中解决了我自己的问题,太感谢了
bdxxxx 2009-08-13
  • 打赏
  • 举报
回复
疯了,终于知道什么原因了,设计的report.rpt和bin\debug\下的report.rpt结构不一致。



结了结了。。。。。
bdxxxx 2009-08-13
  • 打赏
  • 举报
回复
我看了一下,很多例子的dataset都是用dataatapter直接fill的,不是像我这样给一个datatable赋值。估计是这里出了问题,那要是需要用datatable的数据作为水晶报表的数据源怎么做呢
bdxxxx 2009-08-12
  • 打赏
  • 举报
回复
不行啊,不管是table(0)还是table(1)都不行
wuyq11 2009-08-12
  • 打赏
  • 举报
回复
dt1 = ds.Tables(0)
Dim CNa As New Rpt.CrpNation()
CNa.SetDataSource(dt1)
Me.CrystalReportViewer1.ReportSource = CNa
Me.CrystalReportViewer1.DataBind()

Dim Rpt As New ReportDocument
Rpt.SetDataSource(DataSet1.Tables(0))
CrystalReportViewer1.ReportSource = Rpt
参考
bdxxxx 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 wuyq11 的回复:]
DS2结构是否和绑定到报表的结构一致

通过数据集xsd绑定到报表.再设置数据源
[/Quote]

这些都没错,就是不知道怎么出现了2个datatable的了
但是如果把参数改成DS2.Tables(0)或者DS2.Tables(1)还是不行
wuyq11 2009-08-12
  • 打赏
  • 举报
回复
不是有没有数据问题,主要是字段是否一致和设置是否正确
wuyq11 2009-08-12
  • 打赏
  • 举报
回复
DS2结构是否和绑定到报表的结构一致

通过数据集xsd绑定到报表.再设置数据源
bdxxxx 2009-08-12
  • 打赏
  • 举报
回复
上面的那个没数据,可能就是这个原因,可是这是怎么来的啊

请教了
谢谢
bdxxxx 2009-08-12
  • 打赏
  • 举报
回复
啊 发现了,有两个datatable1 一个有数据,一个没数据, 没数据的那个怎么来的呢~
llsen 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 bdxxxx 的回复:]
DS2里的DATATABLE是这样的



时间是DateTime类型,进价、零售价是double,折扣是int32,其余都是string
数据库里时间是日期类型,进价、零售价、折扣都是数字,其余是文本

把datatable里数据类型都改成string也提示一样的错误


引用 22 楼 llsen 的回复:
DS2没有报表所需的表结构

具体怎么么解释啊

谢谢了
[/Quote]

不是这个截图,是运行时,看他的数据
像你21楼的,但是不是这个查看,你点击DS2后面的那个放大镜,看到里面的数据
bdxxxx 2009-08-12
  • 打赏
  • 举报
回复
DS2里的DATATABLE是这样的





时间是DateTime类型,进价、零售价是double,折扣是int32,其余都是string
数据库里时间是日期类型,进价、零售价、折扣都是数字,其余是文本

把datatable里数据类型都改成string也提示一样的错误



[Quote=引用 22 楼 llsen 的回复:]
DS2没有报表所需的表结构
[/quote]
具体怎么么解释啊

谢谢了
llsen 2009-08-12
  • 打赏
  • 举报
回复
这个的原因应该就是你的DS2没有报表所需的表结构
bdxxxx 2009-08-12
  • 打赏
  • 举报
回复


是这样的


我加了一个DATAGRIDVIEW,设置DataSource 为 DS2DT1,可以正常显示。
llsen 2009-08-12
  • 打赏
  • 举报
回复
你在
MyReport.SetDataSource(DS2)
打断点
看看DS2的值,
llsen 2009-08-12
  • 打赏
  • 举报
回复
你这个看似没什么问题,

奇怪
bdxxxx 2009-08-12
  • 打赏
  • 举报
回复

报表是这样的
llsen 2009-08-12
  • 打赏
  • 举报
回复
还有dataset
llsen 2009-08-12
  • 打赏
  • 举报
回复
页面
llsen 2009-08-12
  • 打赏
  • 举报
回复
报表还有页眉

加载更多回复(14)
Crystal Reports 9.2 中文版(水晶) 下载,,软件版本:9.2.0.448不过现已出了Crystal Reports Professional v9.2.2.634 (c) Crystal Decisions,有足够的空间就提供.这是一个很不错的控件,我相信很多朋友都听说过吧!Crystal Reports 用于处理数据库,帮助用户分析和解释重要信息。使用 Crystal Reports 可以方便地创建简单,同时它也提供了创建复杂或专用的所需的整套工具。 创建所能想象的任何 Crystal Reports几乎可以从任何数据源生成您需要的。内置专家在您生成和完成一般的任务过程中,会一步一步地指导您进行操作。专家通过公式、交叉、子和设置条件格式帮助现数据的实际意义,揭示可能被隐藏掉的重要关系。如果文字和数字确实不够充分,则用地理地图和图形进行形象的信息交流。 将扩展到 Web Crystal Reports 的灵活性并未停留在创建这一功能上 ?您可以用各种各样的格式发布,包括用 Microsoft 的 Word 和 Excel 发布、通过电子邮件甚至 Web 发布。高级的 Web 功能允许工作组中的其他成员在他们自己的 Web 浏览器中查看或更新共享。 将并入应用程序通过将 Crystal Reports 的处理功能整合到自己的数据库应用程序中,应用程序和 Web 开发人员可以节省开发时间并满足用户的需求。Crystal Reports 支持大多数流行的开发语言,可以方便地在任何应用程序中添加。 不论您是 IT 行业的站点管理员,还是营销推广经理,也无论您是金融业的数据库管理员还是 CEO,Crystal Reports 都堪称是一个功能强大的工具,它可以帮助每一个人分析、解释重要信息。感谢 revenant 上传!
这个指南让你熟悉设计器和了解设计的基本概念(各种区域,数据源,二次,等等)。指南将帮助你开始用FastReport创建,但它不能告诉你怎样使用其它基本的设计器。 如果你不熟悉设计器,我们建议你参考QuickReport的帮助系统。QuickReport的指南已经包含在你的Delphi拷贝中。QuickReport的大部分基本概念也适用于FastReport,然而,FastReport能提供更多的弹性和最终用户的自定义。 关于FastReport的说明 FastReport是高弹性的设计器,用于的数据可以从任何类型的数据源获取,包含字符列,BDE数据库,ADO数据源(不使用BDE),Interbase(使用IBO),Pascal数组和记录,以及一些不常用的数据源。 整个FastReport系统是用Delphi的Pascal编写的。FastReport不需要动态链接库,但需在你的项目中占用大约400kb(Delphi 5)。如果你想最终用户拥有设计能力,这将在你的.EXE中增加大约500kb。虽然这看上去比较大,但这只是其它设计的几分之一。你同样应该考虑到FastReport不仅仅只是包含最终用户更改设计的能力,还能够适应查询和数据库的变化。FastReport还包含自己的脚本语言,让应用程序和最终用户能够更容易地改变。如果你的大部分应用使用FastReport,你可以简单地配置FastReport BPL(大约1400kb)而所有你的应用程序只需要保留很少的一部分。 你可以发现FastReport有一个非常吸引人的用户界面,使用最新的用户界面组件,例如可停靠的工具栏。你的最终用户将会非常愿意使用这个设计器,只需使用鼠标就可以创建大多数。 FastReport是名副其实的快速:较其它一些Delphi设计器而言,你可以发现没有什么可以接近于它的开发速度。预览窗口一直是大多数设计器的弱点,高品质的外观,赋于你的应用程序非常专业的用户界面。 FastReport是一个已经拥有三年历史的非常成熟的设计器,成长使它拥有其它Delphi设计器所不能相比的诸多先进特性。

4,816

社区成员

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

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