Crystal Reports с использованием Report и SubReport - PullRequest
1 голос
/ 02 апреля 2012

Предположим, у меня есть следующее:

public class MyObject
{
   public string Name {get; set;}
   public List<MySubObject> SubObjects {get; set;}
}

public class MySubObject
{
   public string SubName {get; set;}
}

Есть ли способ настроить отчет и вложенный отчет для отображения списка MyObjects (каждый со списком вложенных отчетов для соответствующих им MySubObjects * * 1006

1 Ответ

1 голос
/ 02 апреля 2012

Я думаю, что в определении вашего класса отсутствует имя List<MySubObject>:

public class MyObject
{
   public string Name {get; set;}
   public List<MySubObject> SubObjects {get; set;}
}

public class MySubObject
{
   public string SubName {get; set;}
}

Вы можете выполнить цикл и заполнить набор данных (вам не нужно использовать подотчеты, если ваши данные неболее сложный, чем вы описали выше):

DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("SubReport");
foreach (MyObject myo in list_of_myobjects)
{
 foreach (MySubObject myso in myo.SubObjects)
 {
  DataRow dr = dt.NewRow();
  dr[0] = myo.Name;
  dr[1] = myso.SubName;
  dt.Rows.Add();
  ds.Tables.Add(dt);
 }
}

Затем укажите ваш источник данных Crystal Report в наборе данных:

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
CrystalReport1 objRpt = new CrystalReport1();
objRpt.SetDataSource(ds.Tables[1]);
crystalReportViewer1.ReportSource = objRpt;
crystalReportViewer1.Refresh(); 
...