手动填充DataSet

时间:2013-06-05 15:44:04

标签: c# visual-studio-2010 crystal-reports dataset

假设我将DataSet定义为“ReportDataSet.xsd”,其中包含一个名为“employee”的表。我如何在Manually中填写此内容,以便将填充的DataSet返回给另一个用它来生成报告的函数?这就是我现在正在做的事情,但我不确定它是否正确。

ReportDataSet ds = new ReportDataSet();

ReportDataSet.employeeRow empRow = ds.employee.AddemployeeRow(
   employeeId, name, dateOfBirth, Address, Phone
);

return ds;

以下是问题: 我调试它并且可以在VS2010的调试器结果视图中看到数据,但是我使用DataSet(下面)生成的晶体报告总是显示为空白。

EmployeeReport rpt = new EmployeeReport(); //EmployeeReport.rpt
ReportDataSet rds = GetDataSet();
rpt.Load();
rpt.SetDataSource(rds);

我没有使用查看器并立即将报告写入PDF。生成的PDF具有模板(图像等),但没有数据。

FileStream fStream = new FileStream("c:\\quote.pdf", FileMode.CreateNew);
using (fStream)
{
   MemoryStream oStream = (MemoryStream)rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
   byte[] data = oStream.ToArray();
   fStream.Write(data, 0, data.Length);
}

1 个答案:

答案 0 :(得分:0)

我的问题是由于我用来填充DataSet(外键)的数据不一致造成的。我仔细检查了约束,一切正常。