Zum Hauptinhalt springen

Übersicht über berechnete Felder

Berechnete Felder ermöglichen es Ihnen, die Eingabedaten eines Berichts basierend auf einem bestimmten Ausdruck vorzuverarbeiten. Mit berechneten Feldern können Sie komplexe Ausdrücke auf ein oder mehrere Datenfelder anwenden, die aus der zugrunde liegenden Datenquelle Ihres Berichts stammen. 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 zur Feldliste, wählen Sie eine Datentabelle und klicken Sie auf Add calculated field.

Klicken Sie auf die Schaltfläche Edit für das berechnete Feld, um die Eigenschaften des berechneten Felds anzuzeigen. Klicken Sie auf die Schaltfläche mit den Auslassungspunkten der Eigenschaft Expression.

Erstellen Sie im aufgerufenen Ausdrucks-Editor den erforderlichen Ausdruck. Sie können Datenfelder, Berichtsparameter, vordefinierte Konstanten sowie verschiedene Datums-/Zeit-, logische, mathematische und Zeichenkettenfunktionen verwenden. Weitere Informationen zur Ausdruckssyntax finden Sie im nächsten Dokumentabschnitt.

hinweis

Der Ausdrucks-Editor zeigt nur die Datenfelder an, die aus einer Datenquelle stammen, die durch die Eigenschaftswerte Data Source und Data Member des berechneten Felds angegeben ist.

Wechseln Sie zum Eigenschaftenfenster, wählen Sie die Kategorie Data und erweitern Sie den Abschnitt Calculated Fields, um die Sammlung der berechneten Felder anzuzeigen und deren Elemente zu verwalten.

Sie können das berechnete Feld wie ein gewöhnliches Datenfeld aus der Feldliste auf das gewünschte Band ziehen.

Sie können Ihre Berichtsdaten auch basierend auf den Werten der berechneten Felder gruppieren und sortieren.

tipp

Berechnete Felder werden auf Berichtsebene definiert und gespeichert, unabhängig von der zugrunde liegenden Datenquelle. Sie bleiben Teil des Berichts, auch wenn Sie die Datenquelle neu erstellen oder ersetzen. Wenn ein berechnetes Feld auf ein Datenelement verweist, das im aktualisierten Schema nicht mehr existiert, müssen Sie dessen Ausdruck an die neue Struktur anpassen.

Ausdruckssyntax

Ein Datenfeld wird mit seinem Namen in [eckigen Klammern] in den Ausdruckstext eingefügt, und Parameter werden mit dem Präfix "?" vor ihrem Namen eingefügt.

Der Ausdruck eines berechneten Felds kann die Werte anderer berechneter Felder auswerten, sofern Sie sicherstellen, dass keine zirkulären Verweise entstehen.

Datums-/Zeitkonstanten müssen in Rauten (#) eingeschlossen werden (z. B. [OrderDate] >= #1/1/2009#). Um eine Nullreferenz darzustellen (eine, die auf kein Objekt verweist), verwenden Sie ein Fragezeichen (z. B. [Region] != ?). Um Zeichenketten zu kennzeichnen, verwenden Sie Apostrophe ('), andernfalls tritt ein Fehler auf.

Um einen Apostroph in einen Ausdruckstext einzubetten, muss ihm ein weiterer Apostroph vorangestellt werden (z. B. 'It's sample text').

Der Typ eines von einem berechneten Feld zurückgegebenen Werts wird durch seine Eigenschaft Field Type definiert.

Wenn ein Ausdruck eines berechneten Felds die Verwendung verschiedener Typen umfasst, ist es notwendig, diese in denselben Typ umzuwandeln (z. B. Max(ToDecimal([Quantity]),[UnitPrice]))

Obwohl ein von einem berechneten Feld zurückgegebener Wert normalerweise in eine Zeichenkette umgewandelt wird (um in einem textfähigen Berichtssteuerelement angezeigt zu werden), kann er einen Wert beliebigen Typs zurückgeben. Wenn beispielsweise ein Datenbankfeld ein Bild enthält, können Sie den Ausdruck eines berechneten Felds auf "=..." setzen, wonach dieses berechnete Feld an das Bildfeld-Steuerelement gebunden werden kann.

Um einen gültigen Aggregatausdruck zu erstellen, verwenden Sie das folgende Format, das aus vier Teilen besteht.

[<Collection>][<Condition>].<Aggregate>(<Expression>)

  • <Collection> - Gibt eine Sammlung an, gegen die ein aggregierter Wert berechnet werden soll. Dies kann der Beziehungsname bei einer Master-Detail-Beziehung sein, oder der Name einer Sammlungseigenschaft, die von der Zielklasse bereitgestellt wird. Zum Beispiel: [CategoriesProducts][[CategoryId]>5].Count(). Leere Klammern [] bezeichnen 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, entfernen Sie diese logische Klausel zusammen mit den eckigen Klammern (zum Beispiel [].Count()).
  • <Aggregate> - Gibt eine der verfügbaren Aggregatfunktionen an.
  • <Expression> - Gibt einen Ausdruck an, der Werte für die Berechnung auswertet. Zum Beispiel: [][[CategoryID] > 5].Sum([UnitPrice]*[Quantity]). Die Funktion Count benötigt keine Feldwerte zum Zählen der Datensätze, lassen Sie daher die runden Klammern für diese Funktion leer.

Sie können auf die aktuell verarbeitete Gruppe mit dem Operator für die übergeordnete Beziehungsdurchquerung ('^') verweisen. Dies ermöglicht es Ihnen, Aggregate innerhalb von Gruppen mit Ausdrücken wie dem folgenden zu berechnen: [][[^.CategoryID] == [CategoryID]].Sum([UnitPrice]).

Weitere Informationen finden Sie unter Ausdruckssprache.

Beispiele

Die folgenden Tutorials demonstrieren die Verwendung berechneter Felder in verschiedenen Szenarien: