2

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

レポートでは、トランザクションの詳細のリストを取得する必要がありますが、最初の行しか取得できません。ありがとう、

4

2 に答える 2

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();
于 2015-10-29T05:45:41.043 に答える
0

レポートの設計方法によって異なります。通常、すべての詳細を表示するには、別のバンド (DetailReport) が必要です (XRTable を使用している場合)。

于 2013-12-27T10:48:39.727 に答える