Rdlc报告未加载

时间:2016-09-11 14:08:40

标签: c# sql sql-server rdlc

我在Win Form应用程序中有一个通用的报表查看器

我从SP 5.0获得来自SP的DataSource;我在xml文件中有一个数据集。它包含存储过程的属性。

我的代码示例是

private void btnNewStaff_Click(object sender, EventArgs e)
{
        SaleManager aManager = new SaleManager();
        var reportForm = new CommonReportViewer(); 
        reportForm.commonRptViewer.LocalReport.ReportPath = "RptTransactionDetails.rdlc";
        var data = aManager.GetTransactionDetails(-9223372036854775808);
        var reportDataSource = new ReportDataSource("TransactionDetails", data);

        reportForm.ShowReport(new[] { reportDataSource });
    }

其中-9223372036854775808是事务ID(稍后会动态),数据源中的TransactionDetails是RDLC中数据集的名称。

从ShowReport开始,它将转到常见的报告表格,即

internal void ShowReport(IEnumerable<ReportDataSource> dataSources)
{
    foreach (var dataSource in dataSources)
        commonRptViewer.LocalReport.DataSources.Add(dataSource);

    commonRptViewer.LocalReport.Refresh();
    commonRptViewer.Refresh();
}

但是没有报告表格既不加载报告也无法找出问题所在。

1 个答案:

答案 0 :(得分:0)

您的报告路径不是实际路径。 您应该将报告定义为嵌入资源,或者定义完整报告路径

要使用嵌入式报告,请使用:

reportForm.commonRptViewer.LocalReport.ReportEmbeddedResource = "RptTransactionDetails.rdlc";

要使用报告路径,请计算路径(如下所示):

 string appPath = Application.StartupPath;
 reportForm.commonRptViewer.LocalReport.ReportPath = Path.Combine(appPath, Reports\RptTransactionDetails.rdlc");