Nein -Crystal ist kein Frauenname und kommt nicht von der lieblichen Cristl die irgenwo auf Österreichs blühenden Alpen Kühe melkt.
Chrystal ist der Name der Report Software von der Softwarefirma Seagate, die seit einiger Zeit Visual Studio beiliegt. Nun hat also auch Visual Studio .net diese schwere Last geerbt. Irgendwie ist es mit Report Generatoren doch auch wie mit Frauen: man kann nicht mit und nicht ohne sie!
Fakt ist, das Crystal ein Vollprodukt verkaufen möchte und ein Light Produkt zu VS.NET kostenlos dazu packt. Für einfache Sachen sollte dieser Reportdesigner doch reichen. Leider sind die Ergebnisse meist frustrierend. Es beginnt schon bei der sehr bescheidenen Dokumentation.
Einstiegspunkt in die Doku ist:
ms-help://MS.VSCC/MS.MSDNVS/crystlmn/html/crcongettingstarted
Noch besser wendet man sich direkt an den Hersteller:
http://www.crystaldecisions.com/products/dev_zone/default.asp
Es gibt aber ein paar coole Gründe für die Verwendung. Man kann so wirklich druckreif Dokumente anzeigen die allen Ansprüchen genügen. Darüber hinaus lässt sich der Report sogar nach PDF oder Word exportieren.
Das Erstellen des Reports erfordert wahrscheinlich einige Anläufe. Grundkenntnisse mit Reportgeneratoren wie Access sind fast schon Vorraussetzung.
Es gibt Beispielreports (Endung rpt) die bei Visual Studio .NET beiliegen.
Um so einen Report in der Website anzeigen zu können benötigt man in einer ASPX Seite den Crystal Report Viewer.
<CR:CRYSTALREPORTVIEWER id="CrystalReportViewer1" runat="server" Width="1030px" Height="1073px"></CR:CRYSTALREPORTVIEWER> |
Dieser Viewer lässt sich visuell parameterisieren. Es macht aber sicher mehr Sinn, im Code die Report Eigenschaften dynamisch zu setzen. So kann in Page_Load der Report geladen werden. Da im Report das Datenbank Zugriffskennwort scheinbar nicht abgespeichert wird, muss es über die LogonInfo gesetzt werden.
Da es mehrere Datenquellen in Ihrem Report geben kann, wird die jeweilige Verbindung über einen Index angesprochen.
Selbst das Selektionskriterium lässt sich über den Parameter SelektionFormula einstellen. Sie wollen Ihrem Kunden ja nur seine Rechnung zeigen und nicht alle.
Vergessen Sie nicht am Schluss noch Databind aufzurufen.
CrystalReportViewer1.ReportSource = "e:inetpubwwwroot onermybill.rpt" CrystalReportViewer1.LogOnInfo(0).ConnectionInfo.UserID = "sa" CrystalReportViewer1.LogOnInfo(0).ConnectionInfo.Password = "asd" CrystalReportViewer1.LogOnInfo(0).ConnectionInfo.ServerName = "40.156.206.51" CrystalReportViewer1.LogOnInfo(0).ConnectionInfo.DatabaseName = "shop" CrystalReportViewer1.SelectionFormula = "{receipt.orderid} = '000GPTQ12JU9'}" CrystalReportViewer1.DataBind() |
So sollten erstmal die göbsten Hindernisse beseitigt werden um in Ihrer Website Reports einzubauen.
Probleme:
Auszug aus Crystal Online:
In the IIS manager (Start > Run > inetmgr) ensure the Default Web Site has a virtual directory called 'CrystalReportWebFormViewer'. The local path of this virtual directory should point to: 'C:Program FilesMicrosoft Visual Studio .NETCrystal ReportsViewers'.
Under the Server Explorer window in Visual Studio .NET, if you cannot access the 'Crystal Enterprise' and/or 'Server Files' nodes under the 'Crystal Services' node, ensure the 'Crystal Web Services' is installed. For further information, refer to knowledge base article c2010774.
Ensure the ASPNET account should have full rights to the folder, 'C:Program FilesMicrosoft Visual Studio .NETCrystal Reports'.