基本上我使用Class Buissness对象作为DataSet。
我有一个Class Called Parent,它包含一个对象Child。
班级家长
class Parent
{
private Child _ObjChild
Public Child ObjChild { get { return this._ObjChild; } }
public Parent(Child child)
{
this._ObjChild = child;
}
}
Class Child
class Child
{
private string _Name;
private int _Age;
Public string Name { get { return this._Name; } }
Public string Age { get { return this._Age; } }
public Parent(string name, int age)
{
this._Name = name;
this._Age = age;
}
}
现在在rdlc报告中,我创建了一个Object类型的新DataSet,并将其引用到我的父对象。
以下是我加载报告的方式:
BindingSource bs = new BindingSource();
ReportDataSource rds = new ReportDataSource();
// This creates a new list of Parent() and returns it
bs.DataSource = this.CurrentReportView.GetData();
rds.Name = "dsMain";
rds.Value = bs;
this.rvMain.LocalReport.DataSources.Clear();
// This Returns the path where the report is residing
this.rvMain.LocalReport.ReportPath = this.CurrentReportView.GetReportFilePath();
this.rvMain.LocalReport.DataSources.Add(rds);
this.rvMain.RefreshReport();
一切正常,除非我想展示我的ObjChild,它打印出一个 #Error 我试图访问我的ObjChild属性Age或Name但我不能似乎弄明白了。
答案 0 :(得分:0)
经过长时间的搜索,我找不到获取子对象数据的解决方案,但我找到了解决办法。
我所做的只是将Exposed my Child Objects属性放入另一个名为ChildProperties的调用中。
class ChildProperties
{
private Parent _ObjParent;
// Exposing the Parent (if needed) and Child properties
public string Name{ get { return this._ObjParent.ObjChild.Name; } }
public intAge { get { return this._ObjParent.ObjChild.Age; } }
public Parent(Parent parent)
{
this._ObjParent = parent;
}
}
然后我用这个新类创建一个新的Object DataSet,并且需要公开所需的属性。