我将Class Detail作为我的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();
报告中的我应该得到一份交易细节清单,但我只得到第一行。 感谢,
答案 0 :(得分:0)
这取决于您的报告的设计方式。通常你需要一个单独的波段(DetailReport)来显示所有细节(如果你使用的是XRTable)。
答案 1 :(得分: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();