VS 2013 C#RDLC报告无法访问Class中的对象

时间:2015-03-26 20:31:39

标签: c# oop visual-studio-2013 rdlc

基本上我使用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但我不能似乎弄明白了。

1 个答案:

答案 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,并且需要公开所需的属性。