2013-06-05 4 views
0

"employee"라는 단일 테이블로 "ReportDataSet.xsd"로 정의 된 데이터 세트가 있다고 가정 해 봅니다. 이것을 수동으로 채우려면 어떻게해야합니까? 채워진 DataSet을 보고서를 생성하는 데 사용할 다른 함수로 반환 할 수 있습니까? 제가 지금하고있는 일이 여기 있습니다. 그러나 그것이 옳은 것인지 확실하지 않습니다.수동으로 데이터 세트 채우기

ReportDataSet ds = new ReportDataSet(); 

ReportDataSet.employeeRow empRow = ds.employee.AddemployeeRow(
    employeeId, name, dateOfBirth, Address, Phone 
); 

return ds; 

여기에 문제가있다 : 나는 그것을 디버깅 및 VS2010의 디버거 결과보기에서 데이터를 볼 수 있습니다,하지만 난 데이터 집합 (아래)를 사용하여 생성 크리스탈 리포트는 항상 빈 나온다.

EmployeeReport rpt = new EmployeeReport(); //EmployeeReport.rpt 
ReportDataSet rds = GetDataSet(); 
rpt.Load(); 
rpt.SetDataSource(rds); 

저는 뷰어를 사용하지 않고 곧바로 보고서를 작성합니다. 결과 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

보고서 데이터 원본을이 데이터 집합으로 올바르게 설정 하시겠습니까? 그 코드를 보여줄 수도 있습니다. – Bearcat9425

+0

@ Bearcat9425 그렇게 생각합니다. 간단히 함수에서 데이터 집합을 가져 와서 보고서 개체에서 SetDataSource를 호출하면됩니다. – rafale

답변

0

내 문제는 DataSet (외래 키)을 채우는 데 사용한 데이터의 불일치로 인해 발생했습니다. 나는 제약 조건을 두 번 점검했고 모든 것이 잘 작동했다.

관련 문제