After merging a list of reports into a new report the PrintControl behave incorrectly and moves the page preview all to the left and top except for the first visible report.
If you look in the provided soluton when the form is first loaded all reports for all rows in the grid controll show in the correct way.
After mergin with the merge Merge Reports button only the first report of the first row in the grid is still correctly displayed in the printcontrol. All other reports get moved to the left and top of the preview.
I can't figure out what I am doing wrong in the merge process.
But since I need the user to change margins and other settings on a report basis and do multiple exports with a different selection of reports, I cannot invoke the CreateDocument to fix the printcontrol after merging the report.
At present, I am unable to reproduce the problem you described. I have created and attached a screencast, illustrating my actions. Please review it and let me know whether the actions I performed are correct. It is possible that I missed something essential.
I made a screencast too to show what I mean. If you look at the zone pointed by the red arrow you will see what I mean. After mergin the reports the onyl report that continue to show in the right way is the first report of the first row of the grid.
All other print controls in the tab pages have a display glitch.
We've investigated your sample project and found the cause of the problem you've described.
It is not correct to use the same instances of the PSPage class in different documents, so to work around this issue, I suggest you regenerate the report document each time you need to merge its pages.
Please try this approach and let us know if it is of some help.
Getting the pages through a cloned printing system
private PrintingSystemBase ClonePrintingSystem(PrintingSystemBase source)
using (Stream stream = new MemoryStream())
var clone = new PrintingSystemBase();
fixes this problem, I have to check on memory requirements for this technique.
Is your intention to post an answer to your own question?
- If so, then proceed.
- If you simply wanted to post additional information, ask for further clarification, or to just say "Thanks!", please click Leave a Comment.
- If you wish to edit your original question, please use the Edit button in the Toolbox at the top right corner of that entry.