CrystalReports: Formeln: Unterschied zwischen den Versionen
(→Berechnungen) |
(→Ergebnis) |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 10: | Zeile 10: | ||
In einer Formel kann man fast beliebige Berechnungen vornehmen. Ausgegeben wird das '''Ergebnis''' der Berechnung (der Formel). | In einer Formel kann man fast beliebige Berechnungen vornehmen. Ausgegeben wird das '''Ergebnis''' der Berechnung (der Formel). | ||
+ | |||
+ | === 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: | ||
+ | |||
+ | {| class="wikitable" style="text-align: left;" | ||
+ | !Datentyp | ||
+ | !Interne Bezeichnung | ||
+ | !Beschreibung | ||
+ | |- valign="top" | ||
+ | |Text, Zeichenfolge | ||
+ | |String | ||
+ | |Ein Text ist eine Folge von Buchstaben und oder Zahlen. Der Test wird in Formeln in '''doppelte Anführungszeichen''' '''<nowiki>"</nowiki>''' gesetzt.<br> | ||
+ | * Der Apostroph ist auch möglich, aber nicht empfehlenswert.<br> | ||
+ | Mit einem Text kann man nicht rechnen, dazu müsste man ihn erst in eine Zahl umwandeln.<br> | ||
+ | Textfelder können eine maximale Länge von 65.534 Zeichen haben (in CrystalReports 8.5 nur 255!). | ||
+ | |- valign="top" | ||
+ | |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! | ||
+ | |- valign="top" | ||
+ | |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. | ||
+ | |- valign="top" | ||
+ | |Datum | ||
+ | |Date | ||
+ | |Ein Datumsfeld beinhaltet - Achtung: Überraschung! - ein Datum! | ||
+ | |- valign="top" | ||
+ | |Uhrzeit | ||
+ | |Time | ||
+ | |Hier wird eine Uhrzeit (ohne Datum) gespeichert. Achtung: Zeitfelder in GEVITAS-Datenbanken sind '''immer''' 5-stellige Textfelder im Format "HH:MM"! | ||
+ | |- valign="top" | ||
+ | |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. | ||
+ | |- valign="top" | ||
+ | |Boolesch | ||
+ | |Boolean | ||
+ | |Bei diesem Datentyp gibt es nur zwei Ergebnisse:<br> | ||
+ | * Wahr (True) | ||
+ | * Falsch (False)<br> | ||
+ | Dieser Datenbanktyp ist '''sehr wichtig''' für die [[Crystal Reports Formeln für die Unterdrückung von Objekten oder Bereichen|'''Unterdrückung''' von Objekten oder Bereichen!]]. | ||
+ | |} | ||
+ | |||
+ | === Formatierung === | ||
+ | |||
+ | Abhängig vom '''Ergebnis''' der Formel entscheidet CrystalReports, welche Formatierungsoptionen angeboten werden. | ||
==== Beispiel 1 ==== | ==== Beispiel 1 ==== | ||
Zeile 21: | Zeile 71: | ||
{maufpo.AUFTRMENGE} * {mart.BRUTTOGEWICHT} | {maufpo.AUFTRMENGE} * {mart.BRUTTOGEWICHT} | ||
− | Hier wird die Auftragsmenge mit dem Bruttogewicht des Artikels multipliziert. | + | 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. | ||
==== Beispiel 2 ==== | ==== Beispiel 2 ==== |
Aktuelle Version vom 9. Februar 2013, 22:54 Uhr
Inhaltsverzeichnis
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.
Mit einem Text kann man nicht rechnen, dazu müsste man ihn erst in eine Zahl umwandeln. |
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:
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...
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.