Category Archives: Windows Forms (C#)

Report Viewer: Es muss nicht immer teuer sein

Bisher dachte ich, man bräuchte zwingend ein „Third-Party“-Produkt, um praktikabel Berichte unter .NET (Windows Forms) zu erzeugen. Viele Stimmen sagten immer, dass es zu kompliziert wäre mit den Boardmitteln von MS einen Ausdruck zu erzeugen oder PDF-Dokumente zu generieren.

Mit der Report Viewer Engine ist dies aber meiner Meinung nach durchaus möglich. Sie ist in Visual Studio integriert und bedarf beim Deployment lediglich einer zusätzlichen Setup-Anwendung (man kann bestimmt das auch über ein MSM-File in das eigene Setup einbauen, aber Setups sind bei unseren Projektentwicklungen nicht das Thema).

Als Einstieg hatte ich mir einfach den ersten Treffer bei Google angesehen und dabei auch gleich ein paar nette Beispiele entdeckt:
http://www.gotreportviewer.com/

Natürlich ist das ganze nicht so komfortable wie gekaufte Produkte und hat leider auch ein paar Macken, die man relative schnell entdeckt und sich deshalb auch etwas über Microsoft wundert :-)

  1. Ärgerlich ist, dass bei der Undo- bzw. Redo-Programmierung gespart wurde. Ich hatte ein paar Mal erlebt, dass bei Redo sich Visual Studio verabschiedete und Undo nicht den letzten Schritt wiederherstellte, sondern einen der ersten Schritte … Auf Redo verichte ich ganz, speichere deshalb vor Undo lieber regelmäßig ab.
  2. Im Internet sind häufig ältere Samples zu finden, die dann in VS 2010 zuerst hochkonvertiert werden. Führt man mit der neue VS-Version die beschriebenen Schritte in der IDE durch kommt es leider hin und wieder  vor, dass das Verhalten beider Varianten  nicht identisch ist. Da hilft ein Blick in die XML-Struktur der RDLC-Datei.
  3. Hin und wieder bleibt das „Report Data“-Fenster auch in der Codeansicht offen und wird dann nicht neugezeichnet. Sieht hässlich aus, stört aber eigentlich nicht wirklich.

Es lohnt sich mal einen Versuch zu wagen. Setzt man rdlc-Files gepaart mit xsd-Files bekommt man auch mit MS-Mitteln einen ansprechenden Bericht unter Windows-Forms hin ohne eine Zeile zu coden.

Cheers,
Ralf

Windows Forms: Elemente zentrieren

Die Ausrichtung der Elemente beeinflusst man bekannterweise mit der „Align„-Eigenschaft, die jedes visuelle Elemente anbietet. Dort gibt es allerdings nur left, right, top und bottom, sowie Kombinationen aus diesen.

Bisher hatte ich es nicht gebraucht und dachte aber man müsse bereits zur Tastatur greifen (sprich coden), wenn man eine zentrierte Ausrichtung haben möchte und dafür das Resize-Ereignis abfischen. Das ist natürlich Blödsinn … wenn man das Element in der Design-Ansicht manuell zentriert, kann man einfach die entsprechenden Align-Optionen ausschalten und man zentriert es für diese Achse. Soll also das Element horizontal zentriert werden, dann schaltet man left und right aus, soll vertikal zentriert werden, dann einfach top und bottom abwählen.

Hier die Referenz, die mich auf diese Idee brachte:
http://wannabedeveloper.wordpress.com/2007/03/23/center-align-on-windows-forms/

Cheers,
Ralf