我的代码中有一个方法:
private void SetSubReportDataSource(CrystalDecisions.CrystalReports.Engine.ReportDocument document, List<DataTable> tables, int counter)
{
if (tables.Count > 0)
{
System.Data.DataSet reportDataSet = AddTableInReportDataSet(tables);
CrystalDecisions.CrystalReports.Engine.ReportDocument subReport = document.Subreports[counter];
subReport.SetDataSource(reportDataSet);
}
}
我做了这个:
public List<DataTable> FillSubreport()
{
List<DataTable> ldt = new List<DataTable>();
DataTable dt = new DataTable();
dt.Columns.Add("SectionID");
dt.Columns.Add("SectionName");
dt.Rows.Add(new object[] { "1", "Subreport1"});
dt.Rows.Add(new object[] { "2", "Subreport1" });
dt.Rows.Add(new object[] { "3", "Subreport1" });
ldt.Add(dt);
return ldt;
}
当尝试执行第一个这样的方法时:
SetSubReportDataSource(document, FillSubreport , subReportCounter);
FillSubreport是高亮的,我收到了这个错误:
Cannot convert from 'method group' to 'List<DataTable>'
答案 0 :(得分:1)
这似乎是代码中的一个简单语法错误:
SetSubReportDataSource(document, FillSubreport , subReportCounter);
您正在尝试拨打FillSubreport
,但未能在其末尾添加()
以表明它是一种方法。尝试:
SetSubReportDataSource(document, FillSubreport(), subReportCounter);
答案 1 :(得分:0)
您也可以尝试这样做,
List<DataTable> data = FillSubreport();
SetSubReportDataSource(document, data , subReportCounter);