VirtualDataTable ChildRelations

While implementing the VirtualDataTable and VirtualDataTableState interfaces to my business object layer I ran into the problem of setting up ChildRelations. The doc states:

"ChildRelations is protected by default, but you can expose it on your classes, or
expose methods that internally will add to the ChildRelations list. Whatever
relation you add to this list on the code (for example via
“MyVirtualDataTable.ChildRelations.Add(MyRelation)”) will be used by
FlexCelReport as if it were normal data relation."


Question is how to set up a new instance of TRelation in this scenario, it's constructor cannot be accessed due to it being tagged as internal.

Anyway, maybe you have got a better solution. I am trying to bind my report to a object data source that is laid out like this:

ParentTable = IList<ParentType>
ChildTable = IList<ChildObject> which can be retrieved by getting the value of ParentObject.Children



Hi,

I think you are right, consturcor of TRelation should be public, not internal, but I will need to check it more in depth since I don't remember the details.

But I wanted to answer this now, since at this very moment we are changing FlexCel to natively support IEnumerable (or IQueryable) as a source, and there might be some breaking changes to the VirtualDataTable/state objects, needed to better support it. Implementation is mostly working but we have some issues with master-details and are working in optimizing the linq queries. 

So if you are not in a hurry, I would wait for next version, that while very delayed already should be available in a couple of days when we finish this IEnumerable support. It might happen also that you don't have to write any virtualdatatable anymore, since IList will be supported out of the box. And even if you do need because of special requirements, it should be easier.

Regards,
   Adrian.