我在代码中有一个方法:
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>'
int arg = FillSubreport;
,编译器会报错:"error CS0428: 无法将方法组 'FillSubreport' 转换为非委托类型 'int'。您是否打算调用该方法?" 但是,在您的情况下,这个最后的建议不幸地不是错误文本的一部分。 - Jeppe Stig Nielsen