关于推模式水晶报表数据源的设置问题

原创 2006年05月31日 09:47:00

一般我们使用推模式设计报表时,填充数据和设置数据源的代码大致如下(此处假设数据源有两个表):

DataSet ds = new DataSet();
OleDbDataAdapter dataAdapter1 = new OleDbDataAdapter("SELECT * FROM 表1",oleDbConnection1);
dataAdapter1.Fill(ds,"表1");

OleDbDataAdapter dataAdapter2 = new OleDbDataAdapter("SELECT * FROM 表2",oleDbConnection1);
dataAdapter2.Fill(ds,"表2");

Report1 oRpt = new Report1();    //Report1为项目中已经设计好的报表
oRpt.SetDataSource(ds);
crystalReportViewer1.ReportSource = oRpt;

    网上很多人认为在设置报表数据源的时候,即oRpt.SetDataSource(ds)这句应该写成oRpt.SetDataSource(ds.Tables[0]),这样才能将表指定给报表,甚至有人在回答报表加载失败时,认为问题就是出在这里,CSDN里经常可以看到这样的回复。

    其实这种观点是有误的,oRpt.SetDataSource(ds.Tables[0])只适合于指定单表作为数据源的情况,如果是多表(如上面例子代码),这样指定就会丢失表2的数据,甚至可能引起加载失败。

    一般出现加载失败,多数是因为以下几种原因:

    1,报表和数据源的结构不一致,字段多少、类型等不对应;
    2,数据源里各表的链接关系设置不正确,导致主键或索引冲突;
    3,报表路径问题,使用的是绝对路径访问;

    所以,如果出现错误应多检查自己设计是否有问题,只要数据源表和报表模板开发正确,使用oRpt.SetDataSource(ds)是不会有任何问题的!

access数据库使用水晶报表(PUSH)推模式实现多数据源含子报表的订单打印

最近改造一个小型购物网站,要求使用水晶报表实现订单打印,本人对水晶报表从一无所知到,到最终弄出来整整花了一夜的时间,特此记录下此文和大家共享。 关于水晶报表更详细的介绍建议大家可以参考阿泰的博客:h...

设置App_Code里的类作为水晶报表的ADO.Net数据源

上面有一个在App_Code里的一个类 using System; using System.Collections.Generic; using System.Linq; using System....

水晶报表之主从多表数据源批量预览及打印开发设计

第一步:创建强类型数据集,添加数据表,一般情况下,设置各个字段类型为字符串,对于图片字段,数据类型为System.Byte[],指定各个数据表之间的关系。如果父表为SickInfo,子表为ChemPr...

一起学习水晶报表之推模式【强类型的DataSet实现显示报表数据】(课程6)

前面探讨了一种推模式,是弱类型的DataSet的,这里我们接着讨论了一下如何进行强类型的DataSet实现显示报表数据。 那么这两种区别在哪里呢?我们来简单分析一下, 我们刚才通过弱类型的DataSe...

.NET下水晶报表传递数据的两种模式

摘自:http://hi.baidu.com/xbzhu/blog/item/95158d5066d3f16785352427.html   摘 要 本文介绍了水晶报表的数据传递的两种模式,指出了...
  • VS_URL
  • VS_URL
  • 2012年06月03日 11:06
  • 2059

关于水晶报表的两种数据填充方式和SetDatabaseLogon的先后问题

1.执行了存储过程并且带有参数,例如:图A(存储过程) 那么在我们设计报表的时候已经将相对应的存储过程加入到水晶报表里面了。所以在报表自身浏览的时候只要输入参数的值就可以得到游览结果 例如 图B...

java 接入水晶报表实现代码自定义数据源(新手接触水晶报表)

公司java项目要求接入水晶报表,用于
  • kyclkk
  • kyclkk
  • 2014年11月19日 08:43
  • 1332

【水晶报表内功心法】--PUSH模式样板招式

索引 .【水晶报表内功心法】--序言 .【水晶报表内功心法】--推拉之间 .【水晶报表内功心法】--PULL模式样板招式 ================================...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于推模式水晶报表数据源的设置问题
举报原因:
原因补充:

(最多只允许输入30个字)