2013-06-05 245 views
0

比方說,我將一個DataSet定義爲「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); 
} 
+0

你收到任何類型的錯誤?什麼導致你認爲這是錯誤的是沒有數據顯示在報告上? – Bearcat9425

+0

您確定要將報表數據源正確設置到此DataSet嗎?可能還會顯示該代碼。 – Bearcat9425

+0

@ Bearcat9425我認爲是的。我只需從函數中獲取數據集,然後在報表對象上調用SetDataSource。 – rafale

回答

0

我的問題是在我所用,以填補在DataSet(外鍵)數據的差異造成的。我仔細檢查了限制,一切正常。