如何从文件加载devexpress xtrareport并连接数据

时间:2016-03-31 17:34:26

标签: devexpress xtrareport

我在项目中使用devexpress xtrareports v.15 for winforms。

我有发票报告。它里面有一些文本字段和一个列表。我将数据连接到report ctor中的源:

public InvoiceReport(InvoiceCommonData icd, List<ReportPosition> positions)
    {            
        InitializeComponent();            
        this.ReportCommonDataSource.DataSource = icd;
        this.positionsList.DataSource = positions;            
    }

当我打印报表时,因为它是在Visual Studio中创建的,数据是以正确的方式连接的。 但我需要为此报告加载不同的布局。我将报表布局存储为repx文件,并尝试在运行时从文件加载它:

InvoiceReport report = new InvoiceReport(model.GetCommonData(), model.GetPositions());
var filename = "D://InvoiceReport.repx";
report.LoadLayout(filename);

当我打印报告时,我看到公共数据(icd)被绑定并被打印但是列表(positions)没有绑定,它是空表而不是真实数据。 问题是如何从文件加载xtrareport布局并保存所有数据连接?

1 个答案:

答案 0 :(得分:0)

但是我认为你可以尝试将默认repx文件的连接替换为主连接,因为当我们从报表设计器创建repx文件时我们设置连接并且当我们尝试使用查看器文件预览报表时将repx保存为默认值保存连接,所以尝试从所需的sql连接替换连接。

喜欢if (((DevExpress.DataAccess.Sql.SqlDataSource)devxReport.DataSource).ConnectionParameters != null) //change if connection exists in report { ((DevExpress.DataAccess.Sql.SqlDataSource)devxReport.DataSource).ConnectionParameters = null; } ((DevExpress.DataAccess.Sql.SqlDataSource)devxReport.DataSource).ConnectionParameters = new DevExpress.DataAccess.ConnectionParameters.CustomStringConnectionParameters(sqlConnectionString);