0

「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);
}
4

1 に答える 1

0

私の問題は、DataSet (外部キー) の入力に使用していたデータの不一致が原因でした。制約を再確認したところ、すべて正常に機能しました。

于 2013-07-16T13:57:38.873 に答える