I've been seeing this issue reported to you over the past two years.
Your explanation: "To prevent a deadlock situation, the XRSubreport.ReportSource property can't be set to the same report type as the report containing the XRSubreport control itself."
Can you please explain why your controls are locking anything and why is this that important that you cannot change this behavior to allow for normal programing techniques? Because so far I can only read from the statement above: "Developers that are using our controls are stupid so they don't know how to write recursive code."
Sorry it took me so long to respond.
You can see following the link that I had some work to do: http://www.devexpress.com/issue=Q231274
One thing that I didn't mentioned yet in the list of features that I've been able to implement for my application using your controls is a Print Layout Formatter.
What would this mean: A report is mainly a tabular list of data. Well, for this tabular data, I need at some point to dynamically create a print layout by grouping the data. I found out that it is not very easy to describe what I want, therefore I've created a XLSX file with an example of the desired outcome.
This is only a basic format example, in order to get my questions answered. I'll extend and implement more formats so you will like the outcome very much.
Now, I am well on the way of implementing something for this.
I am dynamically generating a table for the current level and, if a sub-level exists I am loading into a Subreport the XtraReport class configured for the corresponding sub-level. (From here the original topic.)
What I'm having issues with:
1. I would like to use an IQueryable object as a data source for my dynamically generated XRTableCell(s). Could I use any other objects? Like a XRTable and bind data to it? How can I bind XRTableCell to a field of a IQueryable?
2. For the sub-level, the data source would be the same IQueryable with a Where clause. How can I get the current row necessary values in order to build the Where clause and how (what event should I use) to bind the Subreport to the new IQueryable object.
3. I saw at some point that the XtraReport class can work in a "Page By Page" mode. How can I set this and will this use the advantages of binding to the IQueryable data source?
I am quite sure this is possible and I will implement it. Maybe you can help me to shorten the implementation time to the minimum. If there are any examples I could use already, please point me to them. I've found and read a lot of them but not always exactly what I need.
Your assistance in speeding up the work would be greatly appreciated.
I apologize for the delay in responding. Thanks for posting a sample report layout. I believe you're actually referring to a common Master-Details report type, with two levels of Detail data. Actually, it's possible to create this report layout without subreports, using DetailReportBandsdetail report bands. This approach has no limitations on the level of nesting. Please refer to the following tutorials to learn more: How to Create a Master-Detail Report using Detail Report Bands. Let me know whether this approach is appropriate, or you need further clarification.
I got back on trying to solve this problem and I still can't get it done even if I've done a lot of research on your documentation and online examples.
Unfortunately, all of the questions asked above are still without an answer. I've attached this time a project (specially built for this topic - simplified from the actual project).
As you'll see in there I've tried to group tabular data using GroupHeaderBand(s) to achieve at runtime the format required (see previous attachment). However, I can't figure out exactly how to work with those bands at runtime.
Another problem I have is that I need to bind the report to a IQueryable object. Can this be done? I've tried in there something I found in one of your examples but it doesn't seem to work. I'm using LinqToLLBLGen - is there something special that need to be done for this to work?
Ant the third concern, assuming we'll overcome the first two, is: how do you see this working with large amounts of data. How can I create the report in "Page By Page" mode?
Please keep in mind that everything is required to be dynamic and built at runtime.
With those said, can you please take a look in the code and tell me if my approach is the right one and what I'm doing wrong?
Thanks for posting your sample project. Note that our Support Center concept doesn't allow you to post multiple problems within one thread. In the future, please post a separate issue for each question. This way, we can process and track it more efficiently. For now, I've created separate issues on your behalf.
I'll continue examining the problem, and will get back to you ASAP.
Thanks for your patience. I've examined the resulting ReportFormatter layout, and found out that it contains only a single Detail band with three GroupHeaderBands. Note that only a single collection can be displayed within the Detail Band. To display multiple collection (tables) linked via data relations, you should add a number of DetailReportBands, and adjust their DataMember properties using the corresponding relation name. An example, illustrating this approach, can be found in this thread: Creating a report layout dynamically. Note that it's possible to create a Master-Detail report without defining data relations, by adjusting the XtraReport.FilterString property at runtime (see How to implement a Master-Detail report by adjusting the FilterString property at runtime). Let me know whether this makes sense.