我有这样的代码来显示datagridview(要检查)和水晶报告
上的数据private void PrintReportForm_Load(object sender, EventArgs e)
{
// Getting result from SQL server database using LINQ to SQL
var result = AccessorReports.GetVoucherDetailByVoucherNo(VoucherNo);
// Displaying result on data grid view
dataGridView1.DataSource = result;
// Displaying result on crystal report
VoucherRpt cr = new VoucherRpt();
cr.Load("VoucherRpt.rpt");
cr.SetDataSource(result);
crystalReportViewer1.ReportSource = cr;
}
问题是我在水晶报告上获得重复输入,而数据网格视图显示单个输入。为什么? (附上截图)
对于数据网格视图中的每个条目,水晶报告上都有重复的条目。 提前感谢您的帮助:)
表格链接的截图
答案 0 :(得分:0)
检查水晶报告文档中的链接。如果有没有正确链接的表,那么它可以显示这样的重复记录。例如,如果您有另一个有3条记录的表,那么每条记录将显示3次。如果报表中没有使用任何表,则将其从数据库资源管理器中删除。
您正在使用Disconnected DataSource方法显示报告。
cr.SetDataSource(result);
此方法仅显示您在数据源中指定的数据。报告不会检查sql server中的数据。因此,请确保已分配在数据库资源管理器中选择的所有表数据。例如,如果您在报表中选择了3个表,则数据集应包含3个表。
//ds.Tables[0] : "table1"
//ds.Tables[1] : "table2"
//ds.Tables[2] : "table3"
cr.SetDataSource(ds);