「employee」という単一のテーブルを持つ「ReportDataSet.xsd」として定義された DataSet があるとします。これを手動で入力して、入力された DataSet をレポートの生成に使用する別の関数に返すにはどうすればよいですか? これが私が今していることですが、それが正しいかどうかはわかりません。
ReportDataSet ds = new ReportDataSet();
ReportDataSet.employeeRow empRow = ds.employee.AddemployeeRow(
employeeId, name, dateOfBirth, Address, Phone
);
return ds;
問題は次のとおりです。 デバッグすると、VS2010 のデバッガーの結果ビューでデータを確認できますが、DataSet (以下) を使用して生成した Crystal レポートは常に空白になります。
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);
}