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

如何从文件加载devexpress xtrareport并连接数据,devexpress,xtrareport,Devexpress,Xtrareport,在我的项目中,我对winforms使用devexpress xtrareports v.15 我有发票报告。它内部有一些文本字段和一个列表。我将数据连接到报表中的源: public InvoiceReport(InvoiceCommonData icd, List<ReportPosition> positions) { InitializeComponent(); this.ReportComm

在我的项目中,我对winforms使用devexpress xtrareports v.15

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

public InvoiceReport(InvoiceCommonData icd, List<ReportPosition> positions)
    {            
        InitializeComponent();            
        this.ReportCommonDataSource.DataSource = icd;
        this.positionsList.DataSource = positions;            
    }
打印报告时,我看到公共数据(
icd
)已绑定并已打印,但列表(
位置
)未绑定,它是空表,而不是实际数据。
问题是如何从文件中加载xtrareport布局并保存所有数据连接

但我认为您可以尝试替换默认repx文件到主连接的连接,因为当我们从报表设计器创建repx文件时,我们将连接设置为默认,当我们尝试使用查看器文件预览报表时,将repx另存为默认,获取默认保存连接,因此尝试替换所需sql连接的连接

if(((DevExpress.DataAccess.Sql.SqlDataSource)devxReport.DataSource).ConnectionParameters!=null)//如果报表中存在连接,则更改
{
((DevExpress.DataAccess.Sql.SqlDataSource)devxReport.DataSource).ConnectionParameters=null;
}
((DevExpress.DataAccess.Sql.SqlDataSource)devxReport.DataSource).连接参数=

新建DevExpress.DataAccess.ConnectionParameters.CustomStringConnectionParameters(sqlConnectionString)

但我认为您可以尝试替换默认repx文件到主连接的连接,因为当我们从报表设计器创建repx文件时,我们将连接和repx另存为默认值,当我们尝试使用查看器文件预览报表时,获取默认保存连接,因此尝试替换所需sql连接的连接

if(((DevExpress.DataAccess.Sql.SqlDataSource)devxReport.DataSource).ConnectionParameters!=null)//如果报表中存在连接,则更改
{
((DevExpress.DataAccess.Sql.SqlDataSource)devxReport.DataSource).ConnectionParameters=null;
}
((DevExpress.DataAccess.Sql.SqlDataSource)devxReport.DataSource).连接参数=

新建DevExpress.DataAccess.ConnectionParameters.CustomStringConnectionParameters(sqlConnectionString)

Lalit Sharma感谢您的回答。我的问题是,当我从文件中加载布局时,报告不显示列表。当我不加载布局时,它会正常工作。谢谢你的回答。我的问题是,当我从文件中加载布局时,报告不显示列表。当我不加载布局时,它会正常工作。
InvoiceReport report = new InvoiceReport(model.GetCommonData(), model.GetPositions());
var filename = "D://InvoiceReport.repx";
report.LoadLayout(filename);