假设我将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);
}
答案 0 :(得分:0)
我的问题是由于我用来填充DataSet(外键)的数据不一致造成的。我仔细检查了约束,一切正常。