Crystal报表子报表没有表异常

时间:2014-09-29 14:19:18

标签: c# crystal-reports dataset subreport

这可能是一个常见问题,但我在谷歌搜索后无法找到解决方案。我正在使用带有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;

2 个答案:

答案 0 :(得分:1)

你试过这个:

rpt.SetDataSource(dsOrder);

如果上述行无效,请检查表格中的记录并尝试转动订单,先设置子报告。

答案 1 :(得分:0)

如果在进行更改之前将子报表添加到主报表中,请转到主报表,右键单击子报表并“重新导入子报表”