Übersicht über berechnete Felder
Mit berechneten Feldern können Sie die Eingabedaten eines Berichts basierend auf einem bestimmten Ausdruck vorverarbeiten. Wenn Sie also berechnete Felder verwenden, können Sie komplexe Ausdrücke auf ein oder mehrere Datenfelder anwenden, die aus der zugrunde liegenden Datenquelle des Berichts abgerufen werden. Darüber hinaus können Sie Ihre Berichtsdaten basierend auf dem Wert eines berechneten Felds sowohl gruppieren als auch sortieren.
Übersicht über berechnete Felder
Um ein berechnetes Feld zu erstellen, wechseln Sie zu Feldliste, klicken Sie mit der rechten Maustaste auf ein beliebiges Element in der Datenquelle und wählen Sie Berechnetes Feld hinzufügen.
Klicken Sie mit der rechten Maustaste auf das berechnete Feld in der Feldliste, und wählen Sie Ausdruck bearbeiten aus. Alternativ können Sie das berechnete Feld auswählen und in Eigenschaftsraster auf die Schaltfläche mit den Auslassungspunkten der Eigenschaft Ausdruck klicken.
Erstellen Sie im aufgerufenen Ausdrucks-Editor** den erforderlichen Ausdruck. Sie können Datenfelder, Berichtsparameter, vordefinierte Konstanten sowie verschiedene Datums-/Uhrzeit-, logische, mathematische und String-Funktionen verwenden. Weitere Informationen zur Ausdruckssyntax finden Sie im nächsten Dokumentabschnitt.
[! ANMERKUNG] Der Ausdrucks-Editor zeigt nur die Datenfelder an, die aus einer Datenquelle abgerufen werden, die durch die Eigenschaftswerte Data Source und Data Member des berechneten Felds angegeben wird.
Die Eigenschaft Berechnete Felder des Berichts bietet Zugriff auf die Auflistung berechneter Felder.
Sie können auf die Schaltfläche Berechnetes Feld hinzufügen auf der Registerkarte Home von Toolbar klicken, um den Editor für die Sammlung berechneter Felder aufzurufen.
Sie können das berechnete Feld aus der Feldliste wie ein gewöhnliches Datenfeld auf das gewünschte Band ziehen.
Sie können die Berichtsdaten auch basierend auf den berechneten Feldwerten gruppieren und sortieren.
Ausdruckssyntax
Ein Datenfeld wird mit seinem Namen in [eckigen Klammern] in den Text des Ausdrucks eingefügt, und Parameter werden mit einem Fragezeichen vor ihren Namen eingefügt.
Der Ausdruck eines berechneten Felds kann die Werte anderer berechneter Felder auswerten, wenn Sie Zirkelbezüge vermeiden.
Datums-/Uhrzeitkonstanten müssen in Hashtags (#) eingeschlossen werden (z. B. [OrderDate] >= #1/1/2009#). Um einen Nullverweis darzustellen (einen, der sich nicht auf ein Objekt bezieht), verwenden Sie ein Fragezeichen (z. B. [Region] != ?). Um Zeichenfolgen zu kennzeichnen, verwenden Sie Apostrophe ('), da sonst ein Fehler auftritt.
Um einen Apostroph in den Text eines Ausdrucks einzubetten, sollte ihm ein weiterer Apostroph vorangestellt werden (z. B. 'It's sample text').
Der Typ eines Werts, der von einem berechneten Feld zurückgegeben wird, wird durch seine Eigenschaft Feldtyp definiert.
Wenn ein berechneter Feldausdruck die Verwendung verschiedener Typen beinhaltet, müssen diese in denselben Typ konvertiert werden (z. B. Max(ToDecimal([Quantity]);[UnitPrice]))
Obwohl ein Wert, der von einem berechneten Feld zurückgegeben wird, normalerweise in eine Zeichenfolge konvertiert wird (die in einem textfähigen Berichtssteuerelement angezeigt wird), kann er einen beliebigen Wert zurückgeben. Wenn ein Datenbankfeld beispielsweise ein Bild enthält, können Sie den Ausdruck eines berechneten Felds auf "=..." festlegen, woraufhin dieses berechnete Feld an das Picture Box-Steuerelement gebunden werden kann.
Verwenden Sie zum Erstellen eines gültigen Aggregatausdrucks das folgende Format, das aus vier Teilen besteht.
[]
- <Collection> - Gibt eine Auflistung an, für die ein aggregierter Wert berechnet werden soll. Dies kann der Beziehungsname im Fall einer Master-Detail-Beziehung oder der Name einer Auflistungseigenschaft sein, die von der Zielklasse verfügbar gemacht wird. Beispiel: [CategoriesProducts][[CategoryId]>5]. Count(). Leere eckige Klammern [] kennzeichnen die Stammsammlung.
- <Condition> - Gibt eine Bedingung an, die definiert, welche Datensätze an der Berechnung einer Aggregatfunktion teilnehmen sollen. Um einen aggregierten Wert für alle Datensätze zu erhalten, löschen Sie diese logische Klausel zusammen mit eckigen Klammern (z. B. []. Count()).
- <Aggregate> - Gibt eine der verfügbaren Aggregatfunktionen an.
- <Expression> - Gibt einen Ausdruck an, der Werte auswertet, die zum Ausführen der Berechnung verwendet werden sollen. Beispiel: [][[CategoryID] > 5]. Summe([Stückpreis]*[Menge]). Die Count-Funktion benötigt keine Feldwerte, um die Datensätze zu zählen, daher lassen Sie die runden Klammern für diese Funktion leer.
Sie können mit dem Parent Relationship Traversal Operator ('^') auf die aktuell verarbeitete Gruppe verweisen. Auf diese Weise können Sie Aggregate innerhalb von Gruppen mit Ausdrücken wie den folgenden berechnen: [][[^. CategoryID] == [Kategorie-ID]]. Summe([Stückpreis]).
Weitere Informationen finden Sie unter Expression Language.
Beispiele
Die folgenden Lernprogramme veranschaulichen die Verwendung berechneter Felder in verschiedenen Umgebungen: