I'm currently starting an implementation of a reporting framework for our application. Our immediate requirements involve putting multiple data-bound visuals at fixed positions on a page (probably in a standard Grid). In the (near) future, though, we may want to size some of the visuals to their content, and that may involve pagination, as they get bigger (e.g. a table of numeric results with lots of rows).
Looking at the documentation, it seems there's no simple way to get more than one ReportSection on a single page, so we would have to put anything requireing pagination on a page of its own, which I can't see working.
Is there any workaround? E.g. could I put all the visuals inside a xamDataGrid, and have that handle pagination? Can the xamDataGrid handle nested pagination like that?
If not, are you planning on adding the ability to have multiple sections on one page?
Thanks,
James
Hello,
It has been a while since you have made your post, in case you still need support I will be glad to assist you further. I suppose the other community members can benefit from this answer as well. So I have been looking through your post and I created a sample project for you. It has a XamDataGrid, which is hosted in a Canvas and I passed the canvas as argument of the constructor of the PreviewSection. The reason, because of which, you didn’t have anything in the reporting is that the Canvas’s DesiredSize (which is used during report) returns 0, 0 in this case. This is true for a Canvas unless you explicitly set its Width and Height (or its MinWidth and MinHeight), which I did in the sample. The Canvas is different from other panels, e.g. Grid and StackPanel, which will return a DesiredSize based on their content as well. Please let me know if this meets all your requirements or you need further assistance.
Looking forward for your reply.
I am encountering the same issue. I have tried putting several visuals inside a Canvas and giving that Canvas to the Report object inside a Section but nothing shows up in the print preview. Can this be done or is there a workaround as previously asked?