2016-03-31 15 views
1

Ich benutze Devexpress xtrareports v.15 für winforms in meinem Projekt.So laden Sie xtrareport aus Datei und verbinden Daten

Ich habe Rechnung Bericht. Es hat einige Textfelder innerhalb und eine Liste. Ich verbinde Daten zu Quellen in Bericht Ctor:

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

Wenn ich Bericht drucken, wie sie in Visual Studio-Daten erstellt wurde, wird in der rechten Weise verbunden. Aber ich muss verschiedene Layouts für diesen Bericht laden. Ich speichere Berichtslayout als repx Datei und versuchen Sie es zur Laufzeit aus einer Datei zu laden:

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

Wenn ich Bericht drucke ich sehe, dass gemeinsame Daten (icd) wurde gebunden und gedruckt wird, aber Liste (positions) nicht gebunden und Es ist eine leere Tabelle anstelle von echten Daten. Frage ist, wie xtrareport Layout von Datei laden und alle Datenverbindungen speichern?

Antwort

0

aber ich denke, Sie können versuchen, Verbindung der Standard-Repx-Datei zu Ihrer Hauptverbindung zu ersetzen, wenn wir Repx-Datei von Berichts-Designer zu dieser Zeit erstellen wir Verbindung und Repx speichern als Standard, wenn wir versuchen, Bericht mit Viewer-Datei abrufen Speichern Sie die Verbindung standardmäßig, versuchen Sie daher, die Verbindung von der erforderlichen SQL-Verbindung zu ersetzen.

wie 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);

+0

Lalit Sharma Dank für Antwort. Mein Problem ist, dass beim Laden von Layout aus dem Dateireport List nicht angezeigt wird. Wenn ich das Layout nicht lade, funktioniert es wie es soll. –

Verwandte Themen