2014-09-29 2 views
0

이것은 일반적인 질문 일 수 있지만 검색 후 해결 방법을 찾지 못했습니다. C#으로 Crystal Report를 사용하여보고합니다. 하위 보고서에 몇 가지 문제가 있습니다. Order 및 OrderDetail에 대한 월간 보고서를 만들고 싶습니다. 나는 다음 코드에 따라 그것을했는데, 실행하면 하위 보고서에 "Report has no table"예외가 발생합니다. 너 나 좀 도와 줄 수있어?크리스탈 보고서 하위 보고서에 테이블 예외가 없습니다.

rpt.SetDataSource(dsOrder); 

:

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; 

답변

1

당신이 시도 했습니까?

위의 행이 작동하지 않으면 테이블의 레코드를 확인하고 순서를 바꾸려면 하위 보고서를 먼저 설정하십시오. 하위 보고서가 변경 주 보고서로 이동 한 후 만들어진 전에 주 보고서에 추가 된 경우

+0

나는 모두를 시도했지만 변화가 없습니다 . 도움을 더 원합니다 – Andiana

+0

죄송합니다, 도와 드릴 수 없습니다. rpt.SetDataSource (dsOrder); 반환 된 테이블의 순서가 보고서/포함 된 보고서의 순서와 같으면 문제를 해결할 수 있어야합니다. – Lan

+0

당신은 RpOrderDetail sub = new RpOrderDetail()을 가지고 있습니다. 하지만 런타임에 하위 보고서를 추가하려고 할 때 사용하지 않습니까? – Lan

0

, 오른쪽 하위 보고서를 클릭하고 "다시 가져 오기 하위 보고서를"