0

假设我有一个定义为“ReportDataSet.xsd”的数据集,其中包含一个名为“employee”的表。如何手动填写它,以便我可以将填充的 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);
}
4

1 回答 1

0

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

于 2013-07-16T13:57:38.873 回答