2013-04-26 6 views
1

Я добавляю Class Detail как мой источник данных к отчету;devexpress xtrareport привязка нескольких списков datasource

class Detail 
{ 
public string Name { get; set; } 
public string State { get; set; } 
public string City { get; set;} 
public List<Transaction> tran { get; set; } 
} 
class Transaction 
{ 
public string TransactionDate { get; set; } 
public string TransactionDescription { get; set; } 
} 

и в моем запросе отправлю его как Список.

public List GetAccount(string account) { 
List detail = new List(); 
sql .... 
foreach (DataRow dr in dt.Rows) 
{ 
detail.Add(new Detail() 
{ 
    Name= dr["name"].Equals(DBNull.Value) ? string.Empty : dr["name"].ToString(), 
..... 
    tran = GetTransactionDetail(account)// calling a list 

}); 
} 
return detail; 
} 

public List<Transaction> GetTransactionDetail(string account) 
{ 
.... 
} 

и на Form1.cs

XtraReport1 rep = new XtraReport1(); 
printControl1.PrintingSystem = rep.PrintingSystem; 
var ls = query.GetAccount(accountNo); 
rep.DataSource = ls; 
rep.CreateDocument(); 

в докладе я должен получить список деталей сделки, но я получаю только первую строку. thanks,

ответ

0

Это зависит от того, как разработан ваш отчет. Обычно вам нужна отдельная группа (DetailReport), чтобы все детали были видимыми (если вы используете XRTable).

0

Сэр вы должны использовать DataSet и query.GetAccount(accountNo)DataTable Тогда попробуйте вот так. Меня устраивает.

XtraReport1 rep = new XtraReport1(); 
printControl1.PrintingSystem = rep.PrintingSystem; 
var ds = new ds("TestDataSet"); 
var ls = query.GetAccount(accountNo); 
ds.Tables.Add(ls); 
rep.DataSource = ds; 
rep.DataMember = ls.TableName; 
rep.CreateDocument();