我在本地呈现,我将数据集放入我的解决方案的数据访问层。如何从RDLC访问它?
答案 0 :(得分:1)
虽然我不确定如何直接回答你的问题,但我自己遇到了同样的问题,这是我的解决方案:
在C#中,我只是在本地访问了报告,并用我想要提供的任何数据覆盖了数据源:
using (var report = new LocalReport())
{
report.ReportPath = @"C:\Sample.rdlc";
report.DataSources.Clear();
report.DataSources.Add(new ReportDataSource("MyDataSet", yourDataSet));
var bytes = report.Render("PDF");
}
然后在RDLC文件的XML中,我只是指定了一个虚拟数据源,然后手动设置我自己的数据集的值:
<DataSources>
<DataSource Name="Dummy">
<DataSourceReference>Dummy</DataSourceReference>
<rd:DataSourceID>bd7d6037-aff5-4ce5-a156-a75f8c1e660b</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="MyDataSet">
<Fields>
<Field Name="Name">
<DataField>Name</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Amount">
<DataField>Amount</DataField>
<rd:TypeName>System.Decimal</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>Dummy</DataSourceName>
<CommandText />
</Query>
</DataSet>
</DataSets>
这对我有用。