为什么我的水晶报表不能从dataset中得到数据?提示的错误是:未处理的“CrystalDecisions.CrystalReports.Engine.LoadSaveReportException”类型的异常出现在 crystaldecisions.crystalreports.engine.dll 中。
其他信息: 无效报表文件路径代码部分是这样的:
private void fmDataSet_Load(object sender, System.EventArgs e)
{
string str="select * from IQCACPT";
DataSet ds=new DataSet();
ds=DllPubInfo.PubInfo.AccessDB.GetQueryResult(str,"acpt");
ReportDocument re=new ReportDocument();
re.SetDataSource(ds);
this.crystalReportViewer1.ReportSource=re;
}说明,ds可以正常取得数据集。因为我采用接口调用服务器上的存储过程,所以本机没有定义连接的代码。
其他信息: 无效报表文件路径代码部分是这样的:
private void fmDataSet_Load(object sender, System.EventArgs e)
{
string str="select * from IQCACPT";
DataSet ds=new DataSet();
ds=DllPubInfo.PubInfo.AccessDB.GetQueryResult(str,"acpt");
ReportDocument re=new ReportDocument();
re.SetDataSource(ds);
this.crystalReportViewer1.ReportSource=re;
}说明,ds可以正常取得数据集。因为我采用接口调用服务器上的存储过程,所以本机没有定义连接的代码。
this.crystalReportViewer1.ReportSource=@"E:\水晶报表示例1.rpt";
也不行!报的错误一样
private void fmDataSet_Load(object sender, System.EventArgs e)
{
this.crystalReportViewer1.ReportSource=@"E:\水晶报表示例1.rpt";
}
我从官方网站上找了个例子(可真难找啊),按照例子 做了强类型,虽然我不喜欢这么做,
因为这样,一个DataSet1.xsd就和一个CrystalReport.rpt对应了,就失去了灵活性。我是比较懒的,我想只设计一个rpt,运行时,每个程序都可以设置相应的字段,然后填充。大家如果对这种方法感兴趣,就把邮箱留给我,我把例子发给你们。,感兴趣的记下了,免的当成垃圾邮件删掉了:)
DataSet ds=new DataSet();
ds=DllPubInfo.PubInfo.AccessDB.GetQueryResult(str,"acpt");
ReportDocument re=new ReportDocument();
re.load(@"E:\水晶报表示例1.rpt");
re.SetDataSource(ds);
this.crystalReportViewer1.ReportSource=re;
//加 re.load()就可以了。