Verfasst von: bletra | 18. Juni 2011

Selektion einer Datenmenge innerhalb von Crystal-Reports

Autoren: 2 Studierende der Veranstaltung .Net Framework und C#

Oft ist es notwendig, innerhalb einer Tabelle einer Datenbank eine Auswahl zu treffen, welche der betroffenen Datensätze denn nun wirklich in Crystal-Reports angezeigt werden soll. Im folgenden Beispiel verwenden wir als Ausgangsbasis eine Datenbank mit drei Tabellen, in denen Adressen, Adressgruppen-Namen und deren Zuordnung zueinander gespeichert sind. Die Namen der einzelnen Adress-Gruppen werden zu Beginn innerhalb eines Forms in eine Combo-Box geschrieben. Aufgrund dieser Auswah wird dann automatisch gefiltert.
Gehen Sie, wie folgt vor:
Klicken Sie im Report-Steuerelement mit der rechten Maustaste, wählen Sie aus: Bericht -> Datensatz -> Auswahlformel
Es erscheint folgendes Fenster:

Geben Sie ein: <tabellenname.spaltenname> = <?Parameter>
Nun müssen Sie nur noch über den Quelltext diesen Parameter füllen und dies geht, wie folgt:

ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = comboBox1.SelectedItem.ToString();
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["GruppeName"];
crParameterValues = crParameterFieldDefinition.CurrentValues;
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

cryRpt ist das Objekt auf Basis eines Reports, der zuvor, wie folgt deklariert und an die Datenbank angebunden wurde:

ReportDocument cryRpt = new ReportDocument();
cryRpt.Load(@"CrystalReport4.rpt");
cryRpt.SetDatabaseLogon(BenutzerName,PassWord,ServerAdresse,DatenBankName);

Abschließend übergeben wir dann alles dem Crystal-Reports-Control und führen einen Refresh durch:

crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();

Das war es! Unser Report kann nun gefiltert über eine Spalte seine Daten bekommen.

Bei der Einarbeitung hat uns folgende Seite geholfen:

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Kategorien

%d Bloggern gefällt das: