0
내가이 짓하는 실제 데이터 세트 파일이 : 내가 설정 한 CR 디자이너에서오류 수정 보고서 소스에 데이터 집합을 설정하려고 할 때
을하는이 같은 소스에 데이터 세트 :
document.SetDataSource(rv);
:
나는 C# 코드에 직면하고있다 문제는이 라인에있다 나는 그 라인에 올 때
마지막으로, 나는이 오류 : 문서가 사전로드 된 CR 문서 및 RV입니다 691,363,210
그냥 언급 한 줄 앞에 다음과 같습니다 데이터 집합입니다. 도 예외가 발생하지 ...
는 사람이 좀 도와 줄래?
이private void GenerateReport_Click(object sender, EventArgs e)
{
try
{
CrystalDecisions.CrystalReports.Engine.ReportDocument document = null;
document = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
document.Load(@"C:\output\CrystalReportTest.rpt");
DataTable dt = new DataTable();
dt.Columns.Add("FirstName");
dt.Columns.Add("LastName");
dt.Columns.Add("State");
dt.Columns.Add("Town");
dt.Columns.Add("ID");
dt.Rows.Add(new object[] { "James", "Bond", "England", "London", "1233428749020" });
dt.Rows.Add(new object[] { "Rocky", "Balboa", "USA", "Los Angeles", "471998425060" });
dt.Rows.Add(new object[] { "Keyser", "Soze", "Hungary", "Budapest", "3643428747898" });
List<DataTable> ldt = new List<DataTable>();
ldt.Add(dt);
System.Data.DataSet rv = new System.Data.DataSet();
rv = AddTableInReportDataSet(ldt);
if (rv != null)
{
document.SetDataSource(rv);
}
document.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, @"C:\output\Export_Test.pdf");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void SetMainReportDataSource(CrystalDecisions.CrystalReports.Engine.ReportDocument document, List<DataTable> tables)
{
if (tables.Count > 0)
{
DataSet reportDataSet = AddTableInReportDataSet(tables);
document.SetDataSource(reportDataSet);
}
}
private DataSet AddTableInReportDataSet(List<DataTable> tableList)
{
DataSet rv = new DataSet();
tableList.ForEach(tbl => AddTableInReportDataSet(rv, tbl));
return rv;
}
private void AddTableInReportDataSet(DataSet dataSet, DataTable table)
{
bool tableAlreadyAdded = dataSet.Tables.Cast<DataTable>().Where(tbl => tbl.TableName == table.TableName).Any();
if (tableAlreadyAdded)
{
foreach (DataRow currentRow in table.Rows)
{
dataSet.Tables[table.TableName].ImportRow(currentRow);
}
}
else
{
dataSet.Tables.Add(table);
}
}
UPDATE : 이것은 내가 내 응용 프로그램 설정 파일이 추가 내 문제 해결
:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
하지만 여전히, 내 보고서는
이
내 코드입니다 빈! 보여줄 것이 없다!
내부 예외 및 라인은 무엇입니까? – Furtiro
잘 모르겠습니다. 나는 아무것도 읽을 수 없다. @Furtiro –
IoFilesNotFoundException, 그래서 당신이 document.exportToDisk 줄을 두 번 확인하고 여기에 경로를 확인하는 것이 좋습니다 – Furtiro