CrystalReports: Formeln

Aus GEVITAS
Wechseln zu: Navigation, Suche

1 Allgemeines

Formeln sind eine sehr mächtige Möglichkeit...

  • Inhalte von Berechnungen auszugeben
  • Inhalte von Datenbankfelder abhängig von bestimmten Gegebenheiten auszugeben.
  • Datenbankfelder oder Bereiche unter bestimmten Umständen zu unterdrücken.

1.1 Berechnungen

In einer Formel kann man fast beliebige Berechnungen vornehmen. Ausgegeben wird das Ergebnis der Berechnung (der Formel).

1.2 Ergebnis

Ein Formel hat immer ein Ergebnis (die CrystalReports-Hilfe spricht von "Wert")! Dieses ist abhängig von der Berechnung innerhalb der Formel.

Das Ergebnis ist immer von einem bestimmten Datentyp! Im Wesentlichen gibt es diese Datentypen:

Datentyp Interne Bezeichnung Beschreibung
Text, Zeichenfolge String Ein Text ist eine Folge von Buchstaben und oder Zahlen. Der Test wird in Formeln in doppelte Anführungszeichen " gesetzt.
  • Der Apostroph ist auch möglich, aber nicht empfehlenswert.

Mit einem Text kann man nicht rechnen, dazu müsste man ihn erst in eine Zahl umwandeln.
Textfelder können eine maximale Länge von 65.534 Zeichen haben (in CrystalReports 8.5 nur 255!).

Zahl Number Zahlen in CrystalReports sind numerische Werte mit oder ohne Kommastellen. Es wird nicht unterschieden zwischen Zahlen mit oder ohne Kommastellen, wie in den den meisten Datenbanken!
Währung Currency Währungsfelder in CrystalReports sind numerische Werte mit Kommastellen. Wie bei Datenbanken sind Währungsfelder genauer in der Berechnung und Speicherung als Zahlenfelder. Ausserdem können Währungsfelder auch mit zusätzlichen Optionen formatiert werden.
Datum Date Ein Datumsfeld beinhaltet - Achtung: Überraschung! - ein Datum!
Uhrzeit Time Hier wird eine Uhrzeit (ohne Datum) gespeichert. Achtung: Zeitfelder in GEVITAS-Datenbanken sind immer 5-stellige Textfelder im Format "HH:MM"!
Datum+Uhrzeit DateTime Dies ist ein gebräuchlicher Datenbank-Typ. In GEVITAS-Datenbanken wird jedoch meist der Datenbank-Typ ohne Uhrzeit benutzt, weil dies manche Datenbank-Abfragen vereinfacht.
Boolesch Boolean Bei diesem Datentyp gibt es nur zwei Ergebnisse:
  • Wahr (True)
  • Falsch (False)

Dieser Datenbanktyp ist sehr wichtig für die Unterdrückung von Objekten oder Bereichen!.

1.3 Formatierung

Abhängig vom Ergebnis der Formel entscheidet CrystalReports, welche Formatierungsoptionen angeboten werden.

1.3.1 Beispiel 1

In einer Ladeliste soll das Gesamtgewicht einer Auftragsposition ausgegeben werden. Also erstellt man eine neue Formel...

CrystalReport Formel Neu.jpg

und gibt diese Formel ein:

{maufpo.AUFTRMENGE} * {mart.BRUTTOGEWICHT}

Hier wird die Auftragsmenge mit dem Bruttogewicht des Artikels multipliziert. Das Ergebnis der Berechnung wird ausgegeben.

Da das Ergebnis ein Zahlenfeld ist, kann man die Formel als Zahl formatieren.

1.3.2 Beispiel 2

Eine Formel wird dazu benutzt, die Statusnummer eines Auftrags (1=Aktiv, 2=Angebot, 3=Auftrag usw.) in einen Klartext umzusetzen: Wenn MAufKo.StatusNr=1 dann drucke “AKTIV”, wenn MAufKo.StatusNr=2 dann drucke “ANG” usw.

1.3.3 Beispiel 3

Eine Formel berechnet den Lagerwert eines Artikel anhand des Einkaufspreises multipliziert mit der Soll-Menge:
{Mart.EK} * {MArt.BestandSoll} .

1.3.4 Beispiel 4

In einem Angebot werden die konstanten Texte nicht mit Textfeldern angegeben sondern in Formeln, die die gewünschte Sprache berücksichtigen:

if {MaufKo.Sprache}=”D” then
  “Angebot”
else
 if {MaufKo.Sprache}=”E” then
   “Offer”
 else
 if {MaufKo.Sprache}=”F” then
   “Offerte”

In diesem Beispiel sehen Sie, dass Datenbank-Felder in Formeln immer in geschweiften Klammern stehen!

1.4 Unterdrücken

Ein weiteres wichtiges Einsatzgebiet von Formeln ist es, dass man Objekte unter bestimmten Voraussetzungen unterdrücken kann. Man kann z.B. bestimmen, dass das Wort “Rabatt” in einem Angebot nicht gedruckt wird, wenn es gar keinen Rabatt im Angebot gibt.

Einzelheiten zu den vielfältigen Möglichkeiten von Formeln entnehmen Sie ggf. der Crystal-Reports Dokumentation.

2 Fazit

Formeln geben Ihnen die Möglichkeit

  • Berechnungen innerhalb des Reports vorzunehmen, z.B. den Durchschnitt aller aufgelisteten Aufträge, das Gesamtgewicht einer Auftragsposition aus Menge x Einzelgewicht usw.
  • Vergleiche zwischen Feldern oder Werten vorzunehmen, um damit das Erscheinen bzw. das Unterdrücken von einzelnen Feldern oder ganzen Report-Bereichen zu steuern.