2013-08-25 181 views
0

我需要將xtrareport(devexpress)綁定到對象模型。將對象模型綁定到XtraReport devexpress

假設我的模式是:

我已經完成了通過設計模板報告。

我應該怎麼做從C#視圖模型提供報告?

這一個不提前工作

XtraReport1 report = new XtraReport1(); 
report.DataSource = viewModel; 

感謝。

回答

2

僅僅將報表的數據源設置到您的ViewModel是不夠的,您還需要將控件綁定到適當的字段。下面是我做過類似的東西在的WinForms報告:

public IssueReport(DataTable issuesTable) 
{ 
    InitializeComponent(); 

    this.DataSource = issuesTable; 

    xrlabelIssueNumber.DataBindings.Add("Text", this.DataSource, "IssueID"); 
    xrlabelAssignedUser.DataBindings.Add("Text", this.DataSource, "Assigned User"); 
    xrlabelPriority.DataBindings.Add("Text", this.DataSource, "Priority"); 
    xrlabelCategory.DataBindings.Add("Text", this.DataSource, "IssueCategory"); 
    xrlabelReceivedDate.DataBindings.Add("Text", this.DataSource, "ReceivedDate"); 
    xrlabelDueDate.DataBindings.Add("Text", this.DataSource, "DueDate"); 
    xrlabelProduct.DataBindings.Add("Text", this.DataSource, "Product"); 
    xrlabelStatus.DataBindings.Add("Text", this.DataSource, "Status"); 
    xrlabelSubStatus.DataBindings.Add("Text", this.DataSource, "Sub-Status"); 
    xrlabelVersion.DataBindings.Add("Text", this.DataSource, "VersionNumber"); 
    xrlabelCustomer.DataBindings.Add("Text", this.DataSource, "CustomerName"); 
    xrlabelLocation.DataBindings.Add("Text", this.DataSource, "LocationName"); 
    xrlabelRoom.DataBindings.Add("Text", this.DataSource, "RoomName"); 
    xrlabelPOC.DataBindings.Add("Text", this.DataSource, "POC"); 
    xrlabelOfficeNumber.DataBindings.Add("Text", this.DataSource, "OfficePhone"); 
    xrlabelCallbackNumber.DataBindings.Add("Text", this.DataSource, "CallbackNumber"); 
    xrlabelEmail.DataBindings.Add("Text", this.DataSource, "Email"); 
    xrlabelAlternateEmail.DataBindings.Add("Text", this.DataSource, "AlternateEmail"); 
    xrlabelSummary.DataBindings.Add("Text", this.DataSource, "IssueSummary"); 

}

DataBindings.Add方法需要3個參數; 1st是您要綁定到的對象的屬性(99%的時間是XtraReportLabel的Text屬性)。第二個是BindingSource(在你的情況下,你的ViewModel ...但是這可能需要首先轉換爲某種BindingList)。第三個是您想要使用的BindingSource的字段。

希望幫助....

+0

另外,綁定一個對象時,它必須是一個列表並要放的BindingSource(Windows窗體控件)報告https://documentation.devexpress.com /#xtrareports/CustomDocument7547 – FabianSilva

+0

如果你做了這種綁定,當選擇標籤時可以在設計時選擇綁定字段或子屬性(請參閱doc) – FabianSilva

相關問題