C# DataGridView und ChartControl auf eine Seite drucken

WiZdooM

Erfahrenes Mitglied
Hallo

Ich entwickle gerade für eine öffentliche Behörde ein kleines Auswertungsprogramm, in dem Daten aus einer Datenbank kommen, und in einem DataGridView in Form von Hochrechnungen ausgegeben werden. Das Ganze gibt es dann auch noch als Diagramm.

So far so good.
Nun sollen die Informationen grafisch und tabellarisch auf einer Seite ausgedruckt werden (zur Not auch auf 2 Seiten). Für das Diagramm ist das fast kein Problem, da dieses ja eine PrintDocument-Eigenschaft mitbringt und so einfach dem PrintDocument zugewiesen werden kann.

Für das generisch befüllte DataGrid sieht das wieder anders aus. Meine erste Idee war, das Diagramm ganz normal zu drucken und anschließend einen DrawToBitmap von dem DataGrid zu machen. Das lässt sich auch problemlos positionieren, aber sobald das GridView einen Scrollbalken erzeugt funktioniert diese Methode nicht mehr, da ein Screenshot der Control gemacht wird und nicht aller tatsächlich vorliegenden Spalten.

MS hat zwar ein nettes aber irgendwie unbrauchbares Beispiel rausgebracht. Das Resultat ist ein GridView-Screenshot und winzige Werte des Gridviews in der oberen linken Ecke. Ich gehe deshalb davon aus, dass es keinen "kürzeren" Weg gibt, als die GridViewPrint-Class von Duncan Edwards Jones. Einzig die Positionierung könnte hier noch ein Problem sein.

Falls sich doch jemand mit der Thematik beschäftigt hat und Licht ins Dunkel bringen kann, wäre sicher nicht nur ich dankbar, wenn da jemand was dazu schreiben würde. Ich werde mich jedenfalls mit dem GridviewPrinter auseinandersetzen und entsprechende Ergebnisse hier mitteilen.

Gruß Wizzy
 
Zurück