这可能是一个常见问题,但我在谷歌搜索后无法找到解决方案。我正在使用带有C#的Crystal Report来进行报告。我在子报告方面遇到了一些问题: 我想为Order和OrderDetail创建一个月度报告。我按照以下代码执行了它,但是在运行时,它会抛出异常"报告没有表"在分报告上。你能救我吗?
RpOrder rpt = new RpOrder();
RpOrderDetail sub = new RpOrderDetail();
DataSet dsOrder = new dsOrder();
DataSet dsOrderDetail = new dsOrderDetail();
dsOrder.Tables.Add(new DataTable());
dsOrder.Tables.Add(new DataTable());
dsOrderDetail.Tables.Add(new DataTable());
foreach(Order nx in listNX )
{
dsOrder.Tables[0].Rows.Add(
new object[]{nx.NgayOrder,nx.GetIsNhapString(),nx.NguoiGiaoHang,nx.TongTien}
);
foreach(OrderDetail ct in nx.ChiTiets)
{
dsOrder.Tables[1].Rows.Add(new object []{
ct.HangHoa.TenHangHoa,
ct.HangHoa.MaHang,
ct.DonGia,
ct.SoLuong,
ct.SoLuong * ct.DonGia
});
}
}
rpt.SetDataSource(dsOrder.Tables[0]);
rpt.Subreports[0].SetDataSource(dsOrder.Tables[1]);
crystalReportViewer1.ReportSource = rpt;
答案 0 :(得分:1)
你试过这个:
rpt.SetDataSource(dsOrder);
如果上述行无效,请检查表格中的记录并尝试转动订单,先设置子报告。
答案 1 :(得分:0)
如果在进行更改之前将子报表添加到主报表中,请转到主报表,右键单击子报表并“重新导入子报表”