Crystal Report Explorer- Anwenderhandbuch
Transcrição
Crystal Report Explorer- Anwenderhandbuch
Crystal Report ExplorerAnwenderhandbuch Crystal Reports Explorer XI Release 2 Patente Business Objects hält die folgenden US-Patente, die von Business Objects angebotene und vertriebene Produkte betreffen können: 5.555.403, 6.247.008 B1, 6.578.027 B2, 6.490.593 und 6.289.352. Marken Business Objects, das Business Objects-Logo, Crystal Reports und Crystal Enterprise sind in den Vereinigten Staaten und anderen Ländern Marken oder eingetragene Marken von Business Objects SA oder angegliederten Unternehmen. Alle weiteren in diesem Dokument erwähnten Namen können Marken ihrer jeweiligen Inhaber sein. Copyright Copyright © 2005 Business Objects. Alle Rechte vorbehalten. Drittbeteiligte Die in dieser Version enthaltenen Business Objects-Produkte können für den Weitervertrieb genehmigte Software enthalten, die von Drittbeteiligten lizenziert wurde. Einige dieser Einzelkomponenten können anderen Lizenzbestimmungen unterliegen. Eine auszugsweise Liste der Drittbeteiligten, die eine Genehmigung erteilt bzw. darum ersucht haben, mit entsprechenden Rechtshinweisen finden Sie unter: http://www.businessobjects.com/thirdparty Inhaltsverzeichnis Kapitel 1 Willkommen bei Crystal Reports Explorer 23 Informationen zu diesem Handbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Was ist Crystal Reports Explorer? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 An welchen Anwenderkreis richtet sich dieses Handbuch? . . . . . . . . . 24 Onlinehilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Business Objects-Informationsressourcen . . . . . . . . . . . . . . . . . . . . . 24 Kapitel 2 Verwenden von Crystal Reports Explorer 25 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Anmelden bei BusinessObjects Enterprise . . . . . . . . . . . . . . . . . . . . . . . . 26 Erstellen und Ändern von Berichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Arbeiten auf der Seite "Bericht erstellen" . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Kapitel 3 Arbeiten mit Berichtdaten 31 Verwenden von Business Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Verwenden von Berichtsdatenquellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Auswählen der Datenquelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Arbeiten mit Berichtparametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Auswählen und Umbenennen von Feldern . . . . . . . . . . . . . . . . . . . . . . . . 34 Gruppieren von Datensätzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Filtern von Datensätzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Erstellen mehrerer Filterbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . 42 Bilden von Gruppenergebnissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Sortieren von Datensätzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Sortierfeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Sortierreihenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Sortieren von Datensätzen im Detailbereich . . . . . . . . . . . . . . . . . . . . 47 Sortieren von Datensatzgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Crystal Report Explorer-Anwenderhandbuch 3 Inhaltsverzeichnis Sortieren und Auswählen von Gruppen basierend auf Gruppenergebniswerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Entfernen der Sortierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Anzeigen des Berichts auf der Registerkarte "Daten" . . . . . . . . . . . . . . . . . 51 Veröffentlichen und Exportieren des Berichts . . . . . . . . . . . . . . . . . . . . . . . 53 Kapitel 4 Hinzufügen von Berechnungen mithilfe von Formeln 55 Formeln im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Typische Anwendungsbeispiele für Formeln . . . . . . . . . . . . . . . . . . . . 56 Komponenten und Syntax von Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Formelkomponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Formelsyntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Crystal-Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Erstellen und Ändern von Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Erstellen und Einfügen von Formeln in einem Bericht . . . . . . . . . . . . . 59 Bearbeiten von Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Löschen von Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Entfernen der Arbeitsformel aus Ihrem Bericht . . . . . . . . . . . . . . . . . . . 61 Löschen der Formelspezifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Fehlermeldungen und Formel-Compiler-Warnungen . . . . . . . . . . . . . . . . . 62 Kapitel 5 Formatieren von Berichten 75 Überblick über das Formatieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Hinzufügen und Entfernen von Diagrammen . . . . . . . . . . . . . . . . . . . . . . . 76 Formatieren mit Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Übernehmen der Vorlage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Überlegungen zu Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Formatieren von Objekten und Bereichen . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Verschieben und Ändern der Größe von Objekten und Bereichen . . . . 79 Hinzufügen und Bearbeiten von Textobjekten . . . . . . . . . . . . . . . . . . . 80 Formatieren von Feld- und Textobjekten . . . . . . . . . . . . . . . . . . . . . . . 80 Hinzufügen von Spezialfeldern zum Bericht . . . . . . . . . . . . . . . . . . . . . 81 Formatieren von Bereichen des Berichts . . . . . . . . . . . . . . . . . . . . . . . 84 Formatierungsoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4 Crystal Report Explorer-Anwenderhandbuch Inhaltsverzeichnis Registerkarte "Allgemein" (Dialogfeld "Format-Editor") . . . . . . . . 85 Registerkarte "Rahmen" (Dialogfeld "Format-Editor") . . . . . . . . . . 86 Registerkarte „Schriftart“ (Dialogfeld „Format-Editor“) . . . . . . . . . 87 Registerkarte "Nummer" (Dialogfeld "Format-Editor") . . . . . . . . . 87 Registerkarte "Datum" (Dialogfeld "Format-Editor") . . . . . . . . . . . 88 Registerkarte "Allgemein" (Bereichs-Assistent) . . . . . . . . . . . . . . 88 Registerkarte "Farbe" (Bereichs-Assistent) . . . . . . . . . . . . . . . . . . 90 Arbeiten auf der Registerkarte "Bericht" . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Hinzufügen und Bearbeiten von Textobjekten . . . . . . . . . . . . . . . . . . . 90 Formatieren von Bereichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Formatieren von Feldern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Durchsuchen von Felddaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Sortieren von Felddaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Entfernen eines Feldes aus dem Bericht . . . . . . . . . . . . . . . . . . . . . . . 92 Kapitel 6 Festlegen von Anwendereinstellungen 93 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Ändern der Hintergrundfarbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Festlegen der standardmäßig angezeigten Registerkarte . . . . . . . . . . . . . 96 Anpassen der Symbolleiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Anzeigen erweiterter Dialogfelder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Anzeigen von Feldnamen und -beschreibungen . . . . . . . . . . . . . . . . . . . . 97 Festlegen der Zeilenanzahl im Datenraster . . . . . . . . . . . . . . . . . . . . . . . . 98 Ändern des Aussehens der Registerkarte "Entwurf" . . . . . . . . . . . . . . . . . 98 Kapitel 7 Referenz zur Crystal-Syntax 101 Crystal-Syntax im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Grundlagen der Crystal-Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Ergebnis einer Formel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Bei der Crystal-Syntax wird nicht zwischen Groß- und Kleinschreibung unterschieden . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Übung anhand der Musterdatenbank Xtreme . . . . . . . . . . . . . . . 103 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Crystal Report Explorer-Anwenderhandbuch 5 Inhaltsverzeichnis Felder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Aussehen von Feldern in Formeln . . . . . . . . . . . . . . . . . . . . . . . . 104 Beispielformeln mit Feldern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Mehrfachausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 So wirken sich frühere Ausdrücke auf spätere Ausdrücke aus . . 106 Verwenden des If-Ausdrucks . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Zuweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Einfache Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Zahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Währung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Zeichenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Boolesch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Datum, Uhrzeit und DatumUhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Bereichs-Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Verwenden von Bereichen in Formeln . . . . . . . . . . . . . . . . . . . . . . . . 112 Array-Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Variablen im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Variablendeklarationen Variablenbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Lokale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Globale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Freigegebene Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Deklarieren von Array-Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Arbeiten mit Array-Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Verwenden von Arrays mit For-Schleifen . . . . . . . . . . . . . . . . . . . 120 Standardwerte für die einfachen Typen . . . . . . . . . . . . . . . . . . . . . . . 120 Standardwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Automatische Typkonvertierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Nicht für die Berichterstellung spezifische Funktionen . . . . . . . . . . . . 123 Gruppenergebnisfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 6 Crystal Report Explorer-Anwenderhandbuch Inhaltsverzeichnis Datumsbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Array-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Auswertungszeitpunktfunktionen Druckstatusfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Funktionen für Dokumenteigenschaften . . . . . . . . . . . . . . . . . . . . . . 126 Zusätzliche Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Funktionen für die bedingte Formatierung . . . . . . . . . . . . . . . . . . . . 126 Vielseitig verwendbare bedingte Formatierungsfunktionen . . . . . . . 127 Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Arithmetische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Verarbeitungsreihenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Liste der arithmetischen Operatoren, von höchster bis zu niedrigster Präzedenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Boolesche Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 NULL-Felder und Verwendungsweise von IsNull . . . . . . . . . . . . . . . 130 Steuerelementstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 If-Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 If-Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Weitere Einzelheiten über If-Ausdrücke . . . . . . . . . . . . . . . . . . . 134 Select-Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 For-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Die Syntax der For-Schleife in Beispielen . . . . . . . . . . . . . . . . . . 138 Beispiel für eine For-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Exit For verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 While-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Die zwei unterschiedlichen Typen der While-Schleifen . . . . . . . 141 While ... Do-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Sicherheitsmechanismen für Schleifen . . . . . . . . . . . . . . . . . . . . . . . 143 Option Loop (Crystal-Syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Syntax von Option Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Einschränkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Crystal Report Explorer-Anwenderhandbuch 7 Inhaltsverzeichnis Kapitel 8 Funktionen 147 Informationen über Zahlenformatierungen in Beispielen . . . . . . . . . . . . . . 148 Mathematik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Abs (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Sgn (Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Int (Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 RoundUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Truncate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 MRound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Ceiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Fix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Remainder (Zähler, Nenner) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Sin (Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Cos (Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Tan (Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Atn (Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Sqr (Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Exp (Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Log (Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Rnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Gruppenergebnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Bedingungen für Gruppenergebnisfunktionen . . . . . . . . . . . . . . . . . . 170 Sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Average . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 StdDev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 PopulationStdDev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 PopulationVariance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Maximum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 8 Crystal Report Explorer-Anwenderhandbuch Inhaltsverzeichnis Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 DistinctCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Covariance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 WeightedAverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Median . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 PthPercentile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 NthLargest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 NthSmallest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 NthMostFrequent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 PercentOfSum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 PercentOfAverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 PercentOfMaximum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 PercentOfMinimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 PercentOfCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 PercentOfDistinctCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Finanzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 ACCRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 ACCRINTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 AmorDEGRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 AmorLINC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 CoupDayBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 CoupDays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 CoupDaysNC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 CoupNCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) . . . . . . . . 229 CoupNum (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) . . . . . . . . . 230 CoupPCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) . . . . . . . . . 231 CumIPMT (Satz, nZeiträume, aktuellerWert, Startzeitraum, Endzeitraum, Typ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 CumPrinc (Satz, nZeiträume, aktuellerWert, Startzeitraum, Endzeitraum, Typ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 DB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Crystal Report Explorer-Anwenderhandbuch 9 Inhaltsverzeichnis DDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Days360 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 DISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 DollarDE (Bruchzahl, Basis) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 DollarFR (Dezimalzahl, Basis) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Effect (Satz, nVergleichbareZeiträume) . . . . . . . . . . . . . . . . . . . . . . . 244 FV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 FVSchedule (Wert, Sätze) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 IntRate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 IPmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 IRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 ISPMT (Satz, Zeitraum, nZeiträume, aktuellerWert) . . . . . . . . . . . . . . 252 MDuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 MIRR (Werte, Finanzsatz, Wiederanlagesatz) . . . . . . . . . . . . . . . . . . 255 Nominal (Satz, nVergleichbareZeiträume) . . . . . . . . . . . . . . . . . . . . . 256 NPer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 NPV (Satz, Werte) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 OddFPrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 OddFYield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 OddLPrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 OddLYield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Pmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 PPmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Price . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 PriceDisc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 PriceMat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 PV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Received . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 SLN (Kosten, Restwert, Lebensdauer) . . . . . . . . . . . . . . . . . . . . . . . . 280 SYD (Kosten, Restwert, Lebensdauer, Zeitraum) . . . . . . . . . . . . . . . . 281 TBillEq (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) . . . . . . . . . . 282 10 Crystal Report Explorer-Anwenderhandbuch Inhaltsverzeichnis TBillPrice (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) . . . . . . . . 283 TBillYield (Zahlungsdatum, Fälligkeitsdatum, Preis) . . . . . . . . . . . . . 285 VDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 XIRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 XNPV (Satz, Werte, Tage) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 YearFrac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Yield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 YieldDisc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 YieldMat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 Zeichenfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Len (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Length (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Trim (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 LTrim (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 TrimLeft (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 RTrim (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 TrimRight (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 UCase (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 UpperCase (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 LCase (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 LowerCase (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 ProperCase(Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 StrReverse (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 IsNumeric (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 NumericText (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 ToNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 ToText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 Formatzeichenfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Formatzeichenfolgen für Date-, Time- und DateTime-Werte . . . 326 Konvertieren boolescher Werte . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Konvertieren von rationalen Zahlen und Currency-Werten . . . . . 328 Konvertieren von Date-, Time- und DateTime-Werten . . . . . . . . 328 Übergeben optionaler Argumente . . . . . . . . . . . . . . . . . . . . . . . . 328 Crystal Report Explorer-Anwenderhandbuch 11 Inhaltsverzeichnis ToWords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 ReplicateString (Zchnflge, AnzKopien) . . . . . . . . . . . . . . . . . . . . . . . . 332 Space (Ganzzahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 InStr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 InStrRev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 StrCmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 Mid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 Left (Zchnflge, Länge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Right (Zchnflge, Länge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Val (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 ChrW (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 AscW (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 Join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 Roman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 URLEncode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 URLDecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Datum/Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 CurrentDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 Current Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 CurrentDateTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 DateTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 DateValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 TimeValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 DateTimeValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 DateSerial (Jahr, Monat, Tag) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 TimeSerial (Stunden, Minuten, Sekunden) . . . . . . . . . . . . . . . . . . . . . 374 IsTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 IsDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 12 Crystal Report Explorer-Anwenderhandbuch Inhaltsverzeichnis IsDateTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 Year (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 Month (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 Day (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 WeekDay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 DayOfWeek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 Hour (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 Minute (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 Second (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 MonthName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 WeekdayName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 DateAdd (Intervalltyp, nIntervalle, StartDatumUhrzeit) . . . . . . . . . . . 389 DateDiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 DatePart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 Konstanten für den ersten Wochen-/Jahrestag . . . . . . . . . . . . . . . . . 397 ShiftDateTime (inputDateTime, inputTimeZone, newTimeZone) . . . . 397 Datumsbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 WeekToDateFromSun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 MonthToDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 YearToDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 Last7Days . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 Last4WeeksToSun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 LastFullWeek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 LastFullMonth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 AllDatesToToday . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 AllDatesToYesterday . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 AllDatesFromToday . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 AllDatesFromTomorrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 Aged0To30Days, Aged31To60Days, Aged61To90Days . . . . . . . . . . 410 Over90Days . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 Next30Days, Next31To60Days, Next61To90Days, Next91To365Days . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 Crystal Report Explorer-Anwenderhandbuch 13 Inhaltsverzeichnis Calendar1stQtr, Calendar2ndQtr, Calendar3rdQtr, Calendar4thQtr . . 415 Calendar1stHalf, Calendar2ndHalf . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 LastYearMTD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 LastYearYTD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 Array (x,…) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 MakeArray (x, ...) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 UBound (Array) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 Array-Gruppenergebnisfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 Bereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 HasLowerBound (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 HasUpperBound (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 IncludesLowerBound (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 IncludesUpperBound (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 Typkonvertierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 CBool (Zahl oder Währung) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 CCur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 CDbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 CStr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 CDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 CTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 CDateTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 Programmierbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 Choose (Index, Auswahl1, Auswahl2, ...) . . . . . . . . . . . . . . . . . . . . . 442 IIF (Ausdruck, True-Teil, False-Teil) . . . . . . . . . . . . . . . . . . . . . . . . . . 444 Switch (Ausdr1, Wert1, Ausdr2, Wert2, …) . . . . . . . . . . . . . . . . . . . . . 445 Auswertungszeitpunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 BeforeReadingRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 WhileReadingRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 WhilePrintingRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 EvaluateAfter (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 Druckstatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 Previous (Feld) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 14 Crystal Report Explorer-Anwenderhandbuch Inhaltsverzeichnis PreviousValue (Feld) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 Next (Feld) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 NextValue (Feld) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 IsNull (Feld) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 PreviousIsNull (Feld) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 NextIsNull (Feld) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 PageNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 TotalPageCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 PageNofM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 Datensatznummer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 GroupNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 RecordSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 GroupSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 InRepeatedGroupHeader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 OnFirstRecord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 OnLastRecord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 DrillDownGroupLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 HierarchyLevel (GroupingLevel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 Dokumenteigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 PrintDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 PrintTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 PrintTimeZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 ModificationDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 ModificationTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 DataDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 DataTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 DataTimeZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 ReportTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 ReportComments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 Filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 FileAuthor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 FileCreationDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 CurrentCEUserName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 Crystal Report Explorer-Anwenderhandbuch 15 Inhaltsverzeichnis CurrentCEUserID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 GroupingLevel (Feld) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 CurrentCEUserTimeZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 ContentLocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 SelectionLocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 Warnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 IsAlertEnabled(Name der Warnung) . . . . . . . . . . . . . . . . . . . . . . . . . . 481 IsAlertTriggered(Name der Warnung) . . . . . . . . . . . . . . . . . . . . . . . . . 482 AlertMessage(Name der Warnung) . . . . . . . . . . . . . . . . . . . . . . . . . . 483 Zusätzliche Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 DateTo2000 (Datum, Zahl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 DTSTo2000 (DatumUhrzeitFolge, Zahl) . . . . . . . . . . . . . . . . . . . . . . . 487 DTSToDate (DatumUhrzeitFolge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 DTSToSeconds (DatumUhrzeitFolge) . . . . . . . . . . . . . . . . . . . . . . . . 490 DTSToTimeString (DatumUhrzeitFolge) . . . . . . . . . . . . . . . . . . . . . . . 491 ExchGetId (Adresse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 ExchGetOrganization (Adresse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 ExchGetSite (Adresse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 ExtractString (Ursprung, Anfangszeichenfolge, Endzeichenfolge) . . . 494 EventNumber (Ereignisnummer im Nachrichten-Trackingprotokoll) . . 495 ExchGetPath (Pfad) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 ByteToText (Byte) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 FRCurrentRatio (Umlaufvermögen, KurzfristigeVerbindlichkeiten) . . . 497 FRQuickRatio (Umlaufvermögen, Bestand, KurzfristigeVerbindlichkeiten) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 FRDebtEquityRatio (GesObligo, GesEigenkapital) . . . . . . . . . . . . . . . 501 FREquityVsTotalAssets (GesEigenkapital, GesVermögen) . . . . . . . . 502 FRNetProfitMargin (NettoGewinn, Verkauf) . . . . . . . . . . . . . . . . . . . . 503 FRGrossProfitMargin (BruttoGewinn, Verkauf) . . . . . . . . . . . . . . . . . . 505 FROperatingProfitMargin (Gewinn, Verkauf) . . . . . . . . . . . . . . . . . . . 506 FRInterestCoverage (Barmittelfluss, Zinsausgaben) . . . . . . . . . . . . . 507 FRCashFlowVsTotalDebt (Barmittelfluss, GesSchulden) . . . . . . . . . . 509 FRReturnOnEquity (NettoGewinn, GesEigenkapital) . . . . . . . . . . . . . 510 16 Crystal Report Explorer-Anwenderhandbuch Inhaltsverzeichnis FRReturnOnNetFixedAssets (NettoGewinn, Reinvermögen) . . . . . . 512 FRReturnOnTotalAssets (NettoGewinn, GesVermögen) . . . . . . . . . 513 FRReturnOnInvestedCapital (NettoGewinn, GesBankschulden, GesEigenkapital) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 FRReturnOnCommonEquity (NettoGewinn, Vorzugsdividende, Stammaktienkapital) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 FREarningsPerCommonShare (NettoGewinn, Vorzugsdividende, AnzStammaktien) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 FRAccRecTurnover (Forderungen, Verkauf, AnzTage) . . . . . . . . . . . 519 FRInventoryTurnover (Bestand, Verkauf, AnzTage) . . . . . . . . . . . . . 521 FRPriceEarningsRatio (Marktpreis, GewinnProAktie) . . . . . . . . . . . . 522 FRDividendYield (Dividende, Marktpreis) . . . . . . . . . . . . . . . . . . . . . 523 Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 Picture (Zchnflge, Bild) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 LooksLike (Zchnflge, Maske) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 Soundex (Zchnflge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 DateTimeTo2000 (DatumUhrzeit, Zahl) . . . . . . . . . . . . . . . . . . . . . . . 529 DTSToDateTime (DatumUhrzeitFolge) . . . . . . . . . . . . . . . . . . . . . . . 531 DTSToTimeField (DatumUhrzeitFolge) . . . . . . . . . . . . . . . . . . . . . . . 532 DateTimeToDate (dateTime) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 DateTimeToTime (DatumUhrzeit) . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 DateTimeToSeconds (DatumUhrzeit) . . . . . . . . . . . . . . . . . . . . . . . . 533 Funktionen zum Duplizieren von Gruppenfeldern . . . . . . . . . . . . . . . . . . 534 Nach Feld sortieren und gruppieren = Zeichen, Zahl oder Currency-Wert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 Nach Feld sortieren und gruppieren = Datums- oder boolesche Bedingung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 Gesamtergebnis-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 Konditionale Formatierungsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 GridRowColumnValue (Name) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 CurrentFieldValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 DefaultAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 RGB (Rot, Grün, Blau) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 Color (Rot, Grün, Blau) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 Crystal Report Explorer-Anwenderhandbuch 17 Inhaltsverzeichnis Zusätzliche Funktionen des SQL-Ausdrucks-Editors . . . . . . . . . . . . . . . . 543 Attributfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 CASE-Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 Datum-/Uhrzeitfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 Hash-bezogene Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 Numerische Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 Logische Prädikate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 Zeichenfolgefunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 Integrierte Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 Kapitel 9 Operatoren 547 Arithmetische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 Additionsoperator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 Subtraktionsoperator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 Multiplikationsoperator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 Divisionsoperator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 Prozent-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 Ganzzahldivision (x \ y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 Modul (x Mod y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 Negationsoperator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 Potenzieren (x ^ y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 Konvertierungsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 In-Währung-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 Gleichheitsoperator (x=y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 Not (Ungleichheit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 Kleiner-als-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 Größer-als-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 Kleiner-als-oder-gleich-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 Größer-oder-gleich-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 Zeichenfolgeoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Verkettungsoperator (x +y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Verketten (x & y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561 18 Crystal Report Explorer-Anwenderhandbuch Inhaltsverzeichnis Index in Arrays und Zeichenfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Index (x(y)) Basic-Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Index (x[y]) Crystal-Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 In-Zeichenfolge-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 Leere Zeichenfolge einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 Bereichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 In-Bereich-Operator (x in y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 To (x To y) – Bereicherstellungs-Operator . . . . . . . . . . . . . . . . . . . . . 567 _To (x _To y) Bereich mit Ausschluss des Startpunkts . . . . . . . . . . . 568 To_ (x To_ y) Bereich mit Ausschluss des Endpunkts . . . . . . . . . . . . 568 _To_ (x _To_ y) – Bereich mit Ausschluss von Start- und Endpunkt . 569 Is > x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 Is < x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 Ist >= x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 Ist <= x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 upFrom (upFrom x) – Ab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 upFrom_ (upFrom_ x) – Ab aber nicht einschließlich . . . . . . . . . . . . 573 Bis (upTo x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 upTo_ (upTo_ x) – Bis aber nicht einschließlich . . . . . . . . . . . . . . . . 574 Boolesche Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 Not (Ungleich-Operator) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 And (Und) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 Or (Oder) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 Xor (logischer Ausschluss) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 Eqv (logische Äquivalenz) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 Imp (logische Implikation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 Arrayoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 Arrayerstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 Index (x[y]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 In Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 Redim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 Basic-Syntax x(n) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 Crystal-Syntax x[n] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 Crystal Report Explorer-Anwenderhandbuch 19 Inhaltsverzeichnis Redim Preserve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 Basic-Syntax x(n) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 Crystal-Syntax x[n] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 Musteroperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 Beginnt-mit-Operator (x startsWith y) . . . . . . . . . . . . . . . . . . . . . . . . . 584 like (Wie Muster) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 Operatoren für Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 Basic-Syntax – Operatoren für Kontrollstrukturen . . . . . . . . . . . . . . . . 586 Crystal-Syntax – Operatoren für Kontrollstrukturen . . . . . . . . . . . . . . 586 Andere Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 Klammeroperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 Zuweisungsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 Basic syntax (x = y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 Crystal-Syntax (x := y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 Basic-Syntax (Rem) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 Basic-Syntax (') . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 Crystal-Syntax (//) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 Datum-Uhrzeit-Literal (#…#) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 Variablendeklarationsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 Variablendeklaratoren für Basic-Syntax . . . . . . . . . . . . . . . . . . . . . . . 593 Variablendeklaratoren für Crystal-Syntax . . . . . . . . . . . . . . . . . . . . . . 595 Bereichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 Variablenbereiche für Basic-Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . 596 Variablenbereiche für Crystal-Syntax . . . . . . . . . . . . . . . . . . . . . . . . . 596 Anweisungstrennzeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 Konstanten für das Datum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 Konstanten für Wochentage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 Konstanten für die erste Jahreswoche . . . . . . . . . . . . . . . . . . . . . 600 Konstanten für die Wochentageinrahmung . . . . . . . . . . . . . . . . . 600 Datum-/Uhrzeitkonstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 Konstanten zur Formatierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 20 Crystal Report Explorer-Anwenderhandbuch Inhaltsverzeichnis Konstanten für den Schriftschnitt . . . . . . . . . . . . . . . . . . . . . . . . 601 Konstanten für die Textinterpretation . . . . . . . . . . . . . . . . . . . . . 602 Konstanten für die Farbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 Konstanten für die Ausrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . 603 Konstanten für die Linienart . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 Mathematische Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 Anhang A Business Objects-Informationsressourcen 605 Dokumentations- und Informationsdienste . . . . . . . . . . . . . . . . . . . . . . . . 606 Dokumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 Was ist im Dokumentationsset enthalten? . . . . . . . . . . . . . . . . . . . . . 606 Wo finden Sie die Dokumentation? . . . . . . . . . . . . . . . . . . . . . . . . . . 606 Dokumentation innerhalb der Produkte . . . . . . . . . . . . . . . . . . . . 606 Dokumentation im Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 Dokumentation auf der Produkt-CD . . . . . . . . . . . . . . . . . . . . . . 607 Senden Sie uns Ihr Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 Kunden-Support, Beratung und Schulung . . . . . . . . . . . . . . . . . . . . . . . . 607 Wie erhalten Sie Unterstützung? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 Online Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 Suchen Sie nach der optimalen Implementierungslösung für Ihr Unternehmen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 Suchen Sie Schulungsmöglichkeiten? . . . . . . . . . . . . . . . . . . . . . . . . 608 Nützliche Adressen auf einen Blick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 Index 611 Crystal Report Explorer-Anwenderhandbuch 21 Inhaltsverzeichnis 22 Crystal Report Explorer-Anwenderhandbuch Crystal Report Explorer-Anwenderhandbuch Kapitel Willkommen bei Crystal Reports Explorer 1 Willkommen bei Crystal Reports Explorer Informationen zu diesem Handbuch Informationen zu diesem Handbuch Dieses Handbuch enthält Informationen und Anleitungen zu den unterschiedlichsten Aufgaben bei der Berichterstellung. Gängige Abläufe werden in schrittweisen Anleitungen beschrieben. Für erweiterte Themen werden Begriffsinformationen und technische Details angegeben (falls erforderlich). Was ist Crystal Reports Explorer? Crystal Reports Explorer ermöglicht Anwendern das Erstellen und Bearbeiten von Berichten, das Entwerfen von Layouts sowie das Durchführen von Datenanalysen unter Verwendung einer Zero-Client-Schnittstelle. Diese Funktionalität reduziert Arbeitsüberhänge bei der Erstellung von IT-Berichten, da Anwender persönlich angepasste Berichtsansichten in BusinessObjects Enterprise erstellen, speichern und neu verteilen können. An welchen Anwenderkreis richtet sich dieses Handbuch? Dieses Handbuch richtet sich an BusinessObjects Enterprise-Anwender, die Crystal Reports Explorer zum Erstellen und Ändern von Berichten verwenden. Vorkenntnisse im Umgang mit BusinessObjects Enterprise, Business Views, Crystal Reports und der allgemeinen Berichtumgebung sind von Vorteil, aber nicht Voraussetzung. Onlinehilfe Greifen Sie auf die Online-Hilfe in Crystal Reports Explorer zu, indem Sie auf Hilfe klicken. Die Onlinehilfe umfasst alle in diesem Handbuch enthaltenen Informationen. Business Objects-Informationsressourcen Nähere Informationen und Unterstützung finden Sie unter Anhang A: Business Objects-Informationsressourcen. In diesem Anhang werden die Business Objects-Dokumentation, der Kunden-Support sowie Schulungsund Beratungsdienste beschrieben und Hyperlinks zu Onlineressourcen bereitgestellt. 24 Crystal Report Explorer-Anwenderhandbuch Kapitel Verwenden von Crystal Reports Explorer 2 Verwenden von Crystal Reports Explorer Übersicht Übersicht Crystal Reports Explorer vereint die wichtigsten Technologien zur Informationsbereitstellung aus der Desktop Intelligence-Softwarefamilie in einem Produkt: • Das aus Serverkomponenten bestehende BusinessObjects EnterpriseSystem dient zur Authentifizierung und Autorisierung von Anwendern und ermöglicht ihnen die Arbeit mit Berichtobjekten in einer verwalteten Umgebung. • Crystal Reports Explorer unterstützt Anwender beim webbasierten Entwerfen, Ändern und Verarbeiten von Crystal Reports-Berichten sowie Business Views auf Abruf innerhalb der BusinessObjects EnterpriseUmgebung. Anmelden bei BusinessObjects Enterprise Um über InfoView auf Crystal Reports Explorer zuzugreifen, geben Sie die URL für InfoView im Webbrowser ein. Unter Windows können Sie auch im Windows-Startmenü aus der Programmgruppe die Option "InfoView" auswählen. 1. So greifen Sie auf InfoView zu: Wechseln Sie zum BusinessObjects Enterprise Verwaltungslaunchpad, und klicken Sie auf die Verknüpfung InfoView. Alternativ können Sie folgende URL aufrufen: http://webserver/businessobjects/enterprise115/InfoView Ersetzen Sie webserver mit dem Namen des Webservers, der für BusinessObjects Enterprise eingerichtet wurde. Möglicherweise müssen Sie Ihren Administrator nach dem einzugebenden Webservernamen oder der genauen URL fragen. Tipp: Falls Sie BusinessObjects Enterprise-Clienttools installiert haben, können Sie auch auf Start > Programme > Desktop Intelligence XI > BusinessObjects Enterprise > BusinessObjects Enterprise .NET InfoView (oder Java InfoView) klicken. Die Seite "Anmelden" wird angezeigt. 2. 26 Geben Sie Anwendernamen, Kennwort, Authentifizierungstyp und Systemnamen ein, und klicken Sie dann auf Anmelden. Crystal Report Explorer-Anwenderhandbuch Verwenden von Crystal Reports Explorer Erstellen und Ändern von Berichten Vergewissern Sie sich vor der Verwendung von Crystal Reports Explorer, dass Sie über einen Anwendernamen und ein Kennwort verfügen, der bzw. das von BusinessObjects Enterprise erkannt wird. Wenn Sie Ihre Anmeldeinformationen nicht genau kennen oder Ihr Konto vom System nicht erkannt wird, wenden Sie sich an den Administrator. Tipp: Alternativ können Sie auf Crystal Reports Explorer zugreifen, ohne InfoView aufzurufen: • Geben Sie die URL für Crystal Reports Explorer ein. Wenn Sie sich bei der CSP-Version unter Windows anmelden, lautet die standardmäßige URL http://webserver/businessobjects/enterprise115/adhoc wobei webserver für den Namen des BusinessObjects EnterpriseWebservers steht. Wenn Sie sich bei der JSP-Version anmelden, lautet die standardmäßige URL http://webserver:anschluss/businessobjects/ enterprise115/adhoc Falls Sie diesbezüglich weitere Informationen benötigen, wenden Sie sich an Ihren Administrator. • Geben Sie auf der Seite "Anmeldeinformationen" Anwendernamen, Kennwort, Authentifizierungstyp und Systemnamen ein, und klicken Sie dann auf "Anmelden". • Klicken Sie auf "Bericht erstellen". Nach der Anmeldung bei InfoView können Sie Berichte erstellen und ändern. Erstellen und Ändern von Berichten Erkundigen Sie sich bei Ihrem BusinessObjects Enterprise-Administrator, ob Sie über die notwendigen Rechte sowie über Zugriff auf die Crystal ReportsBerichte und Business Views verfügen, die Sie verwenden möchten. 1. 2. So ändern Sie einen Bericht Melden Sie sich bei BusinessObjects Enterprise an, und navigieren Sie zu InfoView. Suchen Sie den Crystal Reports-Bericht, den Sie ändern möchten, und wählen Sie dann die darunter befindliche Verknüpfung Ändern. Dadurch wird die Seite "Bericht ändern" geöffnet (die auch als Änderungsviewer bezeichnet wird). Weitere Informationen zum Ändern von Berichten finden Sie unter „Arbeiten mit Berichtdaten“ auf Seite 31. Crystal Report Explorer-Anwenderhandbuch 27 2 2 Verwenden von Crystal Reports Explorer Arbeiten auf der Seite "Bericht erstellen" 1. 2. So erstellen Sie einen Bericht Melden Sie sich bei BusinessObjects Enterprise an, und navigieren Sie zu InfoView. Wählen Sie auf der Symbolleiste in der Liste Neu Crystal ReportsBericht. Der Seite "Bericht erstellen" wird angezeigt. Standardmäßig können Sie einen Bericht auf der Grundlage einer Business View erstellen. Ihr Administrator kann Ihnen jedoch auch Zugriff auf Berichtdatenquellen einräumen. Anweisungen zum Erstellen eines Berichts finden Sie unter „Arbeiten mit Berichtdaten“ auf Seite 31. Arbeiten auf der Seite "Bericht erstellen" Diese Seite bietet Zugriff auf alle verfügbaren Berichterstellungstools. Der Zugriff auf diese Tools erfolgt über verschiedene Symbolleistenoptionen, Steuerschaltflächen und Registerkarten. Die Seite "Bericht erstellen" und die Seite "Bericht ändern" verfügen über identische Funktionen. Hinweis: Die in Crystal Reports Explorer verfügbaren Funktionen sind von dem Recht abhängig, das Ihnen vom Administrator zugewiesen wurde. Falls Sie diesbezüglich weitere Informationen benötigen, wenden Sie sich an Ihren BusinessObjects Enterprise-Administrator. 28 Crystal Report Explorer-Anwenderhandbuch Verwenden von Crystal Reports Explorer Arbeiten auf der Seite "Bericht erstellen" • Steuerschaltflächen Verwenden Sie die Steuerschaltflächen in der oberen rechten Bildschirmecke zum Navigieren: Name Beschreibung Neu starten Über diese Schaltfläche wird der Entwurf bzw. die Änderung von Berichten aus der ausgewählten Datenquelle neu gestartet. Schließen Über diese Schaltfläche wechseln Sie zur Hauptseite. Ansicht Über diese Schaltfläche wird ein Bericht-Viewer in einem neuen Fenster geöffnet. Einstellungen Über diese Schaltfläche werden die Anwendereinstellungen festgelegt. Info zu Hier finden Sie Informationen zu dieser Version. Hilfe Über diese Schaltfläche öffnen Sie diese Informationen. • Symbolleistenoptionen Die Optionen auf der Symbolleiste ermöglichen das Auswählen einer Datenquelle für den Bericht, das Hinzufügen von Feldern zum Bericht, das Gruppieren und Sortieren von Daten auf verschiedene Weisen, das Hinzufügen von Gruppenergebnisfeldern und Formelberechnungen usw. Die Optionen, mit denen Sie arbeiten können, hängen davon ab, wie der Administrator Ihr Anwenderkonto eingerichtet hat. In den restlichen Abschnitten werden diese Optionen ausführlich vorgestellt. Tipp: Ziehen Sie den Titel der Symbolleiste, um sie von der linken Bildschirmseite zu entfernen. Positionieren Sie anschließend die bewegliche Symbolleiste an der gewünschten Stelle. Doppelklicken Sie auf die Titelleiste, um die Symbolleistenoptionen zu erweitern. Durch Klicken auf X wird die Symbolleiste wieder an ihrer ursprünglichen Position angezeigt. • Registerkarte "Quelle" Verwenden Sie beim Durchlaufen der Optionen auf der Symbolleiste die Felder auf der Registerkarte "Quelle", um die Objekte im Blick zu behalten, mit denen Sie arbeiten. Wenn Sie beispielsweise eine Datenquelle auswählen, werden im Feld "Beschreibung" gegebenenfalls weitere Informationen angezeigt. Außerdem wird im Feld "Verfügbare Felder" die Liste der Felder in der Datenquelle angezeigt. Beim Auswählen von Feldern und Hinzufügen weiterer Objekte werden deren Einträge in den entsprechenden Feldern auf der Registerkarte "Quelle" angezeigt. Crystal Report Explorer-Anwenderhandbuch 29 2 2 Verwenden von Crystal Reports Explorer Arbeiten auf der Seite "Bericht erstellen" Nähere Informationen hierzu finden Sie unter „Arbeiten mit Berichtdaten“ auf Seite 31. • Registerkarte „Daten“ Klicken Sie auf die Registerkarte "Daten", um die Daten in einem einfachen Raster ohne Formatierung anzuzeigen. Dieses Raster bietet die einfachste Möglichkeit, um die unbearbeiteten Daten in der Vorschau anzuzeigen, während Sie Ihren Bericht durch Hinzufügen von Gruppen, Filtern, Gruppenergebnissen, Berechnungen usw. ändern und optimieren. Beim Abrufen der gewünschten Daten können Sie zwischen den Registerkarten "Quelle" und "Daten" wechseln. Nähere Informationen hierzu finden Sie unter „Anzeigen des Berichts auf der Registerkarte "Daten"“ auf Seite 51. • Registerkarte „Entwurf“ Klicken Sie auf die Registerkarte "Entwurf", um Layout und Formatierung des Berichts anzuzeigen und zu ändern. Hier können Sie Feldobjekte verschieben und formatieren, Textobjekte hinzufügen, Berichtbereiche neu anordnen und formatieren usw. Nähere Informationen hierzu finden Sie unter „Überblick über das Formatieren“ auf Seite 76. • Registerkarte „Bericht “ Klicken Sie auf die Registerkarte "Bericht", um den Crystal ReportsBericht anzuzeigen. Diese Registerkarte ermöglicht es Ihnen, beim Positionieren und Formatieren von Objekten wie Feldern und Diagrammen, eine Vorschau auf das Layout und die Formatierung des Berichts anzuzeigen und diese zu ändern. Beim Formatieren des endgültigen Berichts können Sie zwischen den Registerkarten "Entwurf" und "Bericht" wechseln. Nähere Informationen hierzu finden Sie unter „Überblick über das Formatieren“ auf Seite 76. • Klicken Sie rechts oben auf dem Bildschirm auf die Schaltfläche Anzeigen. Über diese Option wird ein Berichtviewer in einem neuen Fenster geöffnet. 30 Crystal Report Explorer-Anwenderhandbuch Kapitel Arbeiten mit Berichtdaten 3 Arbeiten mit Berichtdaten Verwenden von Business Views Verwenden von Business Views Eine Business View ist eine Menge von Business Elements, die Endbenutzern die höchste Stufe einer Datenabstraktion zur Verfügung stellt. Der Anwender sieht Business Views als abstrakte Datenbankverbindung und die enthaltenen Business Elements als virtuelle Tabellen, die Business-Felder enthalten. Business Views werden über einen Thick-Client-Designer, den Business View-Manager, in BusinessObjects Enterprise erstellt. Endbenutzer greifen über Anwendungen wie Crystal Reports oder OLAP Intelligence und beim Erstellen von Berichten mit dem Crystal Reports Explorer auf Business Views zu. Weitere Informationen zu Business Views finden Sie im Business Views-Administratorhandbuch. Business Elements Ein Business Element entspricht in etwa einer OLAP-Dimension oder einer logischen Ansicht. Es besteht aus einer logisch verknüpften Menge von Datenfeldern auf der Basis einer Datengrundlage. Die Felder können in einer hierarchischen Struktur organisiert werden, so dass innerhalb eines Business Elements verschiedene Stufen entstehen. Ein gebräuchliches Beispiel für ein Business Element ist eine hierarchische Struktur mit den nachfolgend aufgeführten Feldern: Staat, Bundesland oder Region und Stadt. Wenn Sie Felder für den Bericht auswählen, treffen Sie Ihre Auswahl tatsächlich in einer Hierarchie von Business-Feldern, aus denen ein Business Element besteht. Weitere Informationen zum Auswählen von Feldern für den Bericht finden Sie unter „Auswählen und Umbenennen von Feldern“ auf Seite 34. Business-Felder Ein Business-Feld kann ein Datenfeld, eine Formel oder ein SQL-Ausdruck sein. Ein Business Element besteht aus einer Anzahl von Business-Feldern. Diese Business-Felder sind für einen Bericht-Designer über die eine oder mehrere Business Elements verfügbar, die in einer Business View enthalten sind. Verwenden von Berichtsdatenquellen Eine Berichtdatenquelle ist ein vom Administrator oder Bericht-Designer bereitgestellter Crystal Reports-Bericht, der normalerweise Berichtfelder, Parameter, Filter und Formeln enthält. Berichtdatenquellen werden auf der Seite "Datenquelle für den Bericht festlegen" erstellt. Berichtdatenquellen werden in BusinessObjects Enterprise im angegebenen Datenquellenordner gespeichert. 32 Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Auswählen der Datenquelle Der Administrator legt fest, ob Sie Zugriff auf Berichtsdatenquellen, Business Views oder beides haben. Genaueres hierzu finden Sie im Crystal Reports Explorer Administratorhandbuch. Auswählen der Datenquelle Sie können Berichte auf der Grundlage von Business Views oder Berichtdatenquellen erstellen. 1. 2. So wählen Sie eine Datenquelle für einen Bericht aus Melden Sie sich bei BusinessObjects Enterprise an, und navigieren Sie zu InfoView. Wählen Sie auf der Symbolleiste in der Liste Neu Crystal ReportsBericht. Die Fenster Seite "Bericht erstellen" und "Datenquelle auswählen" werden angezeigt. Tipp: Klicken Sie auf der Symbolleiste auf "Datenquelle auswählen", um eine Datenquelle in Crystal Reports Explorer auszuwählen. 3. 4. Wählen Sie im Dialogfeld "Datenquelle auswählen" den gewünschten Datenquellentyp aus: • Erweitern Sie den Ordner Business View auswählen, um eine Business View auszuwählen. • Erweitern Sie den Ordner Berichtdatenquelle auswählen, um eine Berichtdatenquelle auszuwählen. Klicken Sie auf OK. Arbeiten mit Berichtparametern Nachdem Sie die Datenquelle ausgewählt haben, können Sie mit der Berichterstellung beginnen. Wenn der als Datenquelle gewählte Bericht oder die Business View Parameter enthält, wird das Dialogfeld "Parameter" angezeigt. Ein Berichtparameter ist ein Feld, mit dessen Hilfe ein Bericht-Designer die Berichtbenutzer zur Eingabe von Informationen auffordert, mit denen anschließend die Daten in dem Bericht gefiltert werden. Ein weltweiter Umsatzbericht kann beispielweise einen Parameter enthalten, der Sie auffordert, eine Auswahl in einer Liste verfügbarer Länder zu treffen, um die Berichtdaten auf ein Land zu beschränken. Crystal Report Explorer-Anwenderhandbuch 33 3 3 Arbeiten mit Berichtdaten Auswählen und Umbenennen von Feldern Alternativ kann ein Debitorenkontobericht einen Parameter enthalten, durch den Sie aufgefordert werden, den Namen eines oder mehrerer Debitoren einzugeben, deren Kontodaten im Bericht angezeigt werden sollen. Hinweis: Je nach Anzahl und Typ der Parameter im ursprünglichen Bericht können die Optionen im Dialogfeld "Parameter" variieren. Es gibt optionale und obligatorische Parameter. Einige Parameter bieten eine Liste mit Standardwerten. Bei anderen ist es erforderlich, die Informationen manuell einzugeben. Wenn Sie nicht genau wissen, wie Sie einen bestimmten Berichtparameterwert festlegen sollen, wenden Sie sich an den Designer des ursprünglichen Berichts. Tipp: Sie können Parameterwerte ändern, indem Sie auf der Symbolleiste auf "Berichtparameter" klicken, um das Dialogfeld "Parameter" zu öffnen. Auswählen und Umbenennen von Feldern Sie haben zwei Möglichkeiten, Felder für einen Bericht auszuwählen. Klicken Sie in der Symbolleiste auf "Felder", und treffen Sie Ihre Auswahl direkt in der Liste der verfügbaren Felder. Alternativ können Sie auch auf "Weitere" klicken, um auf das Dialogfeld zur Feldauswahl zuzugreifen. In diesem Dialogfeld können Sie Felder ebenfalls umbenennen. Die verfügbaren Felder werden im Dialogfeld "Weitere" in einer Hierarchie angezeigt. Falls Sie eine Business View als Datenquelle ausgewählt haben, wird im Fensterbereich "Verfügbare Felder" eine Liste der Business Elements angezeigt. Klicken Sie auf ein Business Element, um die darin enthaltene Liste von Business-Feldern zu erweitern, und wählen Sie unter diesen Feldern aus. Falls Sie eine Berichtsdatenquelle ausgewählt haben, wird im Bereich "Verfügbare Felder" eine Liste von Tabellen angezeigt. Klicken Sie auf eine Tabelle, um die darin enthaltene Feldliste zu erweitern, und wählen Sie unter diesen Feldern aus. 1. So wählen Sie Felder aus Klicken Sie in der Symbolleiste auf Felder. 2. Folgende Optionen stehen Ihnen zur Verfügung: • Klicken Sie auf ein beliebiges Feld in der Liste, um es dem Bericht hinzuzufügen. Felder werden im Bericht von links nach rechts in der Reihenfolge des Hinzufügens angezeigt. In der Liste wird jedes Feld, das Sie hinzufügen, mit einem Sternchen (*) versehen. 34 Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Auswählen und Umbenennen von Feldern • Sie können ein bereits mit einem Sternchen markiertes Feld aus dem Bericht entfernen, indem Sie darauf klicken. • Klicken Sie auf Weitere, um das Dialogfeld zur Feldauswahl zu öffnen. Unter "Verfügbare Felder" finden Sie alle Felder, die in der Datenquelle verfügbar sind. Unter "Anzuzeigende Felder" finden Sie die Felder, die dem Bericht bereits hinzugefügt wurden. Markieren Sie ein beliebiges Feld, und klicken Sie auf den entsprechenden Pfeil, um es dem Bericht hinzuzufügen bzw. aus diesem zu entfernen. Halten Sie die UMSCHALTTASTE beim Klicken gedrückt, um mehrere Felder auszuwählen. Sie können Felder auch von einer Liste in eine andere ziehen. Um den Namen zu ändern, den ein bestimmtes Feld in einem Bericht hat, markieren Sie das Feld im Bereich "Anzuzeigende Felder" und klicken auf "Umbenennen". Um Felder im Datenraster neu anzuordnen, markieren Sie ein Feld im Bereich "Anzuzeigende Felder" und klicken anschließend auf den Nach-oben- bzw. den Nach-unten-Pfeil, um die Reihenfolge zu ändern. Verwenden Sie die Schaltfläche "Entwurf", um die Felder im Bericht neu anzuordnen. 3. Klicken Sie auf OK. Crystal Report Explorer-Anwenderhandbuch 35 3 3 Arbeiten mit Berichtdaten Gruppieren von Datensätzen 1. So durchsuchen Sie die Daten in einem Feld Klicken Sie in der Symbolleiste auf Felder und anschließend auf Weitere. 2. Erweitern Sie das Business Element oder die Tabelle, um die verfügbaren Felder anzuzeigen, und klicken Sie dann auf das gewünschte Feld. 3. Klicken Sie auf Daten durchsuchen. Die Daten in diesem Feld werden im Dialogfenster "Feldbrowser" angezeigt. 1. So suchen Sie ein Feld Klicken Sie in der Symbolleiste auf Felder und anschließend auf Weitere. 2. Das Dialogfeld "Felder" zeigt die in einer Hierarchie verfügbaren Felder an. 3. Klicken Sie auf Feld suchen. 4. Geben Sie im Dialogfeld "Feld suchen" den Namen des gewünschten Feldes ein. 5. Klicken Sie auf OK. Das Feld wird innerhalb der Hierarchie angezeigt. Gruppieren von Datensätzen Gruppierte Daten sind Daten, die sortiert und in sinnvolle Gruppen zusammengefasst wurden. Bei einer Kundenliste könnte eine Gruppe beispielsweise aus allen Kunden bestehen, die im selben Postleitzahlbereich oder in derselben Region wohnen. In einem Umsatzbericht könnte eine Gruppe alle Aufträge umfassen, die vom selben Kunden stammen, oder alle Aufträge, die von einem bestimmten Vertreter eingebracht wurden. Die verfügbaren Felder werden im Dialogfeld "Weitere" in einer Hierarchie angezeigt. Falls Sie eine Business View als Datenquelle ausgewählt haben, wird im Fensterbereich "Verfügbare Felder" eine Liste der Business Elements angezeigt. Klicken Sie auf ein Business Element, um die darin enthaltene Liste von Business-Feldern zu erweitern, und wählen Sie unter diesen Feldern aus. 36 Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Gruppieren von Datensätzen Falls Sie eine Berichtsdatenquelle ausgewählt haben, wird im Bereich "Verfügbare Felder" eine Liste von Tabellen angezeigt. Klicken Sie auf eine Tabelle, um die darin enthaltene Feldliste zu erweitern, und wählen Sie unter diesen Feldern aus. Hinweis: Beim Sortieren und Gruppieren auf dem Datenbankserver kann die Sortierreihenfolge Unterschiede aufweisen, wenn Unicode- oder UTF-8Daten verwendet werden. Die jeweilige Reihenfolge hängt von den für die Datenquelle geltenden Regeln ab. In einigen Fällen werden Unicode-Daten nach ihrem Binärwert sortiert. Sie können aber auch entsprechend einer besonderen Ländereinstellung sortiert werden. Weitere Informationen zur Sortierweise bei Unicode-Datenfeldern finden Sie in der Dokumentation zu Ihrer Datenquelle. 1. So gruppieren Sie Datensätze Klicken Sie in der Symbolleiste auf Gruppen. 2. Folgende Optionen stehen Ihnen zur Verfügung: • Klicken Sie in der Liste auf das gewünschte Feld, um die gewünschte Gruppierung festzulegen. Wenn Sie für die Gruppierung mehrere Felder angeben, werden Datensätze entsprechend der Reihenfolge, in der Sie Felder auswählen, auf jeder Ebene gruppiert. In der Liste wird der Namen des jeweiligen Feldes, das bereits als Gruppe verwendet wird, mit einem Sternchen (*) versehen. • Um eine Gruppe aus dem Bericht zu entfernen, klicken Sie auf ein bereits mit einem Sternchen markiertes Feld. • Klicken Sie auf Erweitert. Crystal Report Explorer-Anwenderhandbuch 37 3 3 Arbeiten mit Berichtdaten Gruppieren von Datensätzen Unter "Verfügbare Felder" finden Sie alle Felder oder Business Elements, die in der Datenquelle verfügbar sind. Unter "Gruppenerstellung auf" finden Sie die Felder, die bereits im Bericht gruppiert wurden. Markieren Sie ein beliebiges Feld, und klicken Sie auf den entsprechenden Pfeil, um dessen Gruppe dem Bericht hinzuzufügen bzw. aus diesem zu entfernen. Halten Sie die UMSCHALTTASTE beim Klicken gedrückt, um mehrere Felder auszuwählen. Sie können Felder auch mittels Drag & Drop von einer Liste in eine andere verschieben. Um Gruppen im Bericht neu anzuordnen, markieren Sie im Bereich "Gruppenerstellung auf" das Feld und klicken anschließend auf den Nach-oben- bzw. den Nach-unten-Pfeil, um die Reihenfolge zu ändern. 3. Klicken Sie auf OK. 1. So durchsuchen Sie die Daten in einem Feld Klicken Sie in der Symbolleiste auf Felder und anschließend auf Weitere. 2. Erweitern Sie das Business Element oder die Tabelle, um die verfügbaren Felder anzuzeigen, und klicken Sie dann auf das gewünschte Feld. 3. Klicken Sie auf Daten durchsuchen. Die Daten in diesem Feld werden im Dialogfenster "Feldbrowser" angezeigt. 1. 38 So suchen Sie ein Feld Klicken Sie in der Symbolleiste auf Felder und anschließend auf Weitere. 2. Das Dialogfeld "Felder" zeigt die in einer Hierarchie verfügbaren Felder an. 3. Klicken Sie auf Feld suchen. 4. Geben Sie im Dialogfeld "Feld suchen" das Feld ein, das Sie suchen möchten. 5. Klicken Sie auf OK. Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Filtern von Datensätzen Filtern von Datensätzen Mit Hilfe von Filtern können Sie die Anzahl der Datensätze beschränken, die aus der Datenbank abgerufen werden. Durch Filter werden nicht nur unerwünschte oder unnötige Daten aus einem Bericht entfernt, sondern auch die Verarbeitung von Berichten beschleunigt. Ein Filter besteht aus zwei Hauptkomponenten: dem Filterfeld und der Filterbedingung. Das Filterfeld ist das Datenbankfeld, auf dessen Werte zugegriffen wird, um zu bestimmen, ob jeder verfügbare Datensatz zum Resultset gehört. Sie können beispielsweise einen monatlichen Produktvertriebsbericht filtern, um nur die Produkte anzuzeigen, deren Feld „Verkaufte Einheiten“ einen Wert größer als 5000 enthält. In diesem Fall ist "Verkaufte Einheiten" das Filterfeld. Die Filterbedingung stellt die Regel bereit, mit deren Hilfe BusinessObjects Enterprise bestimmt, ob ein bestimmter Datensatz zum Resultset gehört. Die Filterbedingung besteht aus dem Filtertyp (einem Vergleichs- oder Musteroperator) und dem Filterwert. Der Filtertyp legt den gewünschten Vergleich fest. Der Filterwert bestimmt den Wert, mit dem die tatsächlichen Datenbank-Feldwerte vergleicht werden. Das Resultset enthält nur die Datensätze, deren Wert im Filterfeld der Filterbedingung entspricht. Im vorherigen Beispiel lautet die Filterbedingung „Größer als 5000“, der Filtertyp „Größer als“ und der Filterwert „5000“. Je nach Datentyp des Filterfelds können gültige Filteroperatoren unterschiedlich sein. • Mit den standardmäßigen Vergleichsoperatoren können numerische Feldwerte (wie Währungs-, Datums-, Uhrzeit- und Datums-/UhrzeitWerte) mit einem numerischen Filterwert verglichen werden. Weitere Informationen finden Sie unter “Vergleichsoperatoren” in der Online-Hilfe. • Mit dem Vergleichsoperatoren Gleich und Ungleich zusammen mit den Musteroperatoren können Sie Zeichenfolgen-Feldwerte mit einem Zeichenfolgen-Filterwert vergleichen. Weitere Informationen finden Sie unter “Musteroperatoren” in der Online-Hilfe. • Verwenden Sie die Operatoren AND und OR zum Einrichten eines Filters, der auf zwei oder mehr Bedingungen basiert. Nähere Informationen hierzu finden Sie unter „Erstellen mehrerer Filterbedingungen“ auf Seite 42. Crystal Report Explorer-Anwenderhandbuch 39 3 3 Arbeiten mit Berichtdaten Filtern von Datensätzen Wenn Sie als Datenquelle beispielsweise einen länderspezifischen Vertriebsbericht nutzen, können Sie die Daten so filtern, dass ausschließlich Vertriebsdaten der Region "West" abgerufen werden. Wählen Sie dazu als Filterfeld „Bereich“, als Filtertyp den Operator Gleich und als Filtertyp „West“. 1. So fügen Sie einen Filter hinzu Klicken Sie in der Symbolleiste auf Filter. 2. Klicken Sie auf die erste Liste, um das Filterfeld anzugeben. 3. Klicken Sie auf die zweite Liste, um den Filtertyp anzugeben. 4. Geben Sie den gewünschten Filterwert in das Textfeld ein, oder klicken Sie auf die Schaltfläche neben dem Feld, um die gewünschten Felddaten zu durchsuchen und auszuwählen. Wenn Sie nach einem Datumsfeld filtern, klicken Sie auf die Schaltfläche neben dem Feld, um den Popupkalender zu öffnen. Wenn der Filterwert aus Text besteht, aktivieren Sie das Kontrollkästchen "Groß-/Kleinschreibung beachten", damit der Filter zwischen Groß-/ Kleinschreibung unterscheidet. 5. Klicken Sie auf Hinzufügen, um den neuen Filter zu übernehmen. Auf der Registerkarte "Quelle" wird dem Bereich "Filter" eine Beschreibung des Filters hinzugefügt. Hinweis: Die Reihenfolge der Listen zum Erstellen von Filtern weicht in der japanischen Version der Crystal Reports Explorer ab. Weitere Informationen zu mehreren Filtern finden Sie unter „Erstellen mehrerer Filterbedingungen“ auf Seite 42. 40 1. So entfernen Sie einen Filter Klicken Sie in der Symbolleiste auf Filter. 2. Klicken Sie auf Erweitert. Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Filtern von Datensätzen Das Dialogfeld „Filter“ wird angezeigt. 3. Wählen Sie den Filter aus, den Sie entfernen möchten. 4. Klicken Sie auf Entfernen und anschließend auf OK. Tipp: Sie können auch im Dialogfeld "Filter" neue Filter hinzufügen. Die Symbolleistenoptionen bieten jedoch eine identische Funktionalität. 1. So ändern Sie einen Filter Klicken Sie in der Symbolleiste auf Filter. 2. Klicken Sie auf Erweitert. 3. Wählen Sie den Filter aus, den Sie ändern möchten. 4. Ändern Sie die Filterbedingungen wie erforderlich ab. 5. Klicken Sie auf OK. Das Dialogfeld „Filter“ wird angezeigt. Crystal Report Explorer-Anwenderhandbuch 41 3 3 Arbeiten mit Berichtdaten Bilden von Gruppenergebnissen Erstellen mehrerer Filterbedingungen Sie können Filterbedingungen mit Hilfe der Operatoren AND und OR sowie Klammern miteinander kombinieren. 1. So erstellen Sie mehrere Filter Klicken Sie in der Symbolleiste auf Filter. 2. Klicken Sie auf Erweitert. 3. Klicken Sie auf die erste Liste, um das Filterfeld anzugeben. 4. Klicken Sie auf die zweite Liste, um den Filtertyp anzugeben. 5. Geben Sie den gewünschten Filterwert in das Textfeld ein, oder klicken Sie auf die Schaltfläche neben dem Feld, um die gewünschten Felddaten zu durchsuchen und auszuwählen. Das Dialogfeld „Filter“ wird angezeigt. Wenn Sie nach einem Datumsfeld filtern, klicken Sie auf die Schaltfläche neben dem Feld, um den Popupkalender zu öffnen. Wenn der Filterwert aus Text besteht, aktivieren Sie das Kontrollkästchen "Groß-/Kleinschreibung beachten", damit der Filter zwischen Groß-/ Kleinschreibung unterscheidet. 6. Klicken Sie auf Hinzufügen, um den Filter zu übernehmen. 7. Doppelklicken Sie auf die Operatorschaltflächen (AND, OR und Klammern), um den zweiten Teil der Filterbedingung zu erstellen. 8. Klicken Sie auf Hinzufügen, um den Filter zu übernehmen. 9. Wiederholen Sie die vorangehenden Schritte so lange, bis Sie alle Filter erstellt haben. 10. Klicken Sie auf OK, um das Dialogfeld "Filter" zu schließen. Weitere Informationen zu Filterprioritäten finden Sie unter „Operatoren“ in der Onlinehilfe. Bilden von Gruppenergebnissen Ein wichtiger Grund, Datensätze in Gruppen aufzuteilen, besteht darin, dass Sie Berechnungen gruppenweise anstatt für alle Datensätze des Berichts vornehmen können. 42 Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Bilden von Gruppenergebnissen Wenn Crystal Reports Daten zusammenfasst, werden diese zunächst sortiert und in Gruppen unterteilt; erst danach werden die Werte gruppenweise zusammengefasst. Crystal Reports bietet eine Reihe von Optionen zum Bilden von Gruppenergebnissen. Abhängig vom Datentyp des Feldes, das zusammengefasst werden soll, können Sie: • • • Summieren der Werte in jeder Gruppe. Zählen aller Werte oder nur der voneinander verschiedenen Werte. Ermitteln des Höchst-, Mindest- oder Durchschnittswertes oder des N.höchsten Wertes. Hier ein Beispiel: • Kundenlistenberichte: Zeigen die Anzahl der Kunden in den einzelnen Bundesländern auf. Im Gruppenergebnis werden die einzelnen Kunden in den einzelnen Bundeslandgruppen gezählt. • Auftragsberichte: Zeigen den durchschnittlichen Auftragswert pro Monat auf. Im Gruppenergebnis wird die Größe des Durchschnittsauftrags jeder Monatsgruppe berechnet. • Umsatzberichte: Zeigen den Gesamtumsatz pro Vertreter auf. Im Gruppenergebnis wird die Summe oder das Teilergebnis des Auftragssummes der einzelnen Vertretergruppen ermittelt. 1. So bilden Sie Gruppenergebnisse für gruppierte Daten Klicken Sie in der Symbolleiste auf Gruppenergebnisse. 2. Klicken Sie auf die Liste Gruppenergebnis von, und wählen Sie das Feld, dessen Werte Sie summieren möchten. 3. Klicken Sie auf die nächste Liste, um treffen Sie in den verfügbaren Gruppenergebnisfunktionen eine Auswahl. 4. Klicken Sie auf Hinzufügen. Hinweis: Wenn Sie ein Gruppenergebnis hinzufügen, wird das Gruppenergebnisfeld auf sein Standardfeld ausgerichtet. 1. So entfernen Sie ein Gruppenergebnisfeld Klicken Sie in der Symbolleiste auf Gruppenergebnisse. 2. Klicken Sie auf Erweitert. Crystal Report Explorer-Anwenderhandbuch 43 3 3 Arbeiten mit Berichtdaten Bilden von Gruppenergebnissen Das Dialogfeld "Gruppenergebnisse" wird angezeigt. 3. Wählen Sie unter "Gruppenergebnisfelder" das Gruppenergebnisfeld, das Sie entfernen möchten. 4. Klicken Sie auf Entfernen und anschließend auf OK. Tipp: Sie können auch im Dialogfeld "Gruppenergebnisse" neue Gruppenergebnisse hinzufügen. Die Symbolleistenoptionen bieten jedoch eine identische Funktionalität. 1. So ändern Sie ein Gruppenergebnisfeld Klicken Sie in der Symbolleiste auf Gruppenergebnisse. 2. Klicken Sie auf Erweitert. Das Dialogfeld "Gruppenergebnisse" wird angezeigt. 3. Wählen Sie unter "Gruppenergebnisfelder" das Gruppenergebnisfeld, das Sie ändern möchten. 4. Ändern Sie die Gruppenergebniskategorien wie erforderlich ab. 5. Klicken Sie auf Ändern. Das geänderte Gruppenergebnisfeld wird im Bereich "Gruppenergebnisfelder" angezeigt. 6. 44 Klicken Sie auf OK. Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Sortieren von Datensätzen Sortieren von Datensätzen Unter Sortieren versteht man den Prozess, Daten in einer bestimmten Reihenfolge anzuordnen, um Daten leichter finden und auswerten zu können. Wenn Sie ein Datenbankfeld in Ihren Bericht einfügen, werden die Daten dieses Feldes zu Beginn in der Reihenfolge angezeigt, in der sie ursprünglich in die Datenbank eingegeben wurden. In einem Bericht dieser Art bestimmte Daten zu finden, ist recht schwierig. Daten lassen sich wesentlich leichter durchsehen und finden, wenn sie nach logischen Gesichtspunkten sortiert sind. Beispielsweise könnten Sie eine Kundenliste in alphabetischer Reihenfolge nach Namen oder Land sortieren. Wenn Sie in Crystal Reports sortieren, fordert Sie das Programm zu zwei Angaben auf: • • Sortierfeld. Sortierreihenfolge. Hinweis: Beim Sortieren und Gruppieren auf dem Datenbankserver kann die Sortierreihenfolge Unterschiede aufweisen, wenn Unicode- oder UTF-8Daten verwendet werden. Die jeweilige Reihenfolge hängt von den für die Datenquelle geltenden Regeln ab. In einigen Fällen werden Unicode-Daten nach ihrem Binärwert sortiert. Sie können aber auch entsprechend einer besonderen Ländereinstellung sortiert werden. Weitere Informationen zur Sortierweise bei Unicode-Datenfeldern finden Sie in der Dokumentation zu Ihrer Datenquelle. Sortierfeld Ein Sortierfeld ist ein Feld, das die Reihenfolge festlegt, in der die Daten im Bericht erscheinen. Sie können fast jedes Feld, einschließlich Formelfelder, als Sortierfeld verwenden. Der Datentyp des Feldes bestimmt das Verfahren, nach dem die Daten dieses Feldes sortiert werden. Crystal Report Explorer-Anwenderhandbuch 45 3 3 Arbeiten mit Berichtdaten Sortieren von Datensätzen Hinweis: Sie können auch auf Memo- oder Blob-Felder sortieren. Feldtyp Sortierreihenfolge Einzelne-Zeichen Zeichenfolge Leerzeichen Satzzeichen Zahlen Großbuchstaben Kleinbuchstaben Zeichenfolgenfelder (mehrere Zeichen) zwei Buchstaben drei Buchstaben vier Buchstaben usw. Hier ein Beispiel: • "BOB" kommt vor "bob" • • • „123“ steht vor „124“ „ “ (Leerzeichen) steht vor „a“ „aa“ steht vor „aaa“ Währungsfelder numerische Reihenfolge Zahlenfelder numerische Reihenfolge Datumsfelder chronologische Reihenfolge DatumZeit-Felder chronologische Reihenfolge gleiches Datum anschließend nach der Uhrzeit Zeitfelder chronologische Reihenfolge Felder für boolesche Werte FALSE-Werte (0) TRUE-Werte (1) Leere Werte leere Werte nicht-leere Werte Sortierreihenfolge Unter Reihenfolge versteht man die Anordnung, in der Werte nach dem Sortieren angezeigt werden. • 46 Aufsteigend Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Sortieren von Datensätzen Bei aufsteigender Sortierrichtung wird vom kleinsten zum größten Wert (1 bis 9, A bis Z, FALSE bis TRUE) sortiert. Dabei werden die Datensätze vom Programm nach den Werten des von Ihnen gewählten Sortierfelds in aufsteigender Reihenfolge sortiert. • Absteigend Bei absteigender Sortierrichtung wird vom größten zum kleinsten Wert (9 bis 1, Z bis A, TRUE bis FALSE) sortiert. Dabei werden die Datensätze vom Programm nach den Werten des von Ihnen gewählten Sortierfelder in absteigender Reihenfolge sortiert. Sortieren von Datensätzen im Detailbereich Wenn Sie Datenzeilen sortieren, die im Detailbereich eines Berichts angezeigt werden, werden diese gemäß den Werten in einem einzelnen oder mehreren Feldern in auf- oder absteigender Reihenfolge sortiert. Beim Sortieren nach einem einzelnen Feld werden alle Datensätze, die im Bericht verwendet werden, nach den Werten eines einzigen Feldes sortiert. Das Sortieren eines Inventarberichts nach der Lagernummer oder das Sortieren einer Kundenliste nach der Kundennummer sind Beispiele für Einzelfeldsortierungen. Beim Sortieren nach mehreren Feldern sortiert das Programm die Datensätze zuerst nach den Werten des ersten ausgewählten Feldes in aufsteigender oder absteigender Reihenfolge, wie angegeben. Falls mehrere Datensätze im ersten Sortierfeld den gleichen Feldwert haben, werden diese Datensätze (und nur diese) dann nach dem Wert im zweiten Sortierfeld sortiert. Wenn Sie beispielsweise in erster Linie nach dem Feld {Kunde.LAND} und anschließend in zweiter Linie nach dem Feld {Kunde.REGION} in aufsteigender Reihenfolge sortieren lassen, werden im Bericht die Länder in alphabetischer Reihenfolge aufgeführt und für jedes Land die Regionen ebenfalls in alphabetischer Reihenfolge angeordnet. Alle anderen Felder, beispielsweise die Postleitzahlbereiche innerhalb einer Region, bleiben jedoch unsortiert. Hinweis: Wenn die Datensätze auch gruppiert sind, werden die Datensätze im Detailbereich der einzelnen Gruppen gemäß dem Sortierfeld und der Sortierrichtung sortiert. 1. So sortieren Sie Datensätze im Detailbereich Klicken Sie in der Symbolleiste auf Berichtsortierung. 2. Klicken Sie auf die erste Liste, und wählen Sie das erste Sortierfeld. Crystal Report Explorer-Anwenderhandbuch 47 3 3 Arbeiten mit Berichtdaten Sortieren von Datensätzen 3. Klicken Sie auf die zweite Liste, um die Sortierrichtung anzugeben. 4. Klicken Sie auf Hinzufügen. 5. Wiederholen Sie diesen Vorgang, um weitere Datensätze nach einem anderen Feld zu sortieren. 1. So zeigen Sie sortierte Datensätze an und ändern sie Klicken Sie in der Symbolleiste auf Berichtsortierung. 2. Klicken Sie auf Erweitert. Das Dialogfeld „Sortierung“ wird angezeigt. Die Liste aller sortierten Datensätze (einschließlich der Datensätze für Gruppen und Gruppenergebnisse) wird unterhalb der Registerkarte Details angezeigt. 3. Wählen Sie unter der Registerkarte Details den sortierten Datensatz, den Sie ändern möchten. 4. Stellen Sie sicher, dass in der ersten Liste das korrekte Sortierfeld angezeigt wird. 5. Klicken Sie auf die zweite Liste, um die Sortierrichtung anzugeben. 6. Klicken Sie auf Ändern und anschließend auf OK. Sortieren von Datensatzgruppen Durch Sortieren nach einem gruppierten Feld werden vollständige Datensatzgruppen in auf- oder absteigender Reihenfolge sortiert. Bei der Sortierung des gruppierten Felds "Land" in absteigender Reihenfolge wird die Gruppe "Zypern" oben im Bericht und die Gruppe "Argentinien" am Ende platziert. Wenn Sie ein Feld gruppieren, wird die Gruppe automatisch in absteigender Reihenfolge sortiert. Sie können die Sortierreihenfolge mit Hilfe des Dialogfeldes "Erweitert" unter "Berichtsortierungen" ändern. Hinweis: Informationen zum Sortieren von Datensätzen innerhalb einer Gruppe finden Sie unter „Sortieren von Datensätzen im Detailbereich“ auf Seite 47. 48 1. So sortieren Sie Datensatzgruppen Klicken Sie in der Symbolleiste auf Berichtsortierung. 2. Klicken Sie auf Erweitert. Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Sortieren von Datensätzen Das Dialogfeld „Sortierung“ wird angezeigt. 3. Wählen Sie auf der Registerkarte Gruppen oder Gruppenergebnisse die Option Gruppen. Eine Liste der verfügbaren Gruppen wird angezeigt, zusammen mit der Sortierrichtung, die den Gruppen zugewiesen wurde. 4. Klicken Sie auf die erste Liste, um die gruppierten Felder auszuwählen, deren Gruppen Sie sortieren möchten. 5. Klicken Sie auf die zweite Liste, um die Sortierrichtung anzugeben. Sie können entweder Aufsteigend oder Absteigend auswählen. Wenn Sie in der ersten Liste ein Datums- oder Uhrzeitfeld auswählen, können Sie die Granularität der Sortierung festlegen, z.B. „täglich“ oder „wöchentlich“. 6. Klicken Sie auf Ändern und anschließend auf OK. Crystal Report Explorer-Anwenderhandbuch 49 3 3 Arbeiten mit Berichtdaten Sortieren von Datensätzen Sortieren und Auswählen von Gruppen basierend auf Gruppenergebniswerten Sie können Gruppenergebnisse in aufsteigender oder absteigender Reihenfolge sortieren. Wenn Sie beispielsweise in einem Auftragsbericht die Auftragssumme nach Bundesland gruppieren und entsprechende Teilergebnisse bilden, können Sie die Gruppen wie folgt anordnen: • • Vom niedrigsten bis zum höchsten Auftragsbetrag (aufsteigend). Vom höchsten bis zum niedrigsten Auftragsbetrag (absteigend). Darüber hinaus können Sie die oberen oder unteren Gruppen („Erste/Letzte N“ basierend auf einem Gruppenergebniswert) auswählen, um den Bericht weiter zu strukturieren. Hinweis: Vergewissern Sie sich, bevor Sie diese Schritte ausführen, dass Sie dem Bericht die entsprechenden Gruppen und Gruppenergebnisse hinzugefügt haben. 1. So sortieren Sie gruppierte Daten basierend auf Gruppenergebnissen Klicken Sie in der Symbolleiste auf Berichtsortierung. 2. Klicken Sie auf Erweitert. Das Dialogfeld „Sortierung“ wird angezeigt. 3. Wählen Sie auf der Registerkarte Gruppen oder Gruppenergebnisse die Option Ergebnisse. 4. Wählen Sie in der ersten Liste das Gruppenergebnis aus, nach dem Sie Ihre Datensatzgruppen sortieren möchten. 5. Wählen Sie in der zweiten Liste die Sortierreihenfolge aus. Sie haben folgende Optionen: • • • • • • • • 50 Aufsteigend Absteigend Erste N Oberste 5 Oberste 10 Letzte N Unterste 5 Unterste 10 Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Anzeigen des Berichts auf der Registerkarte "Daten" 6. Für eine auf einem N-Wert basierende Sortierreihenfolge geben Sie den Wert in das Feld N-Wert ein. Hinweis: Wenn Sie nach einem spezifischen Wert, beispielsweise nach „Oberste 5“, oder nach einem N-Wert sortieren, können Sie die Datensätze aller verbleibenden Gruppen in einer neuen Gruppe namens „Andere“ kombinieren, indem sie die Option Gruppe 'Andere' einbeziehen wählen. 7. Klicken Sie auf Hinzufügen und anschließend auf OK. Entfernen der Sortierung 1. Klicken Sie in der Symbolleiste auf Berichtsortierung. 2. Klicken Sie auf Erweitert. Das Dialogfeld „Sortierung“ wird angezeigt. 3. Wählen Sie auf der Registerkarte Details die Sortierung, die Sie entfernen möchten, und klicken Sie auf Entfernen. 4. Klicken Sie auf OK. Anzeigen des Berichts auf der Registerkarte "Daten" Auf der Registerkarte "Daten" werden die Berichtdaten in einem Raster angezeigt. Die im Raster enthaltenen Daten werden bei jeder Optimierung des Berichts anhand der Datenbank aktualisiert. Es wird empfohlen, den Bericht auf der Registerkarte "Quelle" zu erstellen und für die Vorschau zur Registerkarte "Daten" zu wechseln, um die Auslastung der Datenbankserver gering zu halten und die Berichterstellung zu beschleunigen. Auf der Registerkarte "Daten" werden Daten sowohl in der Gruppenansicht als auch in der flachen Ansicht angezeigt. In der Gruppenansicht können Sie auf eine Gruppe in der Gruppenstruktur klicken, um nur die Datensätze in dieser spezifischen Gruppe anzuzeigen. In der flachen Ansicht werden alle im Datenraster enthaltenen Datensätze angezeigt. Klicken Sie auf eine Gruppe in der Gruppenstruktur, um zu dem Berichtbereich zu springen, in dem die Datensätze für diese Gruppe enthalten sind. Crystal Report Explorer-Anwenderhandbuch 51 3 3 Arbeiten mit Berichtdaten Anzeigen des Berichts auf der Registerkarte "Daten" Zum Ein- oder Ausblenden der Gruppenstruktur können Sie auf "Gruppenstruktur ein/ausblenden" klicken. Hinweis: Die Registerkarte "Daten" und die Registerkarte "Quelle" sind nur verfügbar, wenn Sie BusinessObjects Enterprise Premium installiert haben. Falls Sie diesbezüglich weitere Informationen benötigen, wenden Sie sich an Ihren BusinessObjects Enterprise-Administrator. 1. So durchsuchen Sie gruppierte Daten Wählen Sie eine Datenquelle für Ihren Bericht aus. 2. Klicken Sie auf der Symbolleiste auf Felder, und legen Sie die gewünschten Felder fest. 3. Klicken Sie auf der Symbolleiste auf Gruppen, und legen Sie die gewünschten Gruppen fest. 4. Klicken Sie auf die Registerkarte Daten. Die Gruppenstruktur wird links vom Datenraster angezeigt. Im Datenraster werden die gruppierten Daten in der flachen Ansicht angezeigt. 5. Klicken Sie auf eine Gruppe, um zu dem Berichtbereich zu springen, in dem die Datensätze für diese Gruppe enthalten sind. Tipp: Klicken Sie auf Zur flachen Ansicht wechseln/Zur Gruppenansicht wechseln, um zwischen flacher Ansicht und Gruppenansicht umzuschalten. Die einzelnen Zeilen im Datenraster sind nummeriert. Im Rasterviewer wird angezeigt, wie viele Zeilen im Gesamtbericht enthalten sind und welche derzeit angezeigt werden. • So springen Sie zu einer bestimmten Berichtzeile Geben Sie im Texteingabefeld "Zeile suchen" die gewünschte Zeilennummer ein, und klicken Sie dann auf Zeile suchen. Im Datenraster wird der Bericht ab der angegebenen Zeile angezeigt. 52 Crystal Report Explorer-Anwenderhandbuch Arbeiten mit Berichtdaten Veröffentlichen und Exportieren des Berichts Veröffentlichen und Exportieren des Berichts Nachdem Sie einen Bericht erstellt haben, können Sie ihn in einem Ihrer BusinessObjects Enterprise-Ordner veröffentlichen oder eine Kopie in einem von mehreren Dateiformaten auf das lokale Laufwerk exportieren. 1. So veröffentlichen Sie einen Bericht Klicken Sie in der Symbolleiste auf Bericht speichern. 2. Geben Sie im Dialogfeld „Speichern“ in dem Feld Speichern unter den Namen für den Bericht ein. 3. Geben Sie die zusätzlichen Informationen zu Ihrem Bericht im Feld Beschreibung ein. Diese Beschreibung wird anderen BusinessObjects EnterpriseAnwendern angezeigt, die auf den Bericht zugreifen können. 4. Durchlaufen Sie die verfügbaren Ordner, um den neuen Bericht am gewünschten Speicherort abzulegen. 5. Klicken Sie auf OK. 1. So exportieren Sie einen Bericht auf ein lokales Laufwerk Klicken Sie auf die Registerkarte Bericht (oder klicken Sie auf die Schaltfläche Anzeigen), um den formatierten Crystal Reports-Bericht in einem Bericht-Viewer anzuzeigen. 2. Klicken Sie auf der Viewer-Symbolleiste auf die Schaltfläche Exportieren. 3. Treffen Sie nach Aufforderung eine Auswahl in den verfügbaren Dateiformaten, und geben Sie weitere Informationen ein, die der Berichtviewer anfordert (Seitenbereich, Dateiname, Festplattenpfad usw.). Crystal Report Explorer-Anwenderhandbuch 53 3 3 Arbeiten mit Berichtdaten Veröffentlichen und Exportieren des Berichts 54 Crystal Report Explorer-Anwenderhandbuch Kapitel Hinzufügen von Berechnungen mithilfe von Formeln 4 Hinzufügen von Berechnungen mithilfe von Formeln Formeln im Überblick Formeln im Überblick In vielen Fällen sind die für einen Bericht benötigten Daten bereits in den Feldern einer Datenbanktabelle enthalten. So würden Sie beispielsweise zur Vorbereitung einer Bestellungsliste die für diesen Zweck geeigneten Felder in den Bericht aufnehmen. Gelegentlich müssen Sie aber auch Daten in den Bericht aufnehmen, die in keinem der Datenfelder enthalten sind. In solchen Fällen müssen Sie eine Formel erstellen. Wenn Sie beispielsweise die Anzahl der Tage berechnen möchten, die zur Verarbeitung der einzelnen Bestellungen erforderlich sind, benötigen Sie eine Formel, um die Anzahl der Tage zwischen dem Bestelldatum und dem Versanddatum zu ermitteln. Mit Hilfe von Crystal Reports Explorer können Sie eine solche Formel problemlos erstellen. Hinweis: • Mit Crystal Reports Explorer können Sie Berichtsformeln nur in der Crystal-Syntax erstellen oder ändern. Berichtsformeln sind Formeln, die unabhängig in einem Bericht erstellt werden und mit denen einer der sieben einfachen unterstützten Datentypen [Zahl (Number), Währung (Currency), Zeichenfolge (String), Boolesch (Boolean), Datum (Date), Uhrzeit (Time) und DatumUhrzeit (DateTime)] berechnet und zurückgegeben werden. Ein Beispiel für eine Berichtsformel ist eine Formel, mit der die Anzahl der Tage zwischen dem Bestelldatum und dem Versanddatum berechnet wird. • Das Erstellen bedingter Formatierungen, der Datensatzauswahl und Suchformeln, die Sie in Crystal Reports erstellen können, IST NICHT MÖGLICH. Typische Anwendungsbeispiele für Formeln Es gibt viele Verwendungsmöglichkeiten für Formeln. Wenn Sie Daten auf eine ganz bestimmte Weise bearbeiten müssen, können Sie dazu eine Formel benutzen. Erstellen berechneter Felder zur Aufnahme in Ihren Bericht So berechnen Sie den Preis abzüglich eines Rabatts von 15 %: Beispiel in der Crystal-Syntax: {Auftragsdetail.Einzelpreis}*.85 Formatieren von Text in einem Bericht So ändern Sie alle Inhalte des Feldes Kundenname zu Großbuchstaben: 56 Crystal Report Explorer-Anwenderhandbuch Hinzufügen von Berechnungen mithilfe von Formeln Komponenten und Syntax von Formeln Beispiel in der Crystal-Syntax: UpperCase ({Kunde.Kundenname}) Extrahieren von Teilen einer Textzeichenfolge So extrahieren Sie den Anfangsbuchstaben des Kundennamens: Beispiel in der Crystal-Syntax: {Kunde.Kundenname} [1] Extrahieren von Teilen eines Datums So ermitteln Sie, in welchem Monat eine Bestellung aufgegeben wurde: Beispiel in der Crystal-Syntax: Month ({Aufträge.Auftragsdatum}) Komponenten und Syntax von Formeln Formeln bestehen aus zwei wesentlichen Teilen: den Komponenten und der Syntax. Die Komponenten sind die Bestandteile, die Sie zum Erstellen einer Formel hinzufügen, während die Syntax die Regel darstellt, die beim Zusammensetzen der Komponenten zu beachten ist. Formelkomponenten Die Erstellung einer Formel mit Hilfe der Crystal Reports Explorer funktioniert ähnlich wie die Erstellung einer Formel in einer Tabellenkalkulation. Sie können für Ihre Formel folgende Komponenten verwenden: Felder Beispiel: {Kunde.NACHNAME}, {Kunde.VORJAHRESUMSATZ} Zahlen Beispiel: 1, 2, 3.1416 Text Beispiel: "Menge", ":", "Ihr Text" Operatoren Beispiel: + (Addieren), * (Multiplizieren), / (Dividieren), -x (Vorzeichenwechsel) Operatoren sind Aktionen, die Sie in Ihren Formeln verwenden können. Crystal Report Explorer-Anwenderhandbuch 57 4 4 Hinzufügen von Berechnungen mithilfe von Formeln Komponenten und Syntax von Formeln Funktionen Beispiel: Round (x), Trim (x) Mit Funktionen werden Rechenvorgänge wie beispielsweise Mittelwertbildung, Summenbildung und Zählung durchgeführt. Alle verfügbaren Funktionen sind zusammen mit ihren Argumenten nach Verwendung geordnet aufgeführt. Strukturen kontrollieren Beispiel: „If“ und „Select“, „For“-Schleifen Werte von Gruppenfeldern Beispiel: Average (Feld, BedFeld), Sum (Feld, BedFeld, "Bedingung") In Gruppenfeldwerten wird eine Gruppe zusammengefasst. Sie können Gruppenfeldwerte beispielsweise dazu verwenden, den prozentualen Anteil jeder Gruppe am Gesamtergebnis zu ermitteln. Weitere Formeln Beispiel: {@BruttoGewinn}, {@SOLL} Formelsyntax Die Syntax ist die Regel, die Sie beim Erstellen einer korrekten Formel beachten müssen. Hier einige Grundregeln: • Textzeichenfolgen müssen in Anführungszeichen eingeschlossen werden. • Argumente müssen in Klammern eingeschlossen werden (falls zutreffend). • Formeln, auf die verwiesen wird, sind durch ein vorangestelltes @ zu kennzeichnen. Crystal-Syntax Crystal Reports bietet Unterstützung für Formeln, die sowohl in der Crystalals auch in der Basic-Syntax erstellt wurden. Wenn Sie unter Verwendung von Crystal Reports Explorer Berechnungen hinzufügen oder ändern, müssen Sie jedoch Crystal-Syntax verwenden. Weitere Informationen finden Sie unter „Crystal-Syntax im Überblick“ auf Seite 102. 58 Crystal Report Explorer-Anwenderhandbuch Hinzufügen von Berechnungen mithilfe von Formeln Erstellen und Ändern von Formeln Erstellen und Ändern von Formeln Erstellen und Einfügen von Formeln in einem Bericht 1. Klicken Sie in der Symbolleiste auf Formeln. Das Dialogfeld "Formeln" wird angezeigt. 2. Klicken Sie auf Neu. 3. Geben Sie im Feld Formelname den Formelnamen ein. 4. Definieren Sie im Feld Formeltext die Berechnung in der Crystal-Syntax. • Doppelklicken Sie in der Liste "Felder" auf ein beliebiges Feld, um es der Formel hinzuzufügen. • Verwenden Sie für Berechnungen zwischen Feldern die arithmetischen Standardoperatoren. Weitere Informationen finden Sie unter “Arithmetische Operatoren” in der Online-Hife. • Weitere Informationen über zusätzliche Funktionen und Operatoren, mit denen Sie andere erweiterte Formeln erstellen können, finden Sie unter Funktionsreferenz und Operatorenreferenz in der Onlinehilfe. Crystal Report Explorer-Anwenderhandbuch 59 4 4 Hinzufügen von Berechnungen mithilfe von Formeln Erstellen und Ändern von Formeln 5. Klicken Sie auf Überprüfen. Enthält die Formel einen Fehler, zeigt BusinessObjects Enterprise die vom Formelcompiler zurückgegebene Fehlermeldung an. Sie müssen dem Problem abhelfen, um die Formel dem Bericht hinzuzufügen. Weitere Informationen über jede mögliche Fehlermeldungen finden Sie in „Fehlermeldungen und Formel-Compiler-Warnungen“ auf Seite 62. 6. Klicken Sie auf OK, um die Formel der Liste Formeln hinzuzufügen. Die neue Berechnung wird dem Feldbereich auf der Registerkarte "Quelle" und der Liste der Felder im Dialogfeld "Felder" hinzugefügt. Bearbeiten von Formeln 1. Klicken Sie in der Symbolleiste auf Formeln. Das Dialogfeld "Formeln" wird angezeigt. 60 2. Klicken Sie in der Liste Formel auf die Formel, die Sie bearbeiten möchten. 3. Geben Sie im Feld Formelname den geänderten Formelnamen ein. 4. Ändern Sie im Feld Formeltext die Berechnung den Anforderungen entsprechend. 5. Klicken Sie auf Überprüfen. Crystal Report Explorer-Anwenderhandbuch Hinzufügen von Berechnungen mithilfe von Formeln Löschen von Formeln Enthält die Formel einen Fehler, zeigt BusinessObjects Enterprise die vom Formelcompiler zurückgegebene Fehlermeldung an. Sie müssen dem Problem abhelfen, um die Formel dem Bericht hinzuzufügen. Weitere Informationen über jede mögliche Fehlermeldungen finden Sie in „Fehlermeldungen und Formel-Compiler-Warnungen“ auf Seite 62. 6. Klicken Sie auf OK. Die neue Berechnung wird dem Feldbereich auf der Registerkarte "Quelle" und der Liste der Felder im Dialogfeld "Felder" hinzugefügt. Löschen von Formeln Beim Erstellen einer Formel führt BusinessObjects Enterprise Folgendes durch: • Er speichert die Spezifikation zur Erstellung der Formel unter dem Namen, den Sie der Formel zugewiesen haben. • Eine Arbeitskopie dieser Formel wird auf der Registerkarte "Quelle" im Bereich "Felder" abgelegt. Sie können eine Arbeitskopie einer Formel aus einem Bericht entfernen, ohne die Formelspezifikation vollständig löschen zu müssen. Beim Löschen der Formelspezifikation werden alle Instanzen der Formel vollständig gelöscht. Entfernen der Arbeitsformel aus Ihrem Bericht 1. Klicken Sie in der Symbolleiste auf Felder; klicken Sie anschließend auf Weitere, um das Dialogfeld "Felder" zu öffnen. 2. Klicken Sie in der Liste "Anzuzeigende Felder" auf die Formel, die Sie aus dem Bericht entfernen möchten. 3. Verwenden Sie die Pfeiltasten, um die Formel in die Liste "Verfügbare Felder" zu verschieben. Die Formel wird aus dem Bereich "Felder" der Registerkarte "Quelle" entfernt. Hinweis: Auch wenn Sie alle Arbeitskopien einer Formel aus dem Bericht gelöscht haben, ist die Formelspezifikation noch unverändert vorhanden. Löschen der Formelspezifikation 1. Klicken Sie in der Symbolleiste auf Formeln. 2. Klicken Sie unter "Formel" auf die Formel, die Sie löschen möchten. Crystal Report Explorer-Anwenderhandbuch 61 4 4 Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen 3. Klicken Sie auf Entfernen. 4. Klicken Sie auf OK. Alle Arbeitskopien der Formel werden gelöscht. Die Formelspezifikation wird aus der Liste der verfügbaren Felder entfernt. Fehlermeldungen und Formel-CompilerWarnungen Wenn Sie eine Berechnung hinzufügen, deren Formel einen Fehler enthält, zeigt BusinessObjects Enterprise die vom Formel-Compiler zurückgegebene Fehlermeldung an. Sie müssen dem Problem abhelfen, um die Formel dem Bericht hinzuzufügen. Dieser Abschnitt enthält weitere Einzelheiten zu den möglichen Fehlermeldungen. Eine schließende Klammer ) fehlt. Eckige Klammern können nur paarweise verwendet werden; jeder öffnenden Klammer muss eine schließende Klammer zugeordnet sein. Sie haben einer öffnenden runden Klammer keine schließende Klammer zugeordnet. Fügen Sie die fehlende Klammer ein, und überprüfen Sie die Formel erneut. Eine ] fehlt. Eckige Klammern können nur paarweise verwendet werden; jeder öffnenden Klammer muss eine schließende Klammer zugeordnet sein. Sie haben einer öffnenden eckigen Klammer keine schließende Klammer zugeordnet. Fügen Sie die fehlende Klammer ein, und überprüfen Sie die Formel erneut. Eine boolesche Bereichsvariable ist unzulässig. Sie haben eine boolesche Bereichsvariable eingegeben. Bereichsvariablen sind in allen Datentypen außer dem booleschen Datentyp zulässig. Sie können entweder den Datentyp ändern oder eine boolesche Elementvariable eingeben, welche die boolesche Bereichsvariable ersetzt. Eine Tageszahl muss zwischen 1 und der Anzahl der Tage des Monats liegen. Sie haben eine Tageszahl eingegeben, die nicht mit dem Monat übereinstimmt. Die Formelprüffunktion zeigt diese Warnung an, wenn Sie z.B. für Januar die Tageszahl Null (0) bzw. 32 oder größer eingeben. Ändern Sie die Tageszahl so, dass Sie dem Monat entspricht, und überprüfen Sie die Formel erneut. 62 Crystal Report Explorer-Anwenderhandbuch Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Hier ist ein Feld erforderlich. Sie haben in Ihre Formel ein Element eingegeben, das kein Feld ist, obwohl an dieser Position ein Feld erwartet wird. Beheben Sie das Problem, und überprüfen Sie die Formel erneut. Eine Formel darf weder direkt noch indirekt auf sich selbst verweisen. Sie können keine Formel eingeben, die auf sich selbst verweist. Wenn Sie z. B. die Formel @Profit erstellen, können Sie @Profit nicht als Argument einer Funktion verwenden. Entfernen Sie den Verweis, und überprüfen Sie die Formel erneut. Hier ist eine Funktion erforderlich. Das Dialogfeld "Formeln" erwartet eine Funktion. Diese wurde nicht eingegeben. Überprüfen Sie Ihre Formel, und geben Sie die erforderliche Funktion ein, oder korrigieren Sie die Formel, falls ein Fehler vorliegt. Eine Monatszahl muss zwischen 1 und 12 liegen. Sie haben eine Monatszahl eingegeben, die außerhalb des zulässigen Bereichs liegt. Geben Sie eine Monatszahl zwischen 1 und 12 ein, und überprüfen Sie die Formel erneut. Eine Zeichenfolge darf höchstens 65.534 Zeichen lang sein. Das Programm unterstützt in Formeln Zeichenfolgen mit bis zu 65.534 Zeichen. Sie haben eine Zeichenfolge eingegeben, die diese Grenze überschreitet. Verkürzen Sie die Zeichenfolge, und überprüfen Sie die Formel erneut. Die Länge eines Indexes muss zwischen 1 und der Länge der Zeichenfolge liegen. Sie haben eine Indexnummer eingegeben, die sich auf ein Zeichen bezieht, das nicht vorhanden ist. Sie erhalten diese Warnung, wenn Sie z. B. einen Index eingeben, der auf das 6. oder 8. Zeichen einer fünf Zeichen langen Zeichenfolge verweist. Ändern Sie den Index in einen vorhandenen Wert, und überprüfen Sie die Formel erneut. Die Länge eines Indexes muss zwischen 1 und der Länge des Arrays liegen. Sie haben einen Index eingegeben, der sich auf ein Array bezieht, das nicht vorhanden ist. Sie erhalten diese Warnung, wenn Sie z. B. einen Index eingeben, der auf das 6. oder 8. Element eines Arrays mit fünf Elementen verweist. Ändern Sie den Index in einen vorhandenen Wert, und überprüfen Sie die Formel erneut. Crystal Report Explorer-Anwenderhandbuch 63 4 4 Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Eine Teilergebnisbedingung ist nicht zulässig. Sie haben eine Bedingung für ein Teilergebnis eingegeben, die als Feld zum Sortieren und Gruppieren etwas anderes als ein Datums- oder boolesches Feld verwendet. Ihr Teilergebnis benötigt keine Bedingung. Löschen Sie die Bedingung, und fahren Sie dann fort. Eine Teilergebnisbedingung muss eine Zeichenfolge sein. Sie haben eine Bedingung für ein Teilergebnis eingegeben, die sich nicht im Format einer Zeichenfolge befindet. Sie müssen die Bedingung beim Eingeben in die Formel in einfache oder doppelte Anführungszeichen setzen. Eine Variable kann nicht mit einem anderen Typ neu deklariert werden. Sie haben eine Variable deklariert, die den gleichen Namen, jedoch einen anderen Datentyp wie eine bereits deklarierte Variable besitzt. Dies ist nicht zulässig. Ändern Sie entweder den Namen der Variablen oder den Datentyp, damit dieser mit dem ursprünglichen Datentyp übereinstimmt. Hier ist eine Variable erforderlich. Sie haben den Zuweisungsoperator (=:) in einer Formel verwendet, ohne ihm eine Variable voranzustellen. Das Programm erwartet eine Variable unmittelbar vor dem (links vom) Zuweisungsoperator. Geben Sie eine Variable ein, und testen Sie dann erneut. Hier wird ein Variablenname erwartet. Sie haben einen Datentyp für eine Variable deklariert, ohne den entsprechenden Variablennamen anzugeben. Sie müssen einen Variablennamen eingeben, um die Deklaration zu vervollständigen. Geben Sie den Variablennamen ein, und fahren Sie dann fort. Datumsangaben müssen zwischen den Jahren 1 und 9999 liegen. Sie haben ein Datum eingegeben, das außerhalb des zulässigen Bereichs liegt. Geben Sie ein Datum ein, das innerhalb des Jahresbereichs von 1 bis 9999 (jeweils einschließlich) liegt, und überprüfen Sie dann die Formel erneut. Division durch Null. Sie haben eine Formel eingegeben, die versucht, eine Division durch Null durchzuführen. Crystal Reports lässt solche Divisionen nicht zu. Bearbeiten Sie die Formel so, dass es nicht mehr zu einer Division durch Null kommt, und überprüfen Sie dann die Formel erneut. 64 Crystal Report Explorer-Anwenderhandbuch Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Sie können diese Art von Problem umgehen, indem Sie den folgenden Test durchführen: If {Datei.PROGNOSE} = 0 Then 0 Else {Datei.UMSATZ} / {Datei.PROGNOSE} Fehler im Formelcode. Bitte setzen Sie sich mit Business Objects in Verbindung. Die Formel enthält nicht vorgesehene Elemente. Speichern Sie bitte den Text der Formel, durch die diese Warnung hervorgerufen wurde, und setzen Sie sich mit Crystal Decisions in Verbindung. Fehler in Parserhierarchie. Bitte setzen Sie sich mit Business Objects in Verbindung. Bei der Analyse der Formel ist eine Bedingung aufgetreten, die von der Parserhierarchie nicht verarbeitet werden konnte. Speichern Sie bitte den Text der Formel, durch die diese Warnung hervorgerufen wurde, und setzen Sie sich mit Crystal Decisions in Verbindung. Feld wird noch verwendet. Das von Ihnen angeforderte Feld wird bereits verwendet. Wiederholen Sie den Vorgang, wenn das Feld wieder verfügbar ist. Dateiname bereits in Gebrauch. Schließen Sie das Fenster für xxx, bevor Sie die Datei unter diesem Namen speichern. Der Name der zu speichernden Datei wurde bereits einer Datei zugewiesen, die gerade in einem geöffneten Bericht verwendet wird. Schließen Sie zunächst diesen Bericht, und versuchen Sie es dann erneut. Kein eindeutiger Tabellenverweis: Tabellenname. Dieses Problem tritt meistens dann auf, wenn ein Tabellenname einen Unterstrich enthält, länger als 15 Zeichen ist oder mit einer Zahl beginnt. Für diese Funktion wurden nicht genügend Argumente angegeben. Für die Funktion sind mehr Argumente erforderlich, als Sie eingegeben haben. Geben Sie das/die fehlende(n) Argument(e) ein, und testen Sie erneut. Numerischer Überlauf. Ein Zwischen- oder Endergebnis kann nicht angezeigt werden, da es zu groß ist. Strukturieren Sie die Formel neu, oder unterteilen Sie die Formel, um kleinere Ergebnisse zu erzielen, und überprüfen Sie dann die Formel erneut. Crystal Report Explorer-Anwenderhandbuch 65 4 4 Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Physische Datenbank nicht gefunden. Das Programm kann weder eine DLL noch die Datenbank finden. Überprüfen Sie, ob die Verzeichnisse, in denen sich diese Dateien befinden, in der PATHAnweisung aufgeführt sind. Diese Funktion ist noch nicht implementiert. Warten Sie auf eine neuere Version. Sie haben versucht, eine Funktion von Crystal Reports aufzurufen, die in der aktuellen Version noch nicht implementiert ist. Warten Sie auf ein Upgrade, mit dem diese Funktion implementiert wird, und versuchen Sie es dann erneut. Die Formel kann zur angegebenen Zeit nicht ausgewertet werden. Sie versuchen, die Auswertung eines Feldes, einer Formel oder einer Funktion früher zu erzwingen als dies möglich ist. Auswertungszeitpunktfunktionen können nur einen späteren Auswertungszeitpunkt erzwingen, niemals einen früheren. Ändern Sie die Formel so, dass der geeignete Auswertungszeitpunkt eingehalten wird. Dieses Feld kann nicht verwendet werden, da es später ausgewertet werden muss. Sie versuchen, die Auswertung eines Feldes, einer Formel oder einer Funktion früher zu erzwingen als dies möglich ist. Auswertungszeitpunktfunktionen können nur einen späteren Auswertungszeitpunkt erzwingen, niemals einen früheren. Ändern Sie die Formel so, dass der geeignete Auswertungszeitpunkt eingehalten wird. Diese Formel kann nicht verwendet werden, da sie später ausgewertet werden muss. Sie versuchen, die Auswertung eines Feldes, einer Formel oder einer Funktion früher zu erzwingen als dies möglich ist. Auswertungszeitpunktfunktionen können nur einen späteren Auswertungszeitpunkt erzwingen, niemals einen früheren. Ändern Sie die Formel so, dass der geeignete Auswertungszeitpunkt eingehalten wird. Diese Funktion kann nicht verwendet werden, da sie später ausgewertet werden muss. Sie versuchen, die Auswertung eines Feldes, einer Formel oder einer Funktion früher zu erzwingen als dies möglich ist. Auswertungszeitpunktfunktionen können nur einen späteren Auswertungszeitpunkt erzwingen, niemals einen früheren. Ändern Sie die Formel so, dass der geeignete Auswertungszeitpunkt eingehalten wird. 66 Crystal Report Explorer-Anwenderhandbuch Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Die Formel ist zu komplex. Versuchen Sie, sie zu vereinfachen. Die Formel konnte nicht ausgewertet werden, da sie das Limit von 50 ausstehenden Operationen überschreitet. Ausstehende Operationen sind Operationen, die entsprechend der Auswertungsregeln auf ihre Ausführung warten; sie werden ausgeführt, sobald die Ausführung der Operationen, die in der Reihenfolge vor ihnen stehen, beendet ist. Manchmal ist es möglich, die Formel so umzuändern, dass der gleiche Wert berechnet wird, ohne viele ausstehende Operationen zu erzeugen. In der stark vereinfachten Formel 2+3*4 beispielsweise kann die Addition erst ausgeführt werden, wenn die Multiplikation beendet ist. Die Addition wird also zu einer ausstehenden Operation, die warten muss, bis die Multiplikation ausgeführt ist. Wenn Sie die Formel in 3*4+2 ändern, können die Operationen mit gleichem Ergebnis von links nach rechts ausgeführt werden, ohne eine ausstehende Operation zu erzeugen. Korrigieren Sie die Formel, und überprüfen Sie sie erneut. Zugehörige } für diesen Feldnamen fehlt. Feldnamen müssen in geschweiften Klammern { } stehen. Sie haben aber nur eine der erforderlichen zwei geschweiften Klammern eingegeben. Fügen Sie die fehlende Klammer ein, und überprüfen Sie die Formel erneut. Zugehöriges ' für diese Zeichenfolge fehlt. Eine Zeichenfolge, die mit einem ' beginnt, muss vor dem Ende der Zeile mit einem ' enden. Sie haben das ' an einer dieser Positionen verwendet, nicht jedoch an der anderen. Fügen Sie das fehlende Satzzeichen ein, und überprüfen Sie die Formel erneut. Zugehöriges " für diese Zeichenfolge fehlt. Eine Zeichenfolge, die mit einem " beginnt, muss vor dem Ende der Zeile mit einem " enden. Sie haben das Anführungszeichen (") an einer dieser Positionen verwendet, nicht jedoch an der anderen. Fügen Sie das fehlende Satzzeichen ein, und überprüfen Sie die Formel erneut. Die Anzahl der Kopien der Zeichenfolge ist zu groß oder keine ganze Zahl. Beim Verwenden der Funktion ReplicateString haben Sie zu viele Kopien angefordert oder die Anzahl der Kopien nicht als Ganzzahl angegeben. Verringern Sie die Anzahl der anzufordernden Kopien, oder geben Sie eine Ganzzahl als Anzahl der Kopien an, und versuchen Sie es erneut. Crystal Report Explorer-Anwenderhandbuch 67 4 4 Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Die Anzahl der Tage ist zu groß oder keine ganze Zahl. Wenn Sie zu Datumsangaben Tage hinzuaddieren bzw. Tage von Datumsangaben subtrahieren, können Sie die Anzahl der Tage nur als ganze Zahl angeben; Sie können keine Dezimalzahlen (1/2 Tag, 3,6 Tage usw.) verwenden. Darüber hinaus muss eine Datumsangabe, zu der Sie Tage hinzuaddieren bzw. von der Sie Tage subtrahieren, in den zulässigen Datumsbereich (der Jahre 0000 bis 9999) fallen. Wenn Sie die Anzahl der Tage nicht als ganze Zahl eingeben oder das Ergebnis außerhalb des zulässigen Bereichs liegt, wird diese Warnung im Dialogfeld "Formeln" ausgegeben. Beheben Sie das Problem, und überprüfen Sie die Formel erneut. Die Anzahl der Dezimalstellen ist zu groß oder keine ganze Zahl. Das zweite Argument der Funktionen Round(x, DezStellen) und ToText(x, DezStellen) muss eine kleine Ganzzahl sein. Sie haben als zweites Argument (DezStellen) eine Zahl eingegeben, die zu viele Dezimalstellen festlegt oder keine ganze Zahl ist. Ändern Sie die Zahl in eine kleine Ganzzahl, und überprüfen Sie die Formel erneut. Die Datensatzauswahlformel darf nicht 'Seitenzahl', 'Datensatznummer', 'GruppenNummer', 'Previous' oder 'Next' beinhalten. Sie können in Datensatzauswahlformeln nicht die Felder Seitenzahl, Datensatznummer, GruppenNummer, Previous und Next einfügen. Entfernen Sie diese Felder, und überprüfen Sie die Formel erneut. Die Datensatzauswahlformel darf kein Gruppenergebnisfeld beinhalten. Sie haben einer Datensatzauswahlformel ein Gruppenergebnisfeld hinzugefügt. Crystal Reports lässt dies nicht zu. Entfernen Sie das Gruppenergebnisfeld, und überprüfen Sie die Formel erneut. Der übrige Text scheint nicht zur Formel zu gehören. Sie haben einen Formeloperanden angegeben (das Element, auf das sich eine Formeloperation bezieht), wo keiner erwartet wird. Möglicherweise haben Sie vergessen, einen Operator, den ersten Teil einer Funktion oder andere erforderliche Syntaxelemente anzugeben. Beheben Sie den Fehler, und überprüfen Sie die Formel erneut. Ein Bereich kann nicht das Ergebnis einer Formel sein. Sie haben eine Formel erstellt, deren Ergebnis ein Bereich ist. Eine Formel kann jedoch nur einen einzigen Wert als Ergebnis haben. Korrigieren Sie die Formel, und überprüfen Sie sie erneut. 68 Crystal Report Explorer-Anwenderhandbuch Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Ein Array kann nicht das Ergebnis einer Formel sein. Sie haben eine Formel erstellt, deren Ergebnis ein Array ist. Eine Formel kann jedoch nur einen einzigen Wert als Ergebnis haben. Korrigieren Sie die Formel, und überprüfen Sie sie erneut. Das Ergebnis der Auswahlformel muss ein boolescher Wert sein. Sie haben eine Auswahlformel erstellt, die anstelle eines booleschen Wertes einen anderen Wert zurückgibt. Erstellen Sie die Formel neu, indem Sie Vergleichsoperatoren (= usw.) verwenden. Zeichenfolge ist nicht numerisch. Das Argument der Funktion "ToNumber" muss eine Zahl sein, die als Zeichenfolge gespeichert ist (z.B. eine Kundennummer, eine ID-Nummer usw.). Die Zeichenfolge kann ein vorangestelltes Minuszeichen oder führende bzw. nachgestellte Leerzeichen enthalten. Sie haben ein Argument verwendet, das nicht numerisch ist, und daher nicht in eine Zahl ungewandelt werden kann. Geben Sie als Argument eine numerische Zahl an, und überprüfen Sie die Formel erneut. Die Variable konnte nicht erstellt werden. Die von Ihnen deklarierte Variable konnte nicht erstellt werden. Überprüfen Sie Schreibweise und Syntax Ihrer Deklarationsanweisung, und versuchen Sie es dann erneut. Das Wort "else" fehlt. Sie haben in einem If-Then-Else-Ausdruck die Else-Komponente weggelassen (oder an einer falschen Stelle eingefügt), so dass die Formel nicht korrekt ausgeführt werden kann. Fügen Sie die Else-Komponente ein (bzw. verschieben Sie sie an die richtige Position), und überprüfen Sie die Formel erneut. Das Wort "then" fehlt. Sie haben in einem If-Then-Else-Ausdruck die Then-Komponente weggelassen (oder an einer falschen Stelle eingefügt), so dass die Formel nicht korrekt ausgeführt werden kann. Fügen Sie die Then-Komponente ein (bzw. verschieben Sie sie an die richtige Position), und überprüfen Sie die Formel erneut. Zu viele Zeichen in diesem Feldnamen. Ein Feldname kann aus maximal 254 Zeichen bestehen. Sie haben einen Feldnamen eingegeben, der die zulässige Anzahl von Zeichen überschreitet. Geben Sie einen Feldnamen mit der zulässigen Anzahl von Zeichen ein, und versuchen Sie es erneut. Crystal Report Explorer-Anwenderhandbuch 69 4 4 Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Zu viele Zeichen in dieser Zeichenfolge. Zeichenfolgen in Formeln dürfen maximal 65.534 Zeichen umfassen. Sie haben eine Zeichenfolge eingegeben, die diese Grenze überschreitet. Verkürzen Sie die Zeichenfolge (oder teilen Sie sie in mehrere verkettete Zeichenfolgen auf), und überprüfen Sie dann die Formel erneut. Zu viele Ziffern in dieser Zeichenfolge. Crystal Reports lässt in Formeln nur Zahlen mit maximal 25 Stellen vor dem Dezimalzeichen zu. Sie haben eine Zahl eingegeben, die diese Grenze überschreitet. Geben Sie eine kleinere Zahl ein (oder teilen Sie die ursprüngliche Zahl in mehrere kleinere Zahlen auf), und überprüfen Sie dann die Formel erneut. Zu viele Buchstaben und Ziffern in diesem Namen. Ein Variablenname darf maximal 254 Zeichen umfassen. Sie haben einen Namen eingegeben, der die zulässige Anzahl von Zeichen überschreitet. Verkürzen Sie den Namen entsprechend der Vorgabe, und fahren Sie dann fort. Die Formel ist fehlerhaft. Bearbeiten Sie sie im Hinblick auf genauere Angaben. Sie haben versucht, eine Formel zu akzeptieren, die einen nicht korrigierten Fehler enthält. Korrigieren Sie den angegebenen Fehler, und versuchen Sie es dann erneut. Es muss ein Teilergebnisbereich vorhanden sein, der diesem Feld entspricht. Sie haben ein Teilergebnis in eine Formel eingegeben, ohne dass im Bericht selbst ein entsprechendes Teilergebnis vorhanden ist. Jedes Teilergebnis, das Sie in eine Formel eingeben, muss mit einem bereits in Ihrem Bericht vorhandenen Teilergebnis übereinstimmen. Tragen Sie zuerst das erforderliche Teilergebnis in den Bericht und dann erneut in die Formel ein, und überprüfen Sie die Formel dann noch einmal, oder löschen Sie die Formel ganz. Das Spezialvariablenfeld konnte nicht erstellt werden. Diese Meldung weist normalerweise darauf hin, dass die Speicherkapazität nicht ausreicht. Schließen Sie alle nicht mehr benötigten Berichte und Programme. Versuchen Sie es dann erneut. 70 Crystal Report Explorer-Anwenderhandbuch Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Das Gruppenergebnisfeld konnte nicht erstellt werden. Diese Meldung weist normalerweise darauf hin, dass die Speicherkapazität nicht ausreicht. Schließen Sie alle nicht mehr benötigten Berichte und Programme. Versuchen Sie es dann erneut. Dieses Feld kann nicht zusammengefasst werden. Sie haben ein Gruppenergebnisfeld eingegeben, das noch nicht in Ihrem Bericht existiert. Jedes Gruppenergebnisfeld, das Sie in eine Formel eingeben, muss mit einem bereits in Ihrem Bericht vorhandenen Gruppenergebnisfeld übereinstimmen. Fügen Sie das Gruppenergebnisfeld zunächst in Ihren Bericht und dann erneut in die Formel ein, oder lassen Sie es ganz weg. Dieses Feld kann nicht als Bedingungsfeld für ein Teilergebnis verwendet werden. Das Feld, das Sie als Bedingungsfeld eingeben, ist die Ursache dafür, dass das Teilergebnis in der Formel mit keinem der Teilergebnisse des Berichts übereinstimmt. Jedes Teilergebnis, das Sie in eine Formel eingeben, muss mit einem bereits in Ihrem Bericht vorhandenen Teilergebnis übereinstimmen. Fügen Sie das Teilergebnis zunächst in Ihren Bericht und dann erneut in die Formel ein, oder lassen Sie sie ganz weg. Dieses Feld besitzt keinen vorhergehenden oder nachfolgenden Wert. Sie haben ein Feld verwendet, für das es keinen „vorherigen“ Wert als Argument der Funktionen „Previous“ oder „PreviousIsNull“ gibt, oder Sie haben ein Feld verwendet, für das es keinen „nachfolgenden“ Wert als Argument der Funktionen „Next“ oder „NextIsNull“ gibt. Wenn Sie eine dieser Funktionen einsetzen möchten, müssen Sie das Argument durch ein Feld ersetzen, das die entsprechenden Werte enthält. Dieses Feld muss sich im selben Bereich befinden wie die aktuelle Formel. Nachdem das Feld der Formel als Operand hinzugefügt wurde, wurde es in einen Bereich verschoben, in dem es keinen gültigen Operanden mehr darstellt. Dieser Feldname ist unbekannt. Sie haben einen Feldnamen eingegeben, der in keiner der aktiven Datenbanken existiert. Korrigieren Sie den Feldnamen und/oder seinen Alias, und überprüfen Sie dann die Formel erneut. Wenn Sie einen Feldnamen aus einer Datenbank eingeben möchten, die momentan nicht aktiv ist, aktivieren Sie zuerst diese Datenbank, und geben Sie dann den Feldnamen erneut ein. Crystal Report Explorer-Anwenderhandbuch 71 4 4 Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen Dieser Gruppenbereich kann nicht gedruckt werden, weil sein Bedingungsfeld nicht vorhanden oder ungültig ist. Ihr Bericht enthält einen Gruppenbereich, der auf einem Bedingungsfeld basiert, das entweder nicht mehr im Bericht enthalten ist oder geändert wurde, so dass es für den Gruppenbereich ungültig ist. Überprüfen Sie die Gruppierkriterien, um die Ursache des Problems festzustellen und zu beheben. Dieses Array muss indiziert sein. Hier ein Beispiel: Array [i]. Sie haben ein Array eingegeben, ohne es in eckige Klammern zu setzen. Schließen Sie das Datenfeld in Klammern ein, und überprüfen Sie die Formel erneut. Diese Teilergebnisbedingung ist unbekannt. Sie haben eine Teilergebnisbedingung eingegeben, die nirgends in Ihrem Bericht angezeigt wird. Jedes Teilergebnis, das Sie in eine Formel eingeben, muss mit einem bereits in Ihrem Bericht vorhandenen Teilergebnis übereinstimmen. Ändern Sie die Bedingung, und überprüfen Sie dann Ihre Formel erneut. Für diese Funktion wurden zu viele Argumente angegeben. Sie haben ein Array als Argument für eine Funktion eingegeben, die kein Array verwendet. Dieses Problem kann z. B. auftreten, wenn Sie ein Array nicht in Klammern setzen (die erforderlichen Syntaxelemente für ein Array). Die Formelprüffunktion betrachtet die Arrayfeldwerte als Argumente einer Funktion, die kein Array verwendet, und zeigt daher die Fehlermeldung an. Für diesen Array wurden zu viele Elemente angegeben. Crystal Reports lässt maximal 50 Werte in einem Array zu. Sie haben diese Grenze überschritten. Reduzieren Sie die Anzahl der Werte im Array, und überprüfen Sie dann die Formel erneut. Warnungen über fehlende oder unkorrekte Operanden. Die folgenden Warnungen werden angezeigt, wenn die Formelprüffunktion einen bestimmten Operanden erwartet (das Element, auf dem die Formeloperation ausgeführt werden soll) und etwas anderes vorfindet. Die Formel 5>a vergleicht z.B. eine Zahl mit Text (der bekannte Vergleich von Äpfeln und Birnen). Wenn die Formelprüffunktion feststellt, dass ein Vergleich mit der Zahl fünf durchgeführt werden soll, so erwartet sie eine weitere Zahl. Wenn aber irgendetwas anderes als eine Zahl eingegeben wird, wird folgende Warnung angezeigt: Hier ist eine Zahl erforderlich. • • 72 Hier ist ein boolesches Array erforderlich. Hier wird ein boolescher Wert benötigt. Crystal Report Explorer-Anwenderhandbuch Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen • • • • • • • • • Hier ist ein Währungsbetrag erforderlich. • Hier ist eine Zahl, ein Währungsbetrag, ein boolescher Wert, ein Datum oder eine Zeichenfolge erforderlich. • Hier ist eine Zahl, ein Währungsbetrag, ein Datum oder eine Zeichenfolge erforderlich. • • • • • • • • • Hier ist eine Zahl, ein Währungsbetrag oder ein Datum erforderlich. Hier wird ein Währungsarray benötigt. Hier ist ein Währungsbereich erforderlich. Hier ist ein Datumsarray erforderlich. Hier ist ein Datum erforderlich. Hier ist ein Zeitraum erforderlich. Hier ist ein Zahlenarray erforderlich. Hier ist ein Zahlenarray oder ein Währungsarray erforderlich. Hier wird eine Zahl, ein Währungsbetrag, ein boolescher Wert oder eine Zeichenfolge erwartet. Hier ist ein Zahlenfeld oder ein Währungsbetragfeld erforderlich. Hier ist eine Zahl erforderlich. Hier ist eine Zahl oder ein Währungsbetrag erforderlich. Hier ist ein Zahlenbereich erforderlich. Hier ist ein Zeichenfolgearray erforderlich. Hier ist eine Zeichenfolge erforderlich. Hier ist eine Zeichenfolge oder ein Array von Werten erforderlich. Hier ist eine Zeichenfolge oder ein Array von Werten erforderlich. Crystal Report Explorer-Anwenderhandbuch 73 4 4 Hinzufügen von Berechnungen mithilfe von Formeln Fehlermeldungen und Formel-Compiler-Warnungen 74 Crystal Report Explorer-Anwenderhandbuch . Kapitel Formatieren von Berichten 5 Formatieren von Berichten Überblick über das Formatieren Überblick über das Formatieren Sobald der Bericht die gewünschten Daten in sinnvoller Anordnung enthält, können Sie ein Diagramm hinzufügen oder eine Berichtvorlage zuweisen. Sie können einzelne Objekte oder Abschnitte auch formatieren, um das Erscheinungsbild des endgültigen Berichts zu verbessern. Wechseln Sie beim Formatieren des endgültigen Berichts zwischen den Registerkarten "Entwurf" und "Bericht" hin und her. Hinzufügen und Entfernen von Diagrammen Sie können Gruppenergebniswerte für Datengruppen in Diagrammen darstellen. Bevor Sie ein Diagramm einfügen, vergewissern Sie sich, dass sich im Bericht mindestens eine Gruppe befindet und dass Sie ein Gruppenergebnisfeld erstellt haben, dessen Werte im Diagramm für jede Gruppe angezeigt werden sollen. Hinweis: Wenn der Bericht mehrere Gruppen enthält, stellen Sie sicher, dass sich die Gruppe für das Diagramm auf oberster Ebene befindet. Um Gruppen neu anzuordnen, klicken Sie auf der Symbolleiste auf "Gruppen" und dann auf "Weitere". 1. So fügen Sie ein Diagramm hinzu Klicken Sie in der Symbolleiste auf Diagramm. Das Dialogfeld „Diagramm“ wird angezeigt. 2. 76 Klicken Sie auf Balken, Linie oder Kreis, um den Diagrammtyp festzulegen. Crystal Report Explorer-Anwenderhandbuch Formatieren von Berichten Formatieren mit Vorlagen 3. Geben Sie im Feld Diagrammtitel den Titel ein, der für das Diagramm angezeigt werden soll. 4. Klicken Sie auf die Liste Positionierung, und wählen Sie einen Bereich für das Diagramm aus. (Sie können es im Kopf- oder Fußbereich des Berichts platzieren.) 5. Klicken Sie auf die Liste Wert für Gruppenergebnis anzeigen, und wählen Sie das Gruppenergebnisfeld aus, dessen Werte im Diagramm für jede Gruppe angezeigt werden sollen. 6. Klicken Sie auf OK. 1. So entfernen Sie ein Diagramm Klicken Sie in der Symbolleiste auf Diagramm. 2. Klicken Sie im Dialogfeld „Diagramm“ auf Entfernen. Formatieren mit Vorlagen Eine Vorlage ist eine vorhandene Berichtdatei, deren Formatierung für einen neuen Bericht übernommen werden kann. Gleichzeitig wird die Formatierung der Felder und Berichtobjekte der Berichtvorlage für den neuen Bericht übernommen. Mit Hilfe von Vorlagen können Sie beliebig viele Berichte einheitlich gestalten, ohne sie einzeln zu formatieren. Weitere Informationen zum Erstellen von Vorlagen und zum Hinzufügen von benutzerdefinierten Vorlagenfeldobjekten finden Sie im Crystal Reports-Anwenderhandbuch. Übernehmen der Vorlage Beim Erstellen eines Berichts können Sie optional eine Vorlage zuweisen. Von Ihrem Administrator können Sie eine Reihe von Standardvorlagen für verschieden Berichttypen erhalten. 1. So benutzen Sie einen anderen Bericht als Vorlage Klicken Sie in der Symbolleiste auf Vorlage. 2. Durchsuchen Sie die BusinessObjects Enterprise-Ordner. Das Dialogfenster "Vorlage" wird angezeigt. Hinweis: Der vom Administrator als Standardvorlagenordner definierte Ordner ist standardmäßig ausgewählt. 3. Wählen Sie den Bericht aus, den Sie als Vorlage verwenden möchten, und klicken Sie auf OK. Crystal Report Explorer-Anwenderhandbuch 77 5 5 Formatieren von Berichten Formatieren mit Vorlagen 4. Klicken Sie auf die Registerkarte Bericht, um zu sehen, wie die Vorlage den Bericht formatiert. Hinweis: Falls der ausgewählte Bericht nicht die nötigen Voraussetzungen für eine Vorlage erfüllt, werden keine Formatierungen angewendet. Nähere Informationen hierzu finden Sie unter Überlegungen zu Vorlagen. Überlegungen zu Vorlagen Wenn ein vorhandener Bericht als Vorlage verwendet wird, werden folgende Berichtobjekte für den neuen Bericht übernommen: • • • • • • • • Felder Gruppen Gruppendiagramme Gruppenergebnisfelder Hyperlinks Bitmap Linien, Rechtecke, Rahmen Statische OLE-Objekte Wenn ein vorhandener Bericht als Vorlage verwendet wird, werden folgende Berichtobjekte nicht für den neuen Bericht übernommen: • • • • • • • • • Detaildiagramme Unterberichte OLAP-Raster Kreuztabellen Karten Eingebettete OLE-Objekte BLOB-Felder Gruppierungen mit spezieller Reihenfolge Erweiterte Gruppenergebnisse (z.B. Erste N-Ergebnisse, Prozentsätze und laufende Summen) Bei der Berichterstellung ausgewählte Optionen können durch die Formatierungen und Objekte eines als Vorlage verwendeten Berichts überschrieben werden. Wenn Sie beispielsweise kein Diagramm auswählen aber einen Vorlagenbericht mit einem Diagramm übernehmen, wird die Auswahl durch den Vorlagenbericht überschrieben, und der neue Bericht enthält ein Diagramm. 78 Crystal Report Explorer-Anwenderhandbuch Formatieren von Berichten Formatieren von Objekten und Bereichen Außerdem überschreibt ein Diagramm in einem Vorlagenbericht den in einem vorhandenen Diagramm ausgewählten Gruppenergebniswert. Sobald die Vorlage übernommen wurde, wird das erste Gruppenergebnisfeld im Bericht zum Gruppenergebniswert für das Diagramm. Formatieren von Objekten und Bereichen Klicken Sie auf die Registerkarte "Entwurf", um Layout und Formatierung des Berichts anzuzeigen und zu ändern. Hier können Sie Feldobjekte verschieben und formatieren, Textobjekte hinzufügen, Berichtbereiche neu anordnen und formatieren usw. Verwenden Sie die verfügbaren Formatierungsoptionen, um die Präsentation des Berichts noch zu verbessern. Darüber hinaus können Sie Formatierungen auf der Registerkarte "Bericht" zuweisen. Weitere Informationen finden Sie unter „Arbeiten auf der Registerkarte "Bericht"“ auf Seite 90 Verschieben und Ändern der Größe von Objekten und Bereichen • So verschieben Sie ein Objekt Ziehen Sie ein beliebiges Objekt, um seine Position innerhalb seines Berichtbereichs zu ändern. 1. So ändern Sie die Größe eines Objekts Wählen Sie auf der Registerkarte Entwurf das Feld oder Textobjekt aus, dessen Größe Sie ändern möchten. Die Ziehpunkte des Objekts werden eingeblendet. 2. 1. 2. Ändern Sie die Größe des Objekts, indem Sie einen der Ziehpunkte ziehen. So ändern Sie die Größe eines Bereichs Bewegen Sie auf der Registerkarte Entwurf den Zeiger über die Grenze des Bereichs, dessen Größe Sie ändern möchten. Wenn der Zeiger die Form des Größenänderungs-Cursors annimmt, ziehen Sie die Begrenzung nach oben/unten, um den Bereich zu vergrößern oder zu verkleinern. Crystal Report Explorer-Anwenderhandbuch 79 5 5 Formatieren von Berichten Formatieren von Objekten und Bereichen Hinzufügen und Bearbeiten von Textobjekten 1. So fügen Sie ein Textobjekt hinzu Klicken Sie auf der Registerkarte Entwurf mit der rechten Maustaste in den weißen Bereich, in dem Sie ein Textobjekt hinzufügen möchten. 2. Klicken Sie im Kontextmenü auf Textobjekt hinzufügen. Zum Bericht wird ein Textobjekt hinzugefügt. Ersetzen Sie den vorhandenen Text durch eigenen, und drücken Sie dann die EINGABETASTE. Sie können den Text erneut bearbeiten, indem Sie die folgenden Schritte ausführen. 1. So bearbeiten Sie ein Textobjekt Klicken Sie mit der rechten Maustaste auf das Objekt, dessen Text Sie bearbeiten möchten. 2. Klicken Sie im Kontextmenü auf Text bearbeiten. Im Textobjekt wird die Einfügemarke angezeigt. 3. Ersetzen Sie den vorhandenen Text durch eigenen, und drücken Sie dann die EINGABETASTE. 1. So entfernen Sie ein Textobjekt Klicken Sie mit der rechten Maustaste auf den zu entfernenden Text. 2. Klicken Sie im Kontextmenü auf Feld entfernen. Formatieren von Feld- und Textobjekten 1. Klicken Sie auf der Registerkarte Entwurf oder Bericht mit der rechten Maustaste auf das zu formatierende Objekt. 2. Klicken Sie im Kontextmenü auf Feld formatieren. Der Format-Editor wird angezeigt. 3. Verwenden Sie die verfügbaren Optionen auf den Registerkarten "Allgemein", "Rahmen", "Datum", "Zahl" und "Schriftart", um das Objekt wie gewünscht zu formatieren. • 80 Auf der Registerkarte "Allgemein" können Sie Eigenschaften wie "Unterdrücken", "Horizontale Ausrichtung" und "Objekt zusammenhalten" für ein gewünschtes Feld einrichten. Siehe „Registerkarte "Allgemein" (Dialogfeld "Format-Editor")“ auf Seite 85. Crystal Report Explorer-Anwenderhandbuch Formatieren von Berichten Formatieren von Objekten und Bereichen 4. • Auf der Registerkarte "Rahmen" können Sie für im Bericht markierte Felder Rahmen, Hintergrundfüllung und Schatten formatieren. Mithilfe der Optionen auf dieser Registerkarte können Sie verschiedene Effekte erstellen, die sowohl das Aussehen des Berichts verbessern als auch wichtige Daten hervorheben. Siehe „Registerkarte "Rahmen" (Dialogfeld "Format-Editor")“ auf Seite 86. • Auf der Registerkarte "Schriftart" können Sie die Schriftarten, den Schriftgrad und den Schriftschnitt für Text und Datenfelder in den Berichten ändern. Siehe „Registerkarte „Schriftart“ (Dialogfeld „Format-Editor“)“ auf Seite 87. • Verwenden Sie die Registerkarte "Zahl", um Zahlen im Bericht zu formatieren, beispielsweise um Dezimalstellen und Währungssymbole festzulegen. Siehe „Registerkarte "Nummer" (Dialogfeld "Format-Editor")“ auf Seite 87. • Verwenden Sie die Registerkarte "Datum", um die Darstellung von Datum und Uhrzeit im Bericht zu formatieren. Siehe „Registerkarte "Datum" (Dialogfeld "Format-Editor")“ auf Seite 88. Klicken Sie auf Anwenden und anschließend auf OK. Hinweis: Darüber hinaus können Sie Felder auf der Registerkarte "Bericht" formatieren. Hinzufügen von Spezialfeldern zum Bericht Spezialfelder sind vordefinierte Felder, die dem Bericht auf der Registerkarte "Entwurf" hinzugefügt werden können. Die Spezialfelder werden beim Ausführen des Berichts ausgewertet. Weitere Informationen zum Festlegen von Spezialfeldern in Crystal Reports finden Sie in der Crystal ReportsDokumentation. 1. 2. So fügen Sie ein Spezialfeld in den Bericht ein Klicken Sie auf der Registerkarte Entwurf mit der rechten Maustaste in einen weißen Bereich des Berichtsbereichs, dem Sie ein Spezialfeld hinzufügen möchten. Klicken Sie im Kontextmenü auf das Spezialfeld, das Sie einfügen möchten. Crystal Report Explorer-Anwenderhandbuch 81 5 5 Formatieren von Berichten Formatieren von Objekten und Bereichen In der folgenden Liste sind die verfügbaren Spezialfelder beschrieben: Datendatum Verwenden Sie das Feld "Datendatum", um ein Feld mit dem Datum einzufügen, zu dem die Daten zuletzt abgerufen (aktualisiert) wurden. Dieses Feld kann abhängig davon, wie häufig es gedruckt werden soll, in einem beliebigen Bereich des Berichts positioniert werden. Datenuhrzeit Verwenden Sie das Feld "Datenuhrzeit", um ein Feld mit der Uhrzeit einzufügen, zu der die Daten zuletzt abgerufen (aktualisiert) wurden. Dieses Feld kann abhängig davon, wie häufig es gedruckt werden soll, in einem beliebigen Bereich des Berichts positioniert werden. Dateiautor Verwenden Sie das Feld "Dateiautor" zum Einfügen eines Feldes, in dem der Name des Berichtautors angezeigt wird. Dateipfad und -name Verwenden Sie das Feld "Dateipfad und -name" zum Einfügen eines Feldes, in dem Dateipfad und Dateiname für den Bericht angezeigt werden. Gruppennummer Verwenden Sie das Feld "Gruppennummer", um alle Gruppen im Bericht zu nummerieren. Dieses Feld kann entweder im Gruppenkopf- oder im Gruppenfußbereich des Berichts positioniert werden. Gruppenauswahlformel Verwenden Sie das Feld "Gruppenauswahlformel", um ein Gruppenauswahlformelfeld in den Bericht einzufügen. Änderungsdatum Verwenden Sie das Feld "Änderungsdatum", um ein Feld mit dem Datum einzufügen, zu dem der Bericht zuletzt geändert wurde. "Geändert" bezieht sich auf jede Art von Änderung (auch auf so einfache Aktionen wie das Verschieben eines Feldes). Wenn Sie den Bericht ändern und ausdrucken, wird das Änderungsdatum auch dann vom Programm ausgedruckt, wenn der Bericht vor dem Drucken nicht gespeichert wurde. Dieses Feld kann abhängig davon, wie häufig es gedruckt werden soll, in einem beliebigen Bereich des Berichts positioniert werden. 82 Crystal Report Explorer-Anwenderhandbuch Formatieren von Berichten Formatieren von Objekten und Bereichen Änderungszeit Verwenden Sie das Feld "Änderungszeit", um ein Feld mit der Uhrzeit einzufügen, zu der der Bericht zuletzt geändert wurde. Dieses Feld funktioniert analog Änderungsdatum. Dieses Feld kann abhängig davon, wie häufig es gedruckt werden soll, in einem beliebigen Bereich des Berichts positioniert werden. Seite N von M Verwenden Sie das Feld "Seite N von M" zum Einfügen eines Feldes, in dem Seitenzahl und die Gesamtzahl der im Bericht enthaltenen Seiten angegeben ist. Der Feldwert "Seite 1 von 8" deutet beispielsweise darauf hin, dass es sich um die erste Seite in einem achtseitigen Bericht handelt. Seitenzahl Verwenden Sie das Feld "Seitenzahl" zum Einfügen eines Feldes, in dem die aktuelle Seitenzahl ausgedruckt wird. Diese Felder werden meist im Kopfoder Fußbereich positioniert. Druckdatum Verwenden Sie das Feld "Druckdatum", um den Bericht mit dem aktuellen Datum auszudrucken. Dieses Feld kann abhängig davon, wie häufig es gedruckt werden soll, in einem beliebigen Bereich des Berichts positioniert werden. Druckzeit Verwenden Sie das Feld "Druckzeit", um ein Feld mit der Uhrzeit einzufügen, zu der der Bericht gedruckt wurde. Dieses Feld kann abhängig davon, wie häufig es gedruckt werden soll, in einem beliebigen Bereich des Berichts positioniert werden. Datensatznummer Verwenden Sie das Feld "Datensatznummer", um jeden im Bereich "Details" des Berichts gedruckten Datensatz zu nummerieren. Datensatzauswahlformel Verwenden Sie das Feld "Datensatzauswahlformel", um ein Datensatzauswahlformelfeld in den Bericht einzufügen. Berichtkommentare Verwenden Sie das Feld "Berichtkommentare" zum Einfügen eines Feldes, das die im Crystal Reports-Bericht angegebenen Kommentare enthält. Dieses Feld kann abhängig davon, wie häufig es gedruckt werden soll, in einem beliebigen Bereich des Berichts positioniert werden. Crystal Report Explorer-Anwenderhandbuch 83 5 5 Formatieren von Berichten Formatieren von Objekten und Bereichen Berichttitel Verwenden Sie das Feld "Berichtstitel" zum Einfügen eines Feldes, das den im Crystal Reports-Bericht angegebenen Titel enthält. Dieses Feld kann abhängig davon, wie häufig es gedruckt werden soll, in einem beliebigen Bereich des Berichts positioniert werden. Gesamtseitenzahl Verwenden Sie das Feld "Gesamtseitenzahl", um die Gesamtzahl der im Bericht enthaltenen Seiten auszudrucken. Dieses Feld kann auf verschiedene Weise verwendet werden. Sie können es z.B. in Kombination mit dem Feld „Seitenzahl“ verwenden, um ein Textobjekt mit dem Wortlaut „Seite x von y“ zu erstellen. „x“ entspricht dabei dem Feld „Seitenzahl“ und „y“ dem Feld „Gesamtseitenzahl“. Diese Felder können abhängig davon, wie häufig sie gedruckt werden sollen, in einem beliebigen Bereich des Berichts positioniert werden. Formatieren von Bereichen des Berichts 1. Klicken Sie auf der Registerkarte Entwurf oder Bericht mit der rechten Maustaste in den weißen Bereich des Berichtsbereichs, den Sie formatieren möchten. 2. Klicken Sie im Kontextmenü auf Bereichs-Assistent. Der Bereichs-Assistent wird angezeigt. 84 Crystal Report Explorer-Anwenderhandbuch Formatieren von Berichten Formatieren von Objekten und Bereichen In der Liste "Bereiche" ist der zu formatierende Bereich standardmäßig ausgewählt. Wählen Sie einen anderen Bereich aus, um dessen Formatierung zu ändern. 3. 4. Verwenden Sie die verfügbaren Optionen auf den Registerkarten Allgemein und Farbe, um jeden Bereich wie gewünscht zu formatieren: • Auf der Registerkarte Allgemein stellen Sie Eigenschaften ein, z. B.: "Sichtbar", "Davor neue Seite", "Zusammenhalten" usw. (für den gewünschten Bereich). Siehe „Registerkarte "Allgemein" (BereichsAssistent)“ auf Seite 88. • Auf der Registerkarte Farbe stellen Sie die Hintergrundfarbe für den gewünschten Bereich ein. Siehe „Registerkarte "Farbe" (BereichsAssistent)“ auf Seite 90. Klicken Sie auf Anwenden und anschließend auf OK. Formatierungsoptionen In diesem Abschnitt werden die Formatierungsoptionen in den Dialogfeldern "Format-Editor" und "Bereichs-Assistent" beschrieben. Registerkarte "Allgemein" (Dialogfeld "Format-Editor") Horizontale Ausrichtung Diese Liste enthält die Typen der horizontalen Ausrichtung für das Feld (z. B. Links, Zentriert und Rechts) Zusammenhalten Aktivieren Sie dieses Kontrollkästchen, um ein Objekt auf einer Seite zusammenzuhalten. Falls genügend Platz zur Verfügung steht, wird das Objekt vom Programm auf der aktuellen Seite ausgegeben. Andernfalls wird das Objekt vom Programm auf der nächsten Seite ausgegeben. Hinweis: Wenn Objekte größer als eine Seite sind, funktioniert diese Eigenschaft nicht. Solche Objekte werden immer über mehrere Seiten verteilt. Rahmen vor Seitenwechsel schließen Wenn ein Objekt über einen Rahmen verfügt und über zwei Seiten verteilt ist, gibt es zwei Optionen: Fügen Sie einen Rahmen um jeden Teil des geteilten Objekts ein, oder zeigen Sie jeden Teil des Objekts mit einem Teilrahmen an. Aktivieren Sie dieses Kontrollkästchen, um einen vollständigen Rahmen anzuzeigen. Crystal Report Explorer-Anwenderhandbuch 85 5 5 Formatieren von Berichten Formatieren von Objekten und Bereichen Kann größer werden Dieses Kontrollkästchen ist für Objekte nützlich, die Zeichenfolgen mit variabler Länge enthalten, z. B. Memofelder. • Aktivieren Sie dieses Kontrollkästchen, falls der Objektrahmen vertikal erweitert werden soll, wenn der Text im Objekt größer als der Rahmen ist. • Deaktivieren Sie das Kontrollkästchen, um die Daten abzuschneiden, wenn der Wert größer als der Rahmen ist. Unterdrücken (kein Drilldown) Aktivieren Sie dieses Kontrollkästchen, wenn Sie das markierte Feld unterdrücken möchten. Die Feldwerte werden weder auf den Registerkarten "Daten" oder "Bericht" angezeigt noch ausgedruckt. QuickInfo-Text QuickInfo-Text erscheint, wenn Sie den Mauszeiger einige Sekunden über einem Feld ruhen lassen. Registerkarte "Rahmen" (Dialogfeld "Format-Editor") Linienart Dieses Gruppenfeld enthält eine Reihe von Symbolen zur Darstellung der Feldrahmen. Sie können die Rahmenstile mit Hilfe der neben dem jeweiligen Rahmensymbol angezeigten Liste anwenden. Wählen Sie zunächst den Rahmentyp, und klicken Sie zum Anwenden auf das entsprechende Symbol. Wählen Sie beispielsweise den gepunkteten Rahmen, und klicken Sie auf das Symbol "Linker und rechter Rahmen". Wenn Sie auf "Anwenden" klicken, erscheinen der linke und rechte Rahmen Ihres Feldes als gepunktete Linie. Eng Horizontal Aktivieren Sie dieses Kontrollkästchen, um den Rahmen an die Feldgröße anzupassen. • Wenn dieses Kontrollkästchen nicht aktiviert ist, hat der Rahmen für jeden Datensatz die gleiche Größe. • Wenn das Kontrollkästchen aktiviert ist, wird die Größe des Rahmens an jeden einzelnen Datensatz angepasst. Mit Schatten Aktivieren Sie dieses Kontrollkästchen, wenn Sie auf der unteren und der rechten Seite des Feldes einen Schatten drucken möchten. 86 Crystal Report Explorer-Anwenderhandbuch Formatieren von Berichten Formatieren von Objekten und Bereichen Hintergrund Wählen Sie Optionen aus dieser Liste aus, um gerahmte Objekte mit einer Hintergrundfarbe zu füllen. Rahmen Diese Liste enthält die für Rahmen verfügbaren Farben. Registerkarte „Schriftart“ (Dialogfeld „Format-Editor“) Schriftart Diese Liste enthält alle verfügbaren Schriftarten. Schriftschnitt Diese Liste enthält zusätzliche Attribute, die Sie der markierten Schriftart zuweisen können. Schriftgrad Diese Liste enthält alle verfügbaren Schriftgrade. Farbe Wählen Sie die gewünschte Farbe aus der Liste aus, wenn Sie die Farbe der Schriftart ändern möchten. Durchgestrichen Wenn Sie dieses Kontrollkästchen aktivieren, wird das Zeichen, das das Durchstreichen symbolisiert, über die Schriftart gedruckt. Unterstrichen Wenn Sie dieses Kontrollkästchen aktivieren, werden die in der ausgewählten Schriftart eingegebenen Zeichen unterstrichen. Registerkarte "Nummer" (Dialogfeld "Format-Editor") Nullwerte anzeigen als Diese Liste enthält Optionen, mit denen Sie die Darstellung von Nullwerten festlegen können. Negative Werte Diese Liste enthält Optionen, mit denen Sie die Darstellung negativer Werte festlegen können. Dezimalstelle festlegen Diese Liste enthält Optionen, mit denen Sie die Dezimalstelle innerhalb von Zahlen festlegen können. Crystal Report Explorer-Anwenderhandbuch 87 5 5 Formatieren von Berichten Formatieren von Objekten und Bereichen Dezimalzeichen Geben Sie das als Dezimalzeichen zu verwendende Zeichen ein. Tausendertrennzeichen verwenden Aktivieren Sie dieses Kontrollkästchen, um ein Tausendertrennzeichen zu verwenden. Geben Sie das gewünschte Zeichen ein. Währungssymbol verwenden Aktivieren Sie dieses Kontrollkästchen, um ein Währungssymbol zu verwenden. Währungsstelle Wählen Sie die Position des Währungssymbols aus der Liste aus. Registerkarte "Datum" (Dialogfeld "Format-Editor") Datumsreihenfolge Wählen Sie aus den verfügbaren Optionen aus, in welcher Reihenfolge Tag, Monat und Jahr angezeigt werden sollen. Format Wählen Sie aus den verfügbaren Listen aus, wie Datum und Uhrzeit angezeigt werden sollen. Registerkarte "Allgemein" (Bereichs-Assistent) Ausblenden (Drilldown OK) Aktivieren Sie dieses Kontrollkästchen, wenn der betreffende Bereich eines Berichts nicht angezeigt werden soll aber zum Drilldown zur Verfügung stehen soll. Unterdrücken (kein Drilldown) Aktivieren Sie dieses Kontrollkästchen, wenn der betreffende Bereich nicht gedruckt werden soll und auch nicht zum Drilldown zur Verfügung stehen soll. Am Ende der Seite drucken Wenn dieses Kontrollkästchen aktiviert ist, wird jeder Gruppenwert nur unten auf der Seite gedruckt. (Details werden weiterhin an ihren normalen Positionen gedruckt.) Dieser Befehl ist hilfreich, wenn Sie Rechnungen oder andere Berichte drucken, bei denen eine einzelne Gruppe (beispielsweise nach Auftrags-ID gruppierte Posten) auf einer Seite und der Wert für diese Gruppe (Teilergebnis, Gruppenergebnisfeld usw.) nur im unteren Bereich der Seite ausgegeben werden soll. 88 Crystal Report Explorer-Anwenderhandbuch Formatieren von Berichten Formatieren von Objekten und Bereichen Davor neue Seite Davor neue Seite ist als Formateigenschaft für Gruppenbereiche (Gruppenkopf und Gruppenfuß) und Detailbereiche verfügbar. Wenn Sie diese Option aktivieren, fügt das Programm einen Seitenumbruch ein, bevor dieser Bereich gedruckt wird. Der Seitenumbruch wird an folgenden Stellen eingefügt: • vor der Gruppe (wenn die Option mit einem Gruppenfußbereich verwendet wird) oder • vor jedem Berichtdatensatz (wenn die Option mit einem Detailbereich verwendet wird) Seitenkopf und -fuß erscheinen auf jeder Seite. Wenn Sie ein Teilergebnisoder Gruppenergebnisfeld im Gruppenfuß haben, können Sie mit der Option "Davor neue Seite" diese Werte auf Seiten einfügen, die auf den zusammengefassten Wert folgen. Danach neue Seite Wenn Sie diese Option aktivieren, fügt das Programm nach diesem Bereich einen Seitenumbruch ein. • • Seitenkopf und -fuß erscheinen auf jeder Seite. Aktivieren Sie Danach neue Seite für einen Gruppenfußbereich, um jede Gruppe auf einer eigenen Seite zu drucken. Seitenzahl zurücksetzen nach Setzt die Seitenzahl für die folgende Seite auf eins (1) zurück, nachdem die Gruppengesamtsumme gedruckt wurde. Wenn diese Option zusammen mit "Am Ende der Seite drucken" verwendet wird, druckt das Programm eine einzelne Gruppe auf eine Seite sowie den Gruppenwert am unteren Seitenrand und setzt dann die Seitennummer der nächsten Seite auf 1 zurück. Diese Option ist hilfreich, wenn Sie mehrere Berichte aus einer einzigen Datei drucken möchten (z.B. Rechnungen) und jeder Bericht nummeriert werden und mit Seite 1 beginnen soll. Zusammenhalten Wenn dieses Kontrollkästchen aktiviert ist, hält das Programm alle Zeilen eines Bereichs zusammen, entweder auf der aktuellen Seite (wenn der Platz ausreicht) oder auf der nächsten Seite. In einer Kundenliste z. B. können sich die Daten für einen bestimmten Kunden (von einem einzelnen Datensatz oder verknüpften Datensätzen) über mehrere Zeilen erstrecken. Wenn der Standardseitenumbruch mitten in die Daten für einen Kunden fällt, würden die Daten geteilt und teils auf der einen, teils auf der nächsten Seite angezeigt. Crystal Report Explorer-Anwenderhandbuch 89 5 5 Formatieren von Berichten Arbeiten auf der Registerkarte "Bericht" Mit Zusammenhalten verschiebt das Programm den Seitenumbruch hingegen vor den Datensatz, so dass alle Daten zusammen auf der folgenden Seite gedruckt werden. Hinweis: Diese Option funktioniert nicht mit mehrzeiligen Zeichenfolgen oder Memofeldern. Ein Seitenumbruch kann in der Mitte eines mehrzeiligen Feldes liegen. Leeren Bereich unterdrücken Wenn Sie dieses Kontrollkästchen aktivieren, blendet das Programm einen Berichtsbereich aus, wenn er leer ist, und druckt ihn, wenn er Daten enthält. Folgende Bereiche unterlegen Aktivieren Sie dieses Kontrollkästchen, wenn das ausgewählte Objekt beim Drucken unter den folgenden Bereichen liegen soll. Verwenden Sie diese Option, wenn beispielsweise ein Diagramm im Kopfbereich unter den folgenden Berichtbereichen liegen soll. Registerkarte "Farbe" (Bereichs-Assistent) Hintergrund Wählen Sie eine Option aus dieser Liste aus, um dem ausgewählten Bereich eine Hintergrundfarbe hinzuzufügen. Arbeiten auf der Registerkarte "Bericht" Klicken Sie auf die Registerkarte "Bericht", um eine Vorschau des Crystal Reports-Berichts anzuzeigen und weitere Änderungen bezüglich Sortierreihenfolge, Layout und Format vorzunehmen. Hinzufügen und Bearbeiten von Textobjekten Textobjekte können auf der Registerkarte "Bericht" genauso wie auf der Registerkarte "Entwurf" hinzugefügt und bearbeitet werden. Tipp: Um ein Textobjekt nach der Erstellung zu positionieren, ziehen Sie das Textobjekt auf die gewünschte Position. 90 1. So fügen Sie ein Textobjekt hinzu Klicken Sie auf der Registerkarte Bericht mit der rechten Maustaste in den weißen Bereich des Berichtsbereichs, dem Sie ein Textobjekt hinzufügen möchten. 2. Klicken Sie im Kontextmenü auf Textobjekt hinzufügen. Crystal Report Explorer-Anwenderhandbuch Formatieren von Berichten Arbeiten auf der Registerkarte "Bericht" Zum Bericht wird ein Textobjekt hinzugefügt. Ersetzen Sie den vorhandenen Text durch eigenen, und drücken Sie dann die EINGABETASTE. Sie können den Text erneut bearbeiten, indem Sie die folgenden Schritte ausführen. 1. So bearbeiten Sie ein Textobjekt Klicken Sie mit der rechten Maustaste auf das Objekt, dessen Text Sie bearbeiten möchten. 2. Klicken Sie im Kontextmenü auf Text bearbeiten. Im Textobjekt wird die Einfügemarke angezeigt. 3. Ersetzen Sie den vorhandenen Text durch eigenen, und drücken Sie dann die EINGABETASTE. 1. So entfernen Sie ein Textobjekt Klicken Sie mit der rechten Maustaste auf den zu entfernenden Text. 2. Klicken Sie im Kontextmenü auf Feld entfernen. Formatieren von Bereichen 1. Klicken Sie auf der Registerkarte Bericht mit der rechten Maustaste in den weißen Bereich des Berichtbereichs, den Sie formatieren möchten. 2. Klicken Sie im Kontextmenü auf Bereichs-Assistent. Der Bereichs-Assistent wird angezeigt. Weitere Informationen zu den im Bereichs-Assistenten verfügbaren Optionen finden Sie unter „Formatierungsoptionen“ auf Seite 85. Formatieren von Feldern 1. Klicken Sie auf der Registerkarte Bericht mit der rechten Maustaste auf das zu formatierende Feld. 2. Klicken Sie im Kontextmenü auf Feld formatieren. Der Format-Editor wird angezeigt. Weitere Informationen zu den im Format-Editor verfügbaren Optionen finden Sie unter „Formatierungsoptionen“ auf Seite 85. Durchsuchen von Felddaten 1. Klicken Sie auf der Registerkarte Bericht mit der rechten Maustaste auf das zu durchsuchende Feld. 2. Klicken Sie im Kontextmenü auf Felddaten durchsuchen. Crystal Report Explorer-Anwenderhandbuch 91 5 5 Formatieren von Berichten Arbeiten auf der Registerkarte "Bericht" Die Daten in diesem Feld werden im Dialogfenster "Feldbrowser" angezeigt. Diese Option ist außerdem im Dialogfeld "Weitere" für Felder und Gruppen verfügbar, das über die Symbolleiste aufgerufen wird. Sortieren von Felddaten Sie können eine Sortierreihenfolge für die Felder im Bericht festlegen. Dabei können Sie auswählen, ob die Felder in aufsteigender oder absteigender Reihenfolge angezeigt werden sollen, oder Sie können die Sortierung eines Feldes entfernen. 1. 2. So sortieren Sie Felddaten Klicken Sie auf der Registerkarte Bericht mit der rechten Maustaste auf das zu sortierende Feld. Wählen Sie im Kontextmenü Sortieren aus, und klicken Sie dann auf die Sortieroption, die Sie dem Feld zuweisen möchten. Entfernen eines Feldes aus dem Bericht 1. Klicken Sie auf der Registerkarte Bericht mit der rechten Maustaste auf das zu entfernende Feld. 2. Klicken Sie im Kontextmenü auf Feld entfernen. Das Feld wird aus dem Bericht entfernt. 92 Crystal Report Explorer-Anwenderhandbuch Kapitel Festlegen von Anwendereinstellungen 6 Festlegen von Anwendereinstellungen Übersicht Übersicht Mit Hilfe der Optionen im Dialogfeld "Einstellungen" von Crystal Reports Explorer können Sie eigene Standardeinstellungen wählen und das Aussehen anpassen. Auf der Registerkarte "Anwendung" können Sie Farbeinstellungen, Standardoptionen für Registerkarten, Symbolleistenoptionen, erweiterte Dialogfeldoptionen und Einstellungen für Feldnamen ändern: 94 Crystal Report Explorer-Anwenderhandbuch Festlegen von Anwendereinstellungen Ändern der Hintergrundfarbe Auf der Registerkarte "Andere" können Sie die Einstellungen für das Datenraster sowie Optionen für die Registerkarte "Entwurf" ändern: Hinweis: Zum Wiederherstellen der ursprünglichen Standardeinstellungen öffnen Sie das Dialogfeld "Einstellungen" und klicken Sie auf Zurücksetzen. Ändern der Hintergrundfarbe 1. So ändern Sie die Hintergrundfarbe Klicken Sie auf die Schaltfläche Einstellungen. Das Dialogfeld "Einstellungen" wird angezeigt. 2. Klicken Sie auf der Registerkarte Anwendung auf die Farbe, die Sie als Hintergrundfarbe festlegen möchten. 3. Klicken Sie auf Anwenden und anschließend auf OK, um das Dialogfeld zu schließen. Crystal Report Explorer-Anwenderhandbuch 95 6 6 Festlegen von Anwendereinstellungen Festlegen der standardmäßig angezeigten Registerkarte Festlegen der standardmäßig angezeigten Registerkarte Sie können die Registerkarte wählen, die angezeigt wird, wenn Sie die Seite "Datenquelle für den Bericht festlegen" oder die Seite Seite "Bericht erstellen" öffnen. Es sind folgende Registerkarten verfügbar: • • • • 1. Quelle Daten Entwurf Bericht So legen Sie die standardmäßig angezeigte Registerkarte fest Klicken Sie auf die Schaltfläche Einstellungen. Das Dialogfeld "Einstellungen" wird angezeigt. 2. Klicken Sie auf der Registerkarte Anwendung auf die Registerkarte, die Sie als Standard festlegen möchten. 3. Klicken Sie auf Anwenden und anschließend auf OK, um das Dialogfeld zu schließen. Anpassen der Symbolleiste Per Voreinstellung wird die Symbolleiste auf der linken Bildschirmseite angezeigt. Sie können eine feste Symbolleiste wählen, Sie können die Symbolleiste ausblenden, oder Sie konfigurieren eine bewegliche Symbolleiste. 1. So legen Sie die Symbolleistenoptionen fest Klicken Sie auf die Schaltfläche Einstellungen. Das Dialogfeld "Einstellungen" wird angezeigt. 96 2. Klicken Sie auf der Registerkarte Anwendung auf die Symbolleistenoption, den Sie als Standard festlegen möchten. 3. Klicken Sie auf Anwenden und anschließend auf OK, um das Dialogfeld zu schließen. Crystal Report Explorer-Anwenderhandbuch Festlegen von Anwendereinstellungen Anzeigen erweiterter Dialogfelder Anzeigen erweiterter Dialogfelder Die Symbolleiste enthält eine Reihe von Optionen zum Definieren und Erstellen von Berichten, beispielsweise zur Auswahl von Feldern und Gruppen. Verschiedene dieser Optionen verfügen über erweiterte Dialogfelder. Wenn Sie beispielsweise auf "Felder" klicken, wird eine Liste der verfügbaren Felder angezeigt. Durch Klicken auf die Schaltfläche "Weitere" wird das Dialogfeld "Felder" geöffnet. Sie können die Einstellungen so wählen, dass die erweiterten Dialogfelder standardmäßig geöffnet werden, wenn Sie auf eine der Optionen, z. B. "Felder", klicken. 1. So öffnen Sie die erweiterten Dialogfelder per Voreinstellung Klicken Sie auf die Schaltfläche Einstellungen. Das Dialogfeld "Einstellungen" wird angezeigt. 2. Wählen Sie auf der Registerkarte Anwendung die Option Erweitertes Dialogfeld immer anzeigen. 3. Klicken Sie auf Anwenden und anschließend auf OK, um das Dialogfeld zu schließen. Anzeigen von Feldnamen und beschreibungen Je nach Art des bearbeiteten Berichts ziehen Sie es möglicherweise vor, die Namen der Berichtfelder, die Feldbeschreibungen oder beides anzuzeigen. In der Standardeinstellung werden nur die Feldnamen angezeigt. Sie können diese Einstellung ändern, so dass nur die Feldbeschreibungen oder aber zusätzlich die Namen angezeigt werden. 1. So legen Sie die Anzeige von Feldern fest Klicken Sie auf die Schaltfläche Einstellungen. Das Dialogfeld "Einstellungen" wird angezeigt. 2. Klicken Sie auf der Registerkarte Anwendung ggf. auf die folgenden Optionen: • • • 3. Feldnamen anzeigen. Feldbeschreibungen anzeigen. Feldnamen und -beschreibungen anzeigen. Klicken Sie auf Anwenden und anschließend auf OK, um das Dialogfeld zu schließen. Crystal Report Explorer-Anwenderhandbuch 97 6 6 Festlegen von Anwendereinstellungen Festlegen der Zeilenanzahl im Datenraster Festlegen der Zeilenanzahl im Datenraster Sie können festlegen, wie viele Datenzeilen auf der Registerkarte "Daten" angezeigt werden. 1. So legen Sie die Zeilenanzahl im Datenraster fest Klicken Sie auf die Schaltfläche Einstellungen. Das Dialogfeld "Einstellungen" wird geöffnet. 2. Geben Sie auf der Registerkarte "Andere" im Feld Zeilen pro Stapel die Anzahl der Zeilen ein, die angezeigt werden sollen. 3. Klicken Sie auf OK. Ändern des Aussehens der Registerkarte "Entwurf" Sie können das Aussehen der Registerkarte "Entwurf" verändern. Die Registerkarte "Entwurf" enthält die Abschnitte, aus denen sich Ihr Bericht zusammensetzt. Es handelt sich hierbei um folgende Abschnitte: • • • • • Kopfbereich des Berichts Seitenkopf Details Seitenfuß Fußbereich des Berichts Sie können auswählen, wie diese Abschnitte angezeigt werden, wenn Sie auf die Registerkarte "Entwurf" klicken. Es stehen folgende Optionen zur Auswahl: 98 Alle geöffnet Jeder Abschnitt ist per Voreinstellung geöffnet. Details geöffnet Nur der Abschnitt "Details" ist geöffnet. Alle geschlossen Jeder Abschnitt ist per Voreinstellung geschlossen. Crystal Report Explorer-Anwenderhandbuch Festlegen von Anwendereinstellungen Ändern des Aussehens der Registerkarte "Entwurf" 1. So ändern Sie das Aussehen der Registerkarte "Entwurf" Klicken Sie auf die Schaltfläche Einstellungen. Das Dialogfeld "Einstellungen" wird angezeigt. 2. Klicken Sie auf der Registerkarte Andere auf die gewünschte Einstellung. 3. Klicken Sie auf OK. Um den Entwurf des Berichtlayouts zu vereinfachen, können Sie auf der Registerkarte "Entwurf" ein Gitternetz einblenden. Auf diese Weise ist es einfacher, Berichtobjekte aneinander auszurichten. Außerdem können Sie die Berichtobjekte im Bereich "Entwurf" am Gitternetz ausrichten, um das Ausrichten von Objekten zu vereinfachen. Das Gitternetz wird nur auf der Registerkarte "Entwurf" angezeigt. Im endgültigen Bericht ist es nicht sichtbar. 1. So blenden Sie das Gitternetz auf der Registerkarte "Entwurf" ein Klicken Sie auf die Schaltfläche Einstellungen. Das Dialogfeld "Einstellungen" wird angezeigt. 2. Klicken Sie dann auf der Registerkarte Andere auf Gitternetz auf der Registerkarte "Entwurf" anzeigen. 3. Klicken Sie auf OK. 1. So richten Sie Berichtobjekte am Gitternetz aus Klicken Sie auf die Schaltfläche Einstellungen. Das Dialogfeld "Einstellungen" wird angezeigt. 2. Klicken Sie dann auf der Registerkarte Andere auf Am Raster ausrichten im Entwurfsmodus. 3. Klicken Sie auf OK. Crystal Report Explorer-Anwenderhandbuch 99 6 6 Festlegen von Anwendereinstellungen Ändern des Aussehens der Registerkarte "Entwurf" 100 Crystal Report Explorer-Anwenderhandbuch Kapitel Referenz zur Crystal-Syntax 7 Referenz zur Crystal-Syntax Crystal-Syntax im Überblick Crystal-Syntax im Überblick Crystal Reports bietet Unterstützung für Formeln, die sowohl in der Crystalals auch in der Basic-Syntax erstellt wurden. Wenn Sie unter Verwendung von Crystal Reports Explorer Berechnungen hinzufügen oder ändern, müssen Sie jedoch Crystal-Syntax verwenden. Grundlagen der Crystal-Syntax Ergebnis einer Formel Das Ergebnis einer Formel bzw. der Wert, der ausgegeben oder ausgedruckt wird, wenn die Formel in einen Bericht eingefügt wird, wird als der von der Formel zurückgegebene Wert bezeichnet. Jede Formel in Crystal Reports muss einen Wert zurückgeben. Die folgende Beispielformel in einfacher Crystal-Syntax gibt den Wert 10 zurück: 10 Der Wert, der von einer Formel zurückgegeben wird, kann einer der sieben unterstützten einfachen Datentypen sein. Bei diesen einfachen Datentypen handelt es sich um Zahl (Number), Währung (Currency), Zeichenfolge (String), Boolesch (Boolean), Datum (Date), Uhrzeit (Time) und DatumUhrzeit (DateTime). Hinweis: Darüber hinaus unterstützt Crystal Reports Bereichstypen und Array-Typen, die jedoch nicht von Formeln zurückgegeben werden können. Nehmen wir beispielsweise an, eine Firma schließt beim Versand von Bestellungen mit einem Wert von über 1.000 € grundsätzlich eine Transportversicherung ab, für Aufträge mit niedrigerem Bestellwert dagegen nicht: //Eine Formel, die einen Zeichenfolge-Wert zurückgibt If {Aufträge.Auftragssumme} >= 1000 Then "Versicherter Versand" Else "Normaler Versand" Tipp: Der Text nach den zwei Schrägstrichen ist ein Kommentar für jeden, der diese Formel liest, und wird als solcher vom Crystal-Syntax-Compiler ignoriert. Die oben angegebene Formel gibt die Zeichenfolge „Versicherter Versand“ zurück, falls der Wert des Datenbankfeldes {Aufträge.Auftragssumme} größer oder gleich 1.000 ist, und bei allen niedrigeren Werten wird die Zeichenfolge „Normaler Versand“ zurückgegeben. 102 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Kommentare Bei der Crystal-Syntax wird nicht zwischen Groß- und Kleinschreibung unterschieden Das Schlüsselwort Then könnte beispielsweise auch then oder THEN geschrieben werden. Das gilt für alle Variablennamen, Funktionen und Schlüsselwörter, die in einer in Crystal-Syntax geschriebenen Formel verwendet werden. Hinweis: Die einzige Ausnahme zu dieser Regel bilden die Zeichenfolgewerte. Die Zeichenfolge „Hallo“ ist keineswegs identisch mit der Zeichenfolge „hallo“. Übung anhand der Musterdatenbank Xtreme Viele der Beispiele dieses Kapitels beziehen sich auf die Musterdatenbank Xtreme. Diese Datenbank ist in der Anwendung Crystal Reports enthalten. Suchen Sie im Verzeichnis"Samples\De" nach dem Datenbankordner mit der Datenbank Xtreme. Kommentare Formelkommentare sind Anmerkungen, die in die Formel geschrieben werden, um Aufbau und Funktionsweise der Formel zu erklären. Kommentare werden nicht ausgegeben oder gedruckt und haben keine Auswirkung auf die Formel, sie werden jedoch im Formula Workshop angezeigt. Mit Hilfe von Kommentaren können Sie den Zweck und die Einzelschritte einer Formel erklären. Kommentare fangen mit zwei Schrägstrichen (//) an, denen der Text des Kommentars folgt. Alles, was nach den Schrägstrichen auf derselben Zeile steht, wird als Teil des Kommentars behandelt: //Die Formel gibt die Zeichenfolge "Hallo" zurück //Dies ist ein weiterer Kommentar "Hallo" //Kommentare können am Ende einer Zeile hinzugefügt werden //Kommentare können hinter dem Formeltext stehen Felder Auf viele Felder, die Sie beim Erstellen Ihres Berichts verwenden, können Sie auch in Ihren Formeln verweisen. So können Sie in einer Formel beispielsweise Datenbank-, Parameter-, Laufende Summen-, SQLAusdrucks-, Gruppenergebnis- und Gruppennamenfelder verwenden. Sie können außerdem auch auf andere Formelfelder verweisen. Crystal Report Explorer-Anwenderhandbuch 103 7 7 Referenz zur Crystal-Syntax Felder Das einfachste Verfahren, ein Feld in einen Bericht einzufügen, besteht darin, in der Struktur "Berichtfelder" auf einen Feldnamen doppelzuklicken. Dadurch wird sichergestellt, dass die richtige Syntax für das Feld verwendet wird. Aussehen von Feldern in Formeln Die Namen von Datenbank-, Parameter-, Formel-, Laufende Summe- und SQL-Ausdrucksfeldern werden in geschweifte Klammern gefasst. Die Namen von Datenbankfeldern werden der Datenbank entnommen. Hier ein Beispiel: Datenbankfeld: {Angestellter.Nachname} Die Namen der Parameter-, Formel-, Laufende Summe- und SQLAusdrucksfelder werden angegeben, wenn die Felder erstellt werden. • Die Namen von Parameterfeldern enthalten außerdem ein Fragezeichen: {?mein Parameterfeld}. • Die Namen von Formelfeldern enthalten ein @-Zeichen: {@eine weitere Formel}. • Die Namen von Laufende Summe-Feldern enthalten ein Nummernzeichen: {#meine laufende Summe}. • Die Namen von SQL-Ausdrucksfeldern enthalten ein Prozentzeichen: {%mein SQL-Ausdruck}. Die Namen von Gruppenergebnis- und Gruppennamenfeldern sehen wie Funktionsaufrufe aus. Tatsächlich sind sie jedoch Kurzschreibweisen für Berichtsfelder. • Gruppenergebnisfeld "Sum": Sum({Aufträge.Auftragssumme}, {Aufträge.Versand durch}). • Gruppennamenfeld: Gruppenname({Aufträge.Versand durch}). Beispielformeln mit Feldern Die Formel in diesem Beispiel verwendet die Xtreme-Datenbank. Ermitteln Sie, wie viele Tage zwischen Bestellungsaufgabe und Versandzeitpunkt liegen, indem Sie einfach den Inhalt des Datenbankfeldes Versanddatum vom Inhalt des Datenbankfeldes Auftragsdatum abziehen: //Eine Formel mit Datenbankfeldern {Aufträge.Versanddatum} - {Aufträge.Auftragsdatum} Um den Gesamtwert eines angegebenen Produkts, das bestellt wurde, zu ermitteln, multiplizieren Sie dessen Einzelpreis mit der Bestellmenge: {Bestelldetail.Einzelpreis} * {Bestelldetail.Menge} So errechnen Sie einen Verkaufspreis in Höhe von 80 Prozent des ursprünglichen Einzelpreises: {Bestelldetail.Einzelpreis} * 0.80 104 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Ausdrücke Ausdrücke Ein Ausdruck ist eine Kombination von Schlüsselwörtern, Operatoren, Funktionen und Konstantenwerten, die einen Wert eines gegebenen Typs ergeben. Hier ein Beispiel: //Ein Ausdruck, der den Zahlenwert 25 ausgibt 10 + 20 - 5 //Ein Ausdruck, der den folgenden Zeichenfolgenwert ausgibt: //"Dies ist eine Zeichenfolge." "Dies ist eine Zeichenfolge." Eine in Crystal-Syntax geschriebene Formel besteht aus einer Folge von Anweisungen. Der Wert des endgültigen Ausdrucks ist der Wert, der von der Formel zurückgegeben wird, sowie das, was gedruckt wird. Jeder Ausdruck muss vom vorhergehenden Ausdruck durch ein Semikolon (;) abgetrennt sein. Mehrfachausdrücke In der Regel belegt jeder Ausdruck eine Zeile. Sie können mit dem Ausdruck jedoch auch in der nächsten Zeile fortfahren, wenn Sie mehr Platz benötigen. Die obenstehende Formel besteht aus 5 Ausdrücken. Sie gibt den Zahlenwert 25 zurück, da dies der Wert des letzten Ausdrucks in der Formel ist. Beispiel //Beispiel für Ausdrücke //Erster Ausdruck. Sein Wert ist der //Zahlenwert 30 10 + 20; //Zweiter Ausdruck. Sein Wert ist die Zeichenfolge //"Hallo Welt". Er erstreckt sich über zwei Zeilen. "Hallo " + "Welt"; //Dritter Ausdruck. Sein Wert ist der Zahlentyp {Bestelldetail.Menge} * 2 - 5; //Vierter Ausdruck. Sein Wert ist der Zeichenfolgentyp If {Bestelldetail.Menge} > 1 Then "mehrere Einheiten" Else "eine Einheit"; //Fünfter und letzter Ausdruck. Sein Wert ist der //Zahlenwert 25 20 + 5 Nach dem letzten Ausdruck in der Formel kann ebenfalls ein Semikolon gesetzt werden, dies ist jedoch optional. Die obenstehende Formel hätte beispielsweise folgendermaßen enden können: 20 + 5; Crystal Report Explorer-Anwenderhandbuch 105 7 7 Referenz zur Crystal-Syntax Ausdrücke Einige der Beispielformeln im Abschnitt „Ausdrücke“ auf Seite 105 enthalten keine Semikolons. Nach dem letzten Ausdruck aber ist ein Semikolon optional. Viele Formeln in Crystal-Syntax können als ein einziger Ausdruck geschrieben werden. Nach der Zeichenfolge „mehrere Einheiten“ steht kein Semikolon. Tatsächlich meldet das Programm einen Fehler, wenn Sie hier ein Semikolon setzen. Ein Semikolon trennt zwei Ausdrücke voneinander; das Else "eine Einheit"; ist jedoch kein separater Ausdruck. Es kann nicht getrennt vom "If" stehen. Es ist vielmehr ein integraler Bestandteil des If-Ausdrucks, da es den Wert beschreibt, den der If-Ausdruck unter bestimmten Umständen zurückgibt. Hinweis: Das hier angegebene Beispiel ist kein praktisches Beispiel, da die vier ersten Ausdrücke in der Formel keine Auswirkung auf den letzten Ausdruck hatten. So wirken sich frühere Ausdrücke auf spätere Ausdrücke aus Die Tatsache, dass es sich bei einer Formel in Crystal-Syntax um eine Folge von Ausdrücken handelt, deren Ergebnis der Wert des letzten Ausdrucks sind, stellt das wichtigste Konzept dar, das für ein Verständnis der CrystalSyntax begriffen werden muss. Aufgrund dieser auf Ausdrücken basierenden Syntax können Sie in sehr kurzen Formeln viel Funktionalität unterbringen. Beispiel //Erster Ausdruck. Er deklariert die Zahlvariable x //und gibt dann den Wert einer nicht initialisierten //Zahlvariable zurück, bei der es sich um 0 handelt. NumberVar(x); //Zweiter Ausdruck. Er weist x den Wert 30 zu //und gibt 30 zurück. x := 30 Bei dieser Formel würde ein Fehler ausgegeben, wenn der obere Ausdruck ausgelassen würde, weil sich der zweite Ausdruck auf die Zahlenvariable x bezieht. In diesem Fall verweist der zweite Ausdruck auf die Zahlenvariable x. Dem Programm gegenüber muss allerdings x deklariert sein, bevor ein Ausdruck, in dem x verwendet wird, korrekt verarbeitet werden kann. Im Allgemeinen werden Variablen dazu eingesetzt, dass frühere Ausdrücke in einer Formel sich auf den letzten Ausdruck auswirken. Weitere Informationen finden Sie unter „Variablen“ auf Seite 113. 106 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Zuweisung Verwenden des If-Ausdrucks Der Ausdruck If ist eine der am häufigsten verwendeten Funktionen der Crystal-Syntax. An seinem Beispiel ist auch ein Einblick in die Natur der Ausdrücke besonders gut möglich. Betrachten Sie den vorherigen Ausdruck als eine separate Formel. Diese Formel enthält nur einen einzigen Ausdruck und benötigt daher kein Semikolon: If {Bestelldetail.Menge} > 1 Then "mehrere Einheiten" Else "eine Einheit" Sie können diese Formel nun so ändern, dass entweder „mehrere Einheiten“ oder die Zahl 1 gedruckt wird. //Eine fehlerhafte Formel If {Bestelldetail.Menge} > 1 Then "mehrere Einheiten" Else 1 Bei dieser Formel erhalten Sie eine Fehlermeldung, weil der Wert des Ausdrucks manchmal der Zeichenfolgewert "mehrere Einheiten" und manchmal der Zahlwert 1 ist. Es handelt sich also um verschiedene Werttypen. „mehrere Einheiten“ ist ein Zeichenfolgewert und 1 ein Zahlenwert. In Crystal Reports darf der Wert eines Ausdrucks immer nur einen Typ aufweisen. Hinweis: Sie können in diesem Beispiel den Fehler mit Hilfe der Funktion CStr korrigieren, die den Zahlenwert 1 in einen Zeichenfolgewert konvertiert. Die Zahl 1 wird beispielsweise in die Zeichenfolge „1“ umgewandelt, indem CStr (1, 0) aufgerufen wird. //Eine richtige Formel If {Bestelldetail.Menge} > 1 Then "mehrere Einheiten" Else CStr (1, 0) //0 Dezimalstellen verwenden Weitere Informationen über den If-Ausdruck finden Sie unter „Steuerelementstrukturen“ auf Seite 131. Zuweisung Der Zuweisungsoperator ist ein Doppelpunkt, gefolgt von einem Gleichheitszeichen (:=). Crystal Report Explorer-Anwenderhandbuch 107 7 7 Referenz zur Crystal-Syntax Einfache Datentypen Beispiel //Zuweisung des Zahlenwertes 10 zu der Variablen x x := 10; //Zuweisung des Zeichenfolgewertes "hallo" zu //der Variablen mit dem Namen Gruß Gruß := "hallo"; Mit dem Gleichheitsoperator (=) wird überprüft, wann die beiden Werte gleich sind. Es ist ein häufiger Fehler, dass der Gleichheitsoperator verwendet wird, wenn eigentlich der Zuweisungsoperator erforderlich ist. Dadurch kann eine unverständliche Fehlermeldung oder auch gar keine Fehlermeldung ausgegeben werden, da die Verwendung des Gleichheitsoperators oft syntaktisch korrekt ist. Hier ein Beispiel: Gruß = "hallo"; In dieser Formel wird überprüft, ob der Wert der Variablen Gruß gleich dem Wert „hallo“ ist. Ist dies der Fall, so ist der Wert des Ausdrucks TRUE, wenn nicht, so ist der Wert des Ausdrucks FALSE. In jedem Fall ist dies ein durchaus korrekter Ausdruck in Crystal-Syntax (ausgehend von der Annahme, dass es sich bei "Gruß" um eine Zeichenfolgevariable handelt). Einfache Datentypen Die einfachen Datentypen von Crystal Reports heißen Zahl (Number), Währung (Currency), Zeichenfolge (String), Boolesch (Boolean), Datum (Date), Uhrzeit (Time) und DatumUhrzeit (DateTime). Zahl Geben Sie Zahlen ohne Tausendertrennzeichen oder Währungssymbole ein (generell sollten formatierte Zahlen zwar evtl. als Ergebnis einer Formel ausgegeben werden, aber nicht in der Formel enthalten sein). Beispiel 10000 -20 1.23 Währung Mit dem Dollar ($) erstellen Sie einen Währungswert. 108 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Einfache Datentypen Beispiel $10000 -$20 $1.23 Sie können stattdessen auch die Funktion CCur verwenden. Das erste C in CCur steht für Convert (Konvertieren), da diese Funktion ohne Weiteres dazu verwendet werden kann, Zahlenwerte in Währungswerte umzuwandeln. CCur (10000) CCur (-20) CCur (1.23) Zeichenfolge Zeichenfolgen dienen zum Aufnehmen von Text. Text muss in doppelte Anführungszeichen (") oder in Apostrophe (') gesetzt werden und kann nicht auf mehrere Zeilen verteilt werden. Wenn Sie innerhalb einer Zeichenfolge doppelte Anführungszeichen verwenden möchten, müssen Sie jedes doppelte Anführungszeichen zweimal schreiben. Ebenso können Sie einen Apostroph in einer Zeichenfolge, die mit Apostrophen eingefasst ist, verwenden, indem Sie zwei Apostrophe hintereinander eingeben. Beispiel "Dies ist eine Zeichenfolge." "123" "Das Wort ""Hallo"" steht in Anführungszeichen." 'Dies ist auch eine Zeichenfolge.' '123' 'Vorjahresumsatz' Wenn Sie links in der Zeichenfolge doppelte Anführungszeichen verwenden, müssen Sie dies auch rechts tun. Das Gleiche gilt für Apostrophe. Das folgende Beispiel ist also falsch: 'Keine gültige Zeichenfolge." Sie können einzelne Elemente oder Zeichenfolgenteile aus einer Zeichenfolge extrahieren, indem Sie die Position des Zeichens oder einen Bereich von Zeichenpositionen angeben. Dabei sind auch negative Werte zulässig; durch sie wird die Position ab dem Ende der Zeichenfolge angegeben. "Hallo" [2] //Gleich "a" "Hallo" [-5] //Gleich "h" "604-555-1234" [1 to 3] //Gleich "604" "abcdef" [-3 to -1] //Gleich "def" Sie können Teile von Zeichenfolgen auch mit den Funktionen Left, Right und Mid aus Zeichenfolgen extrahieren. Crystal Report Explorer-Anwenderhandbuch 109 7 7 Referenz zur Crystal-Syntax Einfache Datentypen Boolesch Die gültigen booleschen Werte heißen: True False Hinweis: Ja kann an Stelle von TRUE verwendet werden, und Nein an Stelle von FALSE. Datum, Uhrzeit und DatumUhrzeit Der Typ DateTime (DatumUhrzeit) kann Datum und Uhrzeit, nur das Datum oder auch nur die Uhrzeit enthalten. Er ist also ziemlich vielseitig. Der DateTyp (Datum) kann nur Datumsangaben aufnehmen, und der Time-Typ (Zeit) eignet sich nur für Zeitangaben. Date- und Time-Typ sind effizienter als der DateTime-Typ und eignen sich daher für Fälle, in denen der erweiterte Funktionsumfang und die größere Flexibilität des DateTime-Typs nicht benötigt wird. Durch Eingabe der für Datums- und Zeitangaben erforderlichen Literale selbst können DateTime-Werte direkt erstellt werden. Bei diesem Verfahren müssen die DateTime-Literale zwischen zwei #-Zeichen eingegeben werden. Es wird eine Vielzahl von Formaten unterstützt. Hinweis: Diese Datum-Uhrzeit-Literale können nicht auf mehrere Zeilen verteilt werden. Beispiele #8/6/1976 1:20 am# #August 6, 1976# #6 Aug 1976 13:20:19# #6 Aug 1976 1:30:15 pm# #8/6/1976# #10:20 am# Obwohl #10:20 am# wie ein Time-Typ und #8/6/1976# wie ein Date-Typ aussieht, gehören sie nicht zu diesen Typen. Beide gehören zum DateTimeTyp, was für alle Datum-Uhrzeit-Literale gilt. Beispielsweise ist #10:20 am# im Grunde nichts anderes als ein DateTime-Wert mit fehlendem Datumsbestandteil. Mit Hilfe von CTime (#10:20 am#) kann dieser Wert in einen Time-Typ umgewandelt werden. An Stelle von Datum-Uhrzeit-Literalen können Sie auch die Funktion CDateTime dazu verwenden, eine Zeichenfolge in einen DateTime-Wert zu konvertieren. Hier ein Beispiel: CDateTime ("8/6/1976 1:20 am") CDateTime ("10:20 am") 110 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Bereichs-Datentypen Allerdings besteht zwischen der Verwendung von Datum-Uhrzeit-Literalen und der oben genannten Funktion CDateTime ein wesentlicher Unterschied. Datum-Uhrzeit-Literale verwenden immer die Datumsformate der USA statt der Datumsformate des Gebietsschemas des Computers, auf dem Crystal Reports ausgeführt wird. Daher funktionieren die oben genannten Beispiele Datum-Uhrzeit-Literale auf jedem Computer. Andererseits können Sie beispielsweise auf einem französischen System auch Konstruktionen der folgenden Art verwenden: CDateTime ("22. August 1997") //Identisch mit: #Aug 22, 1997# Datum-Werte können mit CDate und Uhrzeit-Werte mit CTime gebildet werden: CDate ("Aug 6, 1969") CDate (1969, 8, 6) //Geben Sie das Jahr, den Monat und den Tag an //Konvertiert das DateTime-Argument in einen Date-Wert CDate (#Aug 6, 1969#) CTime ("10:30 am") CTime (10, 30, 0) //Geben Sie die Stunden, Minuten und Sekunden an CTime (#10:30 am#) Bereichs-Datentypen Bereiche dienen dazu, eine ganze Palette unterschiedlicher Werte zu verarbeiten. Bereichstypen sind für alle einfachen Typen außer für boolesche Werte (Boolean) verfügbar. Daher gibt es folgende Arten: Zahlenbereiche, Währungsbereiche, Zeichenfolgebereiche, Datumsbereiche, Zeitbereiche und DatumUhrzeit-Bereiche. Bereiche können Sie mit den Schlüsselwörtern To, _To, To_, _To_, UpTo, UpTo_, UpFrom und UpFrom_ erstellen. Im Allgemeinen wird To für Bereiche mit zwei Endpunkten und UpTo und UpFrom für Bereiche mit offenem Ende (mit nur einem Endpunkt) verwendet. Durch die Unterstriche wird angegeben, ob die Endpunkte innerhalb des Bereichs liegen oder nicht. Beispiele für Zahlenbereichswerte Der Zahlenbereich 2 bis 5 einschließlich 2 und 5 2 To 5 Der Zahlenbereich 2 bis 5 ohne 2, aber einschließlich 5 2 _To 5 Alle Zahlen kleiner als oder gleich 5 UpTo 5 Crystal Report Explorer-Anwenderhandbuch 111 7 7 Referenz zur Crystal-Syntax Bereichs-Datentypen Alle Zahlen kleiner als 5 UpTo_ 5 Beispiele für DateTime-Bereichswerte #Jan 5, 1999# To #Dec 12, 2000# UpFrom #Jan 1, 2000# Verwenden von Bereichen in Formeln In Crystal Reports gibt es 27 Funktionen zur Angabe von Datumsbereichen. Die Funktion LastFullMonth beispielsweise legt einen Datumswertebereich fest, der alle Datumsangaben vom Ersten bis zum Letzten des Vormonats umfasst. Wenn also das heutige Datum der 15. September 1999 ist, dann entspricht LastFullMonth dem Bereichswert CDate (#Aug 1, 1999#) To CDate (#Aug 31, 1999#). Bereiche werden häufig in If- und Select-Anweisungen verwendet. Im folgenden Beispiel werden die Noten "A" bis "F" von Schülern anhand ihrer Testergebnisse errechnet. Testergebnisse größer als oder gleich 90 erhalten die Note „A“, Ergebnisse von 80 bis 90 (ausschließlich 90) erhalten die Note „B“ usw. //Berechnen von Schülernoten Select {Schüler.Punktzahl} Case UpFrom 90 : "A" Case 80 To_ 90: "B" Case 70 To_ 80 : "C" Case 60 To_ 70 : "D" Standard: "F"; In diesem Beispiel wird der Select-Ausdruck verwendet, der im Abschnitt über die Steuerelementstrukturen noch detaillierter beschrieben wird. Mit Hilfe des Operators In können Sie prüfen, ob ein Wert innerhalb eines Bereichs liegt. Hier ein Beispiel: 5 In 2 To 10; //True 5 In 2 To_ 5; //False 5 In 2 To 5; //True Die Funktionen Maximum und Minimum können dazu verwendet werden, die Endpunkte eines Wertebereichs zu ermitteln: Maximum (2 To 10) //Gibt 10 zurück 112 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Array-Datentypen Array-Datentypen In Crystal Reports sind Arrays geordnete Listen von Werten desselben Typs. Diese Werte werden als Elemente des Arrays bezeichnet. Die Elemente eines Arrays können Werte eines einfachen Typs oder eines Bereichstyps sein. Arrays werden mit eckigen Klammern ([ ]) erstellt. Beispiele Ein Array mit drei Zahlenwerten: Das erste Element ist 10, das zweite 5 und das dritte 20. [10, 5, 20] Ein Array mit sieben Zeichenfolgenwerten: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"] Ein Array aus zwei DateTime-Bereichswerten: [#Jan 1, 1998# To #Jan 31, 1998#, #Feb 1, 1999# To #Feb 28, 1999#] Mit Hilfe von eckigen Klammern, in denen die Indexzahl des gewünschten Elements enthalten ist, können Sie einzelne Elemente aus einem Array extrahieren. Dieser Vorgang wird als Indizieren des Arrays bezeichnet: [10, 5, 20] [2] //Gleich 5 Zahlenbereiche können ebenfalls zum Indizieren von Arrays verwendet werden. Als Ergebnis erhalten Sie ein weiteres Array. Hier ein Beispiel: [10, 5, 20] [2 To 3] //Gleich [5, 20] Arrays sind besonders in Kombination mit Variablen nützlich. Diese Verwendung wird im Abschnitt „Variablen“ auf Seite 113 näher beschrieben. Mit Hilfe von Variablen können Sie die einzelnen Elemente eines Arrays ändern und seine Größe so umdeklarieren, dass es mehr Elemente aufnehmen kann. Sie können beispielsweise mit Hilfe einer auf Detailebene zugreifenden Formel Datenbankfeldwerte in eine globale Array-Variable einlesen und danach eine Formel in einem Gruppenfuß verwenden, um anhand dieser Werte eine Berechnung durchzuführen. Dadurch ist es möglich, viele verschiedene Gruppenergebnisoperationen durchzuführen, die den jeweiligen Anforderungen angepasst sind. Variablen In diesem Abschnitt werden die wichtigsten Komponenten von Variablen beschrieben. Sie erfahren außerdem, wie Sie Variablen erstellen und ihnen Werte zuweisen können. Crystal Report Explorer-Anwenderhandbuch 113 7 7 Referenz zur Crystal-Syntax Variablen Variablen im Überblick Eine Variable repräsentiert ein bestimmtes Datenelement (einen Wert) und fungiert als Platzhalter für diesen Wert. Wenn das Programm bei der Auswertung einer Formel auf eine Variable stößt, ermittelt es den Wert dieser Variablen und verwendet diesen Wert bei der Auswertung der Formel. Im Gegensatz zu einer Konstanten, die einen feststehenden, unveränderlichen Wert enthält, können einer Variablen mehrmals unterschiedliche Werte zugewiesen werden. Einer Variablen wird ein Wert zugewiesen, den sie beibehält, bis ihr zu einem späteren Zeitpunkt ein neuer Wert zugewiesen wird. Aufgrund dieser Flexibilität müssen Variablen zuerst deklariert werden, bevor sie verwendet werden können, damit Crystal Reports weiß, dass sie vorhanden sind und wofür sie vorgesehen sind. Beispiel Wenn Sie einen Bericht über Kunden nach Telefonvorwahl strukturieren möchten, könnten Sie dazu eine Variable erstellen, mit der aus den Faxnummern der Kunden die Vorwahlnummern extrahiert werden. Im folgenden Beispiel wird eine solche Variable namens Vorwahl verwendet: Local StringVar Vorwahl; areaCode := {Kunde.Fax} [1 To 3]; In der ersten Zeile dieses Beispiels wird die Variable deklariert, indem ihr ein Name und ein Typ zugewiesen wird. Das Datenbankfeld {Kunde.Fax} ist ein Zeichenfolgefeld, und durch [1 To 3] werden aus dem aktuellen Wert dieses Feldes die ersten drei Zeichen extrahiert. Anschließend wird dieser Wert der Variablen Vorwahl zugewiesen. Variablendeklarationen Bevor eine Variable in einer Formel verwendet werden kann, muss sie deklariert werden. Eine Variable kann Werte eines festgelegten Typs aufnehmen. Zugelassene Typen sind die sieben einfachen Typen (Zahl, Währung, Zeichenfolge, Boolesch, Datum, Uhrzeit und DatumUhrzeit), die sechs Bereichstypen (Zahlenbereich, Währungsbereich, Zeichenfolgebereich, Datumsbereich, Uhrzeitbereich und DatumUhrzeit-Bereich) und Variablen, die Arrays der genannten Typen aufnehmen können. Dies ergibt eine Gesamtzahl von 26 verschiedenen Typen, die einer Variablen zugewiesen werden können. Wenn Sie eine Variable deklarieren, legen Sie auch ihren Namen fest. Eine Variable kann nicht den Namen einer Funktion, eines Operators oder eines anderen Schlüsselworts erhalten, das in der Crystal-Syntax verwendet wird. 114 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Variablen Daher können Sie einer Variablen beispielsweise nicht den Namen Sin, Mod oder If geben, da Sin eine integrierte Funktion, Mod ein integrierter Operator und "If" ein integriertes Schlüsselwort ist. Wenn Sie Formeln im Formula Workshop eingeben, werden die Namen der integrierten Funktionen und Operatoren sowie alle weiteren Schlüsselwörter in einer anderen Farbe hervorgehoben, damit Sie leicht erkennen können, ob der eingegebene Variablenname einen Konflikt verursacht. Sobald eine Variable deklariert wurde, kann sie in einer Formel verwendet werden. Sie können ihr jetzt beispielsweise einen Initialisierungswert zuweisen: Local NumberVar x; //Deklariert x als Zahlenvariable x = 10; //Zuweisung des Wertes 10 zu x Hinweis: Das Schlüsselwort zur Deklarierung der Zahlenvariable hat ein Var am Ende stehen. Diese Endung haben alle Variablentypen in der CrystalSyntax. Eine Variable kann nur Werte eines einzigen Typs aufnehmen. Wenn eine Variable z. B. einen Zahlenwert enthält, kann sie später nicht dazu verwendet werden, eine Zeichenfolge aufzunehmen. Beispiel Local StringVar y; y := "Hallo"; //OK - die Funktion Length erfordert ein Zeichenfolgenargument Length (y); //Fehler - y kann nur Zeichenfolge-Werte aufnehmen y := #Jan 5, 1993#; //Fehler - y kann nur Zeichenfolge-Werte aufnehmen y := ["a", "bb", "ccc"]; //'Fehler - die Sin-Funktion erwartet als Argument eine Zahl Sin (y); Sie können die Deklaration einer Variablen und die Zuweisung eines Wertes in einem einzigen Ausdruck kombinieren. Hier ein Beispiel: Local Local Local Local NumberVar StringVar DateVar z NumberVar x := 10 + 20; y := "Hallo" + " " + "Welt"; := CDate (#Sept 20, 1999#); Range gradeA := 90 To 100; Dies ist sehr nützlich, denn es ist effizienter und hilft, den häufigen Fehler der falschen Initialisierung von Variablen zu vermeiden. Hier sind noch einige Beispiele für das Deklarieren und Initialisieren von Bereichsvariablen: Local NumberVar Range note1; Local DateVar Range quartal; gradeA := 90 To 100; quarter := CDate (1999, 10, 1) To CDate (1999, 12, 31); Crystal Report Explorer-Anwenderhandbuch 115 7 7 Referenz zur Crystal-Syntax Variablen Variablenbereiche Durch Gültigkeitsbereiche wird festgelegt, in welchem Maß die in einer Formel verwendeten Variablen auch von anderen Formeln genutzt werden können. In Crystal Reports gibt es drei Gültigkeitsbereiche: lokal, global und freigegeben. Jede Variable besitzt einen Gültigkeitsbereich, der beim Deklarieren der Variablen festgelegt wird. Lokale Variablen Variablen mit lokalem Geltungsbereich, die auch lokale Variablen genannt werden, werden mit dem Schlüsselwort Local deklariert, dem der Typenname (mit dem Suffix Var) und dann der Name der Variablen folgt, wie bereits in den obenstehenden Beispielen verdeutlicht. Lokale Variablen sind auf eine einzige Formel und eine einzige Auswertung dieser Formel beschränkt. Dies bedeutet, dass auf den Wert einer lokalen Variablen in einer Formel nicht über eine andere Formel zugegriffen werden kann. Beispiel //Formel A Local NumberVar x; x := 10; //Formel B EvaluateAfter ({@Formel A}) Local NumberVar x; x := x + 1; Durch den Funktionsaufruf EvaluateAfter ({@Formel A}) wird sichergestellt, dass Formel B erst nach Auswertung von Formel A ausgewertet wird. Formel A gibt den Wert 10 und Formel B den Wert 1 zurück. Von Formel B kann nicht auf x von Formel A zugegriffen werden. Deshalb kann der Wert 10 nicht verwendet und auch keine 1 hinzugefügt werden. Stattdessen wird der Standardwert für die nicht initialisierte lokale Variable x in Formel B (ist gleich 0) verwendet und der Wert 1 hinzugefügt, um 1 zu erhalten. Es ist auch zulässig, in verschiedenen Formeln lokale Variablen mit demselben Namen und unterschiedlichen Typenzuordnungen zu erstellen. Daher stehen beispielsweise die Typendeklarationen in den Formeln A und B nicht im Konflikt mit folgender Typenzuordnung: //Formel C Local StringVar x := "hallo"; Lokale Variablen stellen den effizientesten der drei Gültigkeitsbereiche dar. Sie führen auch nicht zu Konflikten mit den lokalen Variablen anderer Formeln. Aus diesen Gründen empfiehlt es sich, Variablen grundsätzlich als lokale Variablen zu deklarieren, sofern dies möglich ist. 116 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Variablen Globale Variablen Globale Variablen verwenden zum Speichern eines Wertes im gesamten Hauptbericht denselben Speicherblock. Dadurch steht dieser Wert allen Formeln zur Verfügung, in denen diese Variable deklariert wird, außer in den Formeln, die in Unterberichten enthalten sind. Eine globale Variable wird wie in folgendem Beispiel deklariert: Global StringVar y; Sie können das Schlüsselwort Global auch auslassen, da standardmäßig eine globale Variable erstellt wird: StringVar y; //Dasselbe wie: Global StringVar y; Wenn globale Variablen auch einfach zu deklarieren sind, ist es dennoch empfehlenswert, dass Sie sie nur dann deklarieren, wenn eine lokale Variable nicht ausreicht. Da die Werte globaler Variablen im gesamten Hauptbericht freigegeben sind, ist es nicht möglich, in einer Formel eine globale Variable eines bestimmten Typs und danach in einer anderen Formel eine gleichnamige globale Variable eines anderen Typs zu deklarieren. Beispiel //Formel A Global DateVar z; z := CDate (1999, 9, 18) //Formel B NumberVar z; z := 20 In diesem Fall gibt Crystal Reports beim Prüfen von Formel B oder beim Versuch, Formel B zu speichern, eine Fehlermeldung aus, falls Sie Formel A zuerst eingeben und speichern. Dies liegt daran, dass die Deklaration der globalen Variablen "z" als Zahlentyp mit ihrer vorherigen Deklaration in Formel A als Datumstyp in Konflikt steht. Arbeiten mit globalen Variablen Globale Variablen werden häufig für komplexe Berechnungen verwendet, bei denen die Ergebnisse einer Formel von der Gruppierung und dem Seitenlayout des ausgedruckten Berichts selbst abhängen. Dies wird erreicht, indem mehrere Formeln erstellt und in verschiedenen Bereichen des Berichts eingefügt und globale Variablen als Mittel eingesetzt werden, über das die verschiedenen Formeln Werte miteinander austauschen können. Beispiel //Formel C Global NumberVar x; x := 10; //Formel D Crystal Report Explorer-Anwenderhandbuch 117 7 7 Referenz zur Crystal-Syntax Variablen //Aufruf der Funktion WhileReadingRecords WhileReadingRecords; Global NumberVar x; x := x + 1 Wenn Formel C im Kopfbereich des Berichts und anschließend Formel D in einem Detailbereich eingefügt wird, wird Formel C vor Formel D ausgewertet. Formel C wird einmal ausgewertet, und danach wird Formel D für jeden im Detailbereich erscheinenden Datensatz ausgewertet. Formel C gibt 10 zurück. Für den ersten Detaildatensatz gibt Formel D den Wert 11 zurück. Dies liegt daran, dass der Wert 10 von x beibehalten wurde, so wie er von Formel C festgelegt wurde. Durch Formel D wird zu diesem Wert der Wert 1 addiert. Dadurch ergibt sich für x der Wert 11, der auch zurückgegeben wird. Für den zweiten Detaildatensatz gibt Formel D den Wert 12 zurück, wobei zu dem ursprünglich beibehaltenen Wert von x (ist gleich 11) der Wert 1 addiert wird. Dieser Prozess wird für die verbleibenden Detaildatensätze fortgesetzt. Durch den Aufruf der Funktion WhileReadingRecords wird Crystal Reports angewiesen, beim Einlesen der Datensätze des Berichts für jeden Datensatz die Formel D neu auszuwerten. Andernfalls würde das Programm vor dem Einlesen der Datensätze aus der Datenbank die Formel automatisch nur ein einziges Mal auswerten, da in der Formel keine Datenbankfelder enthalten sind. Danach würde die Formel jedes Mal den Wert 11 zurückgeben, anstatt 11, 12, 13 usw., wenn die nächsten Datensätze verarbeitet werden. Wenn die Anweisung x := x + 1 durch x := x + {Bestelldetail.Menge} ersetzt wird, entsteht der Effekt einer laufenden Summe, die auf {Bestelldetail.Menge} beruht, jedoch aufgrund von Formel C nicht bei 0, sondern bei 10 beginnt. In diesem Fall können Sie den Aufruf von WhileReadingRecords übergehen. Er findet automatisch statt, da die Formel ein Datenbankfeld enthält. Freigegebene Variablen Freigegebene Variablen verwenden denselben Speicherblock, um den Wert einer Variablen im gesamten Hauptbericht und in allen zugehörigen Unterberichten zu speichern. Dadurch sind freigegebene Variablen noch allgemeingültiger als globale Variablen. Wenn eine freigegebene Variable verwendet werden soll, muss sie wie im folgenden Beispiel in einer Formel im Hauptbericht deklariert werden: Shared NumberVar x := 1000; Anschließend muss sie wie im nächsten Beispiel auch in einer Formel im Unterbericht deklariert werden: Shared NumberVar x; 118 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Variablen Damit eine freigegebene Variable verwendet werden kann, muss die Variable deklariert werden und einen Wert erhalten, bevor sie zwischen Hauptbericht und Unterbericht übergeben werden kann. Deklarieren von Array-Variablen Sie können Array-Variablen deklarieren, indem Sie nach dem Typnamen das Schlüsselwort Array eingeben. Beispiel //Deklarieren von x als globale Variable des //Zahlen-Arraytyps Global NumberVar Array x := [10 , 20, 30]; //Kosten ist eine globale Variable des Währungsarraytyps //Sie ist automatisch global, da der Geltungsbereich //(Lokal, Global oder Freigegeben) nicht festgelegt wurde. CurrencyVar Array cost := [$19.95, $79.50, $110.00, $44.79, $223.99]; //ZahlTage ist eine globale Variable des Datumsarraytyps Global DateVar Array payDays := [CDate(1999, 5, 15), CDate(1999, 5, 31)]; //y ist eine freigegebene Variable des ZeichenfolgebereichsArraytyps Shared StringVar Range Array y := ["A" To "C", "H" To "J"]; //Tage ist eine lokale Variable des Zeichenfolge-Arraytyps Local StringVar Array Tage; Tage := ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]; Arbeiten mit Array-Variablen Sie können den Elementen eines Arrays Werte zuweisen und die Werte der Elemente auch für andere Berechnungen verwenden: Beispiel StringVar Array x := ["hallo", "und", "tschüs"]; x [2] := "once"; //Jetzt ist x ["hallo", "nicht", "tschüss"] //Wenn sie kein Kommentar wäre, würde der untenstehende //Ausdruck eine Fehlermeldung auslösen, da das Array die Größe 3 hat //x [4] := "zap"; //Die Formel gibt die Zeichenfolge "Hallo" zurück UpperCase (x [1]) Mit Hilfe der Schlüsselwörter "Redim" und "Redim Preserve" kann die Größe eines Arrays geändert werden, wenn zusätzliche Informationen hinzugefügt werden sollen. Durch Redim wird zuerst der vorherige Inhalt des Arrays gelöscht, bevor seine Größe geändert wird, während durch Redim Preserve der vorherige Inhalt beibehalten wird. Crystal Report Explorer-Anwenderhandbuch 119 7 7 Referenz zur Crystal-Syntax Variablen Local NumberVar Array x; Redim x [2]; //x ist jetzt [0, 0] x [2] := 20; //x ist jetzt [0, 20] Redim x [3]; //x ist jetzt [0, 0, 0] x [3] := 30; //x ist jetzt [0, 0, 30] Redim Preserve x [4] //x ist jetzt [0, 0, 30, 0] "fertig" Local StringVar Array a; Redim a [2]; //Zuweisen eines Wertes zum ersten Element von Array a a[1] := "Auf" a[2] := "Wiedersehen"; //Der Operator & kann zum Verketten von Zeichenfolgen verwendet werden a[1] & a[2] //Die Formel gibt die Zeichenfolge "Auf Wiedersehen" zurück Verwenden von Arrays mit For-Schleifen Arrays werden häufig in For-Schleifen verwendet. Im folgenden Beispiel wird das Array [10, 20, 30, ..., 100] erstellt und anschließend in einer For-Schleife verwendet. Weitere Einzelheiten finden Sie unter „For-Schleifen“ auf Seite 138. Local NumberVar Array b; Redim b[10]; Local NumberVar i; For i := 1 To 10 Do ( b[i] := 10 * i ); b [2] //Die Formel gibt die Zahl 20 zurück Standardwerte für die einfachen Typen Eine nicht initialisierte Variable erhält den für ihren Typ vorgesehenen Standardwert. Grundsätzlich gilt es als schlechter Programmierstil, sich auf die Zuweisung von Standardwerten für den jeweiligen Datentyp zu verlassen. Beispielsweise sollten Sie in Ihren Formeln alle lokalen Variablen initialisieren, in Formeln, die sich im Kopfbereich des Berichts befinden, alle globalen Variablen initialisieren, und in Formeln, die sich im Kopfbereich des Hauptberichts befinden, alle freigegebenen Variablen initialisieren. Wenn mit Hilfe des Schlüsselworts Redim die Größe eines Arrays geändert wird, werden die Elemente des Arrays mit Standardwerten für den jeweiligen Typ gefüllt. Ein Wissen über Standardwerte ist bei der Verwendung von Ifund Select-Ausdrücken überaus nützlich. 120 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Variablen Standardwerte Zahl 0 Währung $0 Zeichenfolge "" //Leere Zeichenfolge Datum Date (0, 0, 0) //Date-Nullwert Zeit Der Null-Uhrzeitwert. Wert einer nicht initialisierten Uhrzeitvariablen. DateTime Der Null-DateTime-Wert. Wert einer nicht initialisierten DateTime-Variablen. Hinweis: Es ist davon abzuraten, sich beim Erstellen von Formeln auf die automatische Zuweisung von Standardwerten zu nicht initialisierten Bereichsoder Array-Variablen zu verlassen. Automatische Typkonvertierung Grundsätzlich ist es in Crystal Reports nicht möglich, ohne expliziten Gebrauch einer Typkonvertierungsfunktion Werte eines bestimmten Typs zu verwenden, wenn Werte eines anderen Typs erwartet werden. Hier ein Beispiel: Local StringVar PostleitZahl; //Fehler - Zuweisung eines Zahlenwertes zu einer Zeichenfolgevariablen postalCode := 10025; //OK - Verwenden der Typkonvertierungsfunktion CStr, //um "10025" zu erstellen postalCode := CStr (10025, 0); Es gibt jedoch einige Konvertierungen, die automatisch durchgeführt werden: • • • Zahl zu Währung Datum zu DatumUhrzeit Konvertierung eines einfachen Typs in einen Bereichswert desselben einfachen Typs Crystal Report Explorer-Anwenderhandbuch 121 7 7 Referenz zur Crystal-Syntax Funktionen Die folgenden Beispielanweisungen sind korrekt: Local CurrencyVar Kosten; //Identisch mit: cost := $10 cost := 10; Local DateTimeVar Auftragsdatum; //Identisch mit: orderDate := CDateTime (1999, 9, 23, 0, 0, 0) orderDate := CDate (1999, 9, 23); Local NumberVar Range einBereich; //Identisch mit: aRange := 20 To 20 aRange := 20; Local NumberVar Range Array einBereichsArray; //Identisch mit: aRangeArray := [10 To 10, 20 To 25, 2 To 2] aRangeArray := [10, 20 To 25, 2]; Hinweis: In umgekehrter Richtung ist diese Konvertierung jedoch nicht möglich. Hier ein Beispiel: Local NumberVar num; num := 5 + $10; //Fehler //OK - Konvertierung zum Zahlentyp durch die CDbl-Funktion num := CDbl (5 + $10) //ToNumber könnte ebenfalls verwendet werden 5 wird in 5 $ konvertiert und zu 10 $ addiert, was 15 $ ergibt. Dieser Währungswert kann jedoch nicht automatisch der Zahlenvariablen Zahl zugewiesen werden, da automatische Konvertierungen von Währung zu Zahl nicht zulässig sind. In ähnlicher Weise ist es möglich, einer Funktion, die ein Währungsargument erwartet, stattdessen ein Zahlenargument zu übergeben, da dieses Zahlenargument dabei automatisch in einen Währungswert umgewandelt wird. Umgekehrt ist es jedoch nicht möglich, einer Funktion, die ein Zahlenargument erwartet, ein Währungsargument zu übergeben, ohne dieses zuerst mit Hilfe der Funktion CDbl explizit zu einem Zahlenwert zu konvertieren. Funktionen Wenn Sie in einer Formel eine Funktion verwenden, geben Sie den Namen der Funktion ein und übergeben die erforderlichen Argumente. Die Funktion Length beispielsweise benötigt ein Zeichenfolgenargument und berechnet anschließend die Länge der übergebenen Zeichenfolge. Local StringVar x := "hallo"; Length (x) //Die Formel gibt die Zahl 5 zurück Wenn einer Funktion Argumente des falschen Typs übergeben werden, wird eine Fehlermeldung ausgegeben. Der Funktionsaufruf Length (3) führt beispielsweise zu einer Fehlermeldung, da Length keine Zahlenargumente akzeptiert. Einige Funktionen können mehrere Argumente oder Argumente unterschiedlichen Typs akzeptieren. So akzeptiert beispielsweise die 122 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Funktionen Funktion CDate zum Erstellen eines Date-Wertes ein einzelnes Zeichenfolgeelement oder auch drei Zahlenwerte mit der Jahres-, Monatsund Tagesangabe und kann diese Zahlenwerte in einen Date-Wert umwandeln. Siehe „Datum, Uhrzeit und DatumUhrzeit“ auf Seite 110. Beispiel mit der Funktion Mid Local StringVar x := "hallo"; Local StringVar y; //Beginnen Sie beim zweiten Zeichen, und gehen Sie zum Ende der Zeichenfolge y := Mid (x, 2); //y enthält jetzt "allo" //Beginnen Sie beim zweiten Zeichen, und extrahieren Sie ein Zeichen y := Mid (x, 2, 1); //y enthält jetzt "a" Die Funktionsklassen sind in folgende Gruppen eingeteilt: Mathematik, Gruppenergebnisse, Finanzen, Zeichenfolgen, Datum/Uhrzeit, Datumsbereiche, Arrays, Typkonvertierung, Programmierbefehle, Auswertungszeitpunkte, Druckstatus, Dokumenteigenschaften und Zusätzliche Funktionen. Es gibt auch einige Funktionen für Formeln für bedingte Formatierung. Nicht für die Berichterstellung spezifische Funktionen Die Gruppen Mathematik, Finanzen, Zeichenfolge, Datum/Uhrzeit, Typkonvertierung und Programmierbefehle bestehen hauptsächlich aus Funktionen, die nicht für die Berichterstellung spezifisch sind, sondern in jeder voll funktionsfähigen Programmierumgebung gefunden werden können. Die Funktionalität vieler dieser Funktionen ähnelt der gleichnamiger Funktionen oder Funktionen mit ähnlichen Namen in Visual Basic. Hinweis: Einige der Funktionen, die in der Crystal-Syntax verwendet werden können, sind in der Struktur Funktionen der Crystal-Syntax nicht aufgeführt. In diesem Fall handelt es sich um Entsprechungen anderer Crystal-SyntaxFunktionen, die in der Struktur bereits enthalten sind. Die Funktion Length ist beispielsweise die tradionelle Crystal-Syntaxfunktion zum Errechnen der Länge einer Zeichenfolge. Crystal-Syntax bietet aber auch Unterstützung für das Synonym Len. Len ist die Funktion der Visual Basic- und Basic-Syntax für diese Operation. Sie wurde aufgenommen, um Anwendern der Visual Basic- und Basic-Syntax das Schreiben oder Ändern von Formeln in der Crystal-Syntax zu erleichtern. Crystal Report Explorer-Anwenderhandbuch 123 7 7 Referenz zur Crystal-Syntax Funktionen Gruppenergebnisfunktionen In der Funktionenkategorie Gruppenergebnisse sind Funktionen zum Erstellen von Gruppenergebnisfeldern, z. B. folgende Funktionen enthalten: Sum({Aufträge.Auftragssumme}, {Aufträge.Versand durch}) Gruppenergebnisfelder werden normalerweise mit Hilfe der Dialogfelder Gruppenergebnis einfügen oder Gesamtergebnis einfügen erstellt. Sobald sie erstellt sind, werden sie in der Struktur Verfügbare Felder angezeigt und können in einer Formel verwendet werden, indem Sie in dieser Struktur auf sie doppelklicken. Sie können aber auch auf andere Weise erstellt werden. Sie können ein Gruppenergebnisfeld, das ausschließlich für Ihre Formel verwendet werden soll, auch erstellen, indem Sie die gewünschten Argumente einer geeigneten Gruppenergebnisfunktion übergeben. Allerdings müssen dabei alle Gruppen, auf die im Gruppenergebnisfeld verwiesen wird, bereits im Bericht enthalten sein. Datumsbereiche Diese Funktionskategorie wird im Abschnitt „Bereichs-Datentypen“ auf Seite 111 behandelt. Zu den in diesem Abschnitt beschriebenen Funktionen muss gesagt werden, dass die durch diese Funktionen generierten Datumsbereiche vom aktuellen Datum abhängig sind. Daher erhalten Sie, angenommen, das heutige Datum wäre der 18. September 1999, durch die Funktion LastFullMonth folgenden Datumsbereichswert: CDate(#Aug 1, 1999#) To CDate(#Aug 31, 1999#) Diese Funktionsweise ist oft vorteilhaft, aber was machen Sie, wenn Sie einen Datumsbereich anhand eines Datenbankfeldes wie {Aufträge.Auftragsdatum} ermitteln möchten? In diesem Fall können Sie stattdessen die Datum/Uhrzeit-Funktionen verwenden. Hier ein Beispiel: Local DateVar d := CDate ({Aufträge.Auftragsdatum}); Local DateVar Range db; dr := DateSerial (Year(d), Month(d) - 1, 1) To DateSerial (Year(d), Month(d), 1 - 1); //An diesem Punkt enthält db den Datumsbereichswert für //den letzten vollen Monat vor {Aufträge.Auftragsdatum} Dies ist mit der Funktion DateSerial einfach zu erreichen, da Sie sich dabei nicht um Sonderfälle zu kümmern brauchen. Mit dieser Funktion ist es grundsätzlich nicht möglich, ein ungültiges Datum zu erstellen. Beispielsweise ergibt DateSerial (1999, 1 - 1, 1) das Datum 1. Dezember 1998. Hinweis: Beachten Sie, dass in dem obenstehenden Beispiel {Aufträge.Auftragsdatum} in Wirklichkeit ein DateTime-Feld ist und daher die Funktion CDate verwendet wird, um den Feldwert durch Abschneiden des Uhrzeitbestandteils in ein Datum umzuwandeln. 124 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Funktionen Array-Funktionen Mit Array-Funktionen werden Gruppenergebnisse der Elemente eines Arrays berechnet. So gibt beispielsweise die Funktion Sum, die auf ein Array angewendet wird, die Summe der Elemente dieses Arrays zurück. Die folgende Formel gibt beispielsweise 100 zurück: Sum ([10, 20, 30, 40]) Auswertungszeitpunktfunktionen Zu diesen Funktionen gehören die berichtsspezifischen Funktionen BeforeReadingRecords, WhileReadingRecords, WhilePrintingRecords und EvaluateAfter. Mit diesen Funktionen können Sie in Crystal Reports festlegen, zu welchem Zeitpunkt Ihre Formel ausgewertet werden soll. Soll die Formel vor dem Einlesen der Datensätze aus der Datenbank ausgewertet werden oder beim Einlesen der Datensätze, aber noch vor dem Gruppieren, Sortieren und Zusammenfassen, oder soll sie erst beim Drucken des Berichts ausgewertet werden, wenn die Datensätze bereits gruppiert, sortiert und zusammengefasst sind? Generell wird auf Grundlage der Informationen, die in Ihrer Formel benötigt werden, von Crystal Reports automatisch ein geeigneter Auswertungszeitpunkt für die Formel festgelegt. Wenn eine Formel beispielsweise ein Datenbankfeld verwendet, kann die Formel erst nach dem Einlesen der Datensätze aus der Datenbank sinnvoll ausgewertet werden. Manchmal ist es jedoch erforderlich, eine Auswertung zu einem späteren Zeitpunkt als dem automatisch zugeteilten Zeitpunkt zu erzwingen, um die gewünschten Ergebnisse zu erhalten. Ein Beispiel dazu finden Sie unter „Globale Variablen“ auf Seite 117. Druckstatusfunktionen Diese Funktionen sind ebenfalls spezifisch für die Berichterstellung. Beispielsweise verweist die Angabe {Aufträge.Auftragsdatum} auf den Wert des Feldes im aktuellen Datensatz, während PreviousValue ({Aufträge.Auftragsdatum}) auf den Wert dieses Feldes im unmittelbar vorhergehenden Datensatz und NextValue ({Aufträge.Auftragsdatum}) auf den Feldwert im nächsten Datensatz verweist. Durch IsNull ({Aufträge.Auftragsdatum}) wird geprüft, ob das Feld einen Nullwert enthält. Weitere Beispiele sind die Funktionen Seitenzahl und GesamtSeitenZahl, mit denen Sie auf Seitenzahlenangaben Ihres Berichts zugreifen können. Crystal Report Explorer-Anwenderhandbuch 125 7 7 Referenz zur Crystal-Syntax Funktionen Funktionen für Dokumenteigenschaften Dies sind berichtsspezifische Funktionen, die das Berichtsdokument als Ganzes betreffen. Beispiele für solche Funktionen sind PrintDate und ReportTitle. Zusätzliche Funktionen Diese Funktionen befinden sich in UFLs (User Function Libraries). Eine UFL ist eine separate Dynamic Link Library oder ein Automations-Server, die bzw. den Sie selbst erstellen und die bzw. der von Crystal Reports dazu verwendet werden kann, Ihre selbsterstellten Funktionen zur Formelsprache hinzuzufügen. Zum Schreiben einer UFL sind weit mehr Kenntnisse erforderlich als zum Schreiben einer Formel in Basic- oder Crystal-Syntax. Ausführliche Informationen dazu finden Sie in der Hilfe von Crystal Reports für Entwickler. Hinweis: Wenn Sie UFLs verwenden, können Ihre Berichte nicht mehr so einfach wie bisher übertragen werden, da dann zusammen mit einem Bericht auch UFLs übertragen werden müssen. Funktionen für die bedingte Formatierung Wenn Sie eine Formel für bedingte Formatierung schreiben, werden oben in der Struktur Funktionen bestimmte zusätzliche Funktionen angezeigt, die Ihnen diese Aufgabe erleichtern sollen. Sie möchten das Feld {Kunde.Vorjahresumsatz} beispielsweise so formatieren, dass alle Umsätze über 100.000 € grün, alle Umsätze unter 15.000 € rot und alle übrigen Umsätze schwarz ausgedruckt werden. Beispiel // Erstes Beispiel für bedingte Formatierung If {Kunde.Vorjahresumsatz} > 100000 Then crGreen ElseIf {Kunde.Vorjahresumsatz} < 15000 Then crRed Else crBlack Da dies eine Funktion zum Formatieren der Schriftfarbe ist, wird in der Struktur Funktionen die Liste der Farbkonstanten angezeigt. In diesem Beispiel werden drei dieser Farbkonstanten verwendet: crGreen, crRed und crBlack. Sie könnten stattdessen auch die eigentlichen numerischen Werte der Farbkonstanten verwenden. Beispiel: crRed entspricht 255, und crGreen entspricht 32768. 126 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Funktionen Die Formel ist jedoch leichter zu verstehen, wenn Sie die Farbkonstanten verwenden. In der Crystal-Syntax haben alle Konstantenfunktionen das Präfix „cr“. Die Crystal-Syntax bietet aber noch immer Unterstützung für Konstantenfunktionen aus früheren Versionen ohne das Präfix „cr“. Statt „crRed“ können Sie also beispielsweise „Red“ verwenden. Durch die Verwendung des Präfixes „cr“ werden die Konstantenfunktionen jedoch organisiert, so dass die Verwendung empfehlenswert ist. Hinweis: Einige Formatierungsattribute verwenden keine Konstantenfunktionen. Wenn beispielsweise die Umsatzwerte des Feldes {Kunde.Vorjahresumsatz}, die unter 50.000 € liegen, nicht ausgedruckt werden sollen, könnten Sie für das Unterdrückungsattribut folgende Formel für bedingte Formatierung verwenden: //Zweites Beispiel für bedingte Formatierung If {Kunde.Vorjahresumsatz} < 50000 Then TRUE //Unterdrücken des Wertes Else FALSE //Keine Unterdrückung des Wertes Oder einfacher: //Drittes Beispiel für bedingte Formatierung //entspricht dem zweiten Beispiel {Kunde.Vorjahresumsatz} < 50000 Wenn der Vorjahresumsatz kleiner als 50.000 € ist, dann lautet der Ausdruck {Kunde.Vorjahresumsatz} < 50000 TRUE und gibt daher die Formel TRUE zurück. Wenn der Vorjahresumsatz jedoch größer als oder gleich 50.000 € ist, dann lautet der Ausdruck {Kunde.Vorjahresumsatz} < 50000 FALSE und gibt daher die Formel FALSE zurück. Vielseitig verwendbare bedingte Formatierungsfunktionen Es gibt drei vielseitig verwendbare konditionale Formatierungsfunktionen: • CurrentFieldValue • DefaultAttribute • GridRowColumnValue Diese Funktionen werden im oberen Bereich des Baums Funktionen angezeigt, sobald sie sinnvoll verwendet werden könnten. DefaultAttribute kann in jeder Formatierungsformel verwendet werden, CurrentFieldValue eignet sich für jede Formatierungsformel, in der ein Feldwert formatiert wird, und GridRowColumnValue kann in jeder Formatierungsformel verwendet werden, in der ein Feldwert in einer Kreuztabelle oder einem OLAP-Raster formatiert wird. Crystal Report Explorer-Anwenderhandbuch 127 7 7 Referenz zur Crystal-Syntax Operatoren Mit CurrentFieldValue ist es möglich, die Zellen einer Kreuztabelle oder eines OLAP-Rasters auf Grundlage ihres Wertes konditional zu formatieren, während Sie mit GridRowColumnValue die Zellen einer Kreuztabelle oder eines OLAP-Rasters auf Grundlage ihrer Diese beiden Funktionen sind in diesem Zusammenhang sehr wichtig, da es in der Formelsprache keine andere Möglichkeit gibt, auf die Werte dieser Felder zu verweisen. Wenn Kreuztabellenzellen mit Werten unter 50.000 unterdrückt werden sollen, können Sie wie in folgendem Beispiel vorgehen: //Viertes Beispiel für bedingte Formatierung CurrentFieldValue < 50000 Operatoren Arithmetische Operatoren Die arithmetischen Operatoren sind Addition (+), Subtraktion (-), Multiplikation (*), Division (/), Ganzzahlendivision (\), Prozent (%), Modulus (Mod), Negation (-) und Potenzierung (^). Arithmetische Operatoren werden dazu verwendet, Zahlen, numerische Variablen, numerische Felder und numerische Funktionen zu kombinieren, um als Ergebnis eine weitere Zahl zu erhalten. Beispiele //Ausstehende Vorzugswaren als prozentualer Anteil //am Gesamtwarenbestand {Finanzen.Vorzugswaren} % {Finanzen.Warenbestand}; //Die Quadratwurzel von 9, Sqr(9) ist 3. //Die Formel gibt 17 zurück 7 + 2 * 3 - 2 + Sqr(6 + 3) * Length("up"); Verarbeitungsreihenfolge Wenn Sie arithmetische Ausdrücke erstellen, in denen mehrere verschiedene Operatoren enthalten sind, spielt die Reihenfolge, in der die verschiedenen Elemente des Ausdrucks ausgewertet werden, eine wichtige Rolle. In der Regel wertet das Programm Ausdrücke von links nach rechts aus. Es befolgt jedoch auch die Präzedenzregeln der einfachen Mathematik. 128 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Operatoren Beispiel Multiplikationen und Divisionen werden zuerst, und zwar von links nach rechts, abgearbeitet; danach folgen Additionen und Subtraktionen. Beispiel: 5 + 10 * 3 = 5 + 30 = 35. Sie können diese Verarbeitungsreihenfolge durch Klammern ändern. Beispiel: (5 + 10) * 3 = 15 * 3 = 45. Falls Unklarheit über die Verarbeitungsreihenfolge besteht, sollten Sie die zusammengehörigen Elemente durch Klammern kennzeichnen. Liste der arithmetischen Operatoren, von höchster bis zu niedrigster Präzedenz • • • • • • Potenzierung (^) Negation (-) Multiplikation, Division und Prozent (*, /, %) Ganzzahlendivision (\) Modulus (Mod) Addition und Subtraktion (+, -) Vergleichsoperatoren Die Vergleichsoperatoren sind: Gleich (=), Ungleich (<>), Kleiner als (<), Kleiner als oder gleich (<=), Größer als (>) sowie Größer als oder gleich (>=). Vergleichsoperatoren werden in der Regel dazu verwendet, in einer Programmstruktur wie beispielsweise einer If-Anweisung Operanden mit einer Bedingung zu vergleichen. Vergleichsoperatoren haben als Gruppe eine niedrigere Priorität als arithmetische Operatoren. Daher sind Ausdrücke wie 2 + 3 < 2 * 9 identisch mit der Schreibweise (2 + 3) < (2*9). Boolesche Operatoren Für die booleschen Operatoren gilt, angefangen bei der höchsten Priorität, folgende Verarbeitungsreihenfolge: Not, And, Or, Xor, Eqv und Imp. Boolesche Operatoren werden in der Regel dazu verwendet, in Verbindung mit Vergleichsoperatoren Bedingungen für Steuerelementstrukturen zu erstellen. Boolesche Operatoren haben eine niedrigere Priorität als Vergleichsoperatoren. Daher ist der Ausdruck 2 < 3 And 4 >= -1 beispielsweise identisch mit (2 < 3) And (4 >= -1). Crystal Report Explorer-Anwenderhandbuch 129 7 7 Referenz zur Crystal-Syntax Operatoren NULL-Felder und Verwendungsweise von IsNull Grundsätzlich wird in Crystal Reports die Auswertung einer Formel sofort abgebrochen und kein Wert zurückgegeben, wenn das Programm beim Auswerten einer Formel auf ein Feld mit einem Nullwert stößt. Wenn Sie in Ihrer Formel mit Nullwert-Feldern arbeiten möchten, müssen Sie dazu eine der folgenden Spezialfunktionen verwenden, die für den Umgang mit Nullwerten vorgesehen sind: IsNull, PreviousIsNull oder NextIsNull. Beispiel Das Feld {Produkt.Farbe} enthält sowohl Namen von Grundfarben wie „Rot“ und „Schwarz“ als auch ausgefallene Farbbezeichnungen wie „Stahlgrau“ und „Juwelengrün“. Angenommen, Sie möchten eine Formel schreiben, in der für Grundfarben die Bezeichnung „Grundfarbe“ und für alle anderen Farben die Bezeichnung „Farbton“ ausgegeben wird. If InStr({Produkt.Farbe}, " ") = 0 Then formula = "Grundfarbe" Else formula = "Farbton" Mit dem Funktionsaufruf InStr wird in der Zeichenfolge {Produkt.Farbe} nach einem Leerzeichen gesucht. Falls ein Leerzeichen gefunden wird, gibt dieser Aufruf die Position des Leerzeichens zurück, andernfalls gibt er 0 zurück. Da die Grundfarben Wörter ohne Leerzeichen darstellen, gibt InStr den Wert 0 zurück. Bei einigen Produkten wie beispielsweise dem Guardian Kettenschloß wurde keine Farbangabe in den Datensatz aufgenommen, weshalb in solchen Fällen im Feld {Produkt.Farbe} dieses Datensatzes in der Datenbank ein Nullwert enthalten ist. Daher wird neben dem Datensatz mit dem Kettenschloß keine Farbkategorie ausgedruckt. Im folgenden Beispiel wird gezeigt, wie Sie das obenstehende Beispiel durch Verwendung von IsNull korrigieren können: If IsNull({Produkt.Farbe}) Or InStr({Produkt.Farbe}, " ") = 0 Then "Grundfarbe" Else "Farbton" In Bezug auf die Operatoren geschieht bei der Auswertung der Bedingung in Crystal Reports Folgendes: IsNull({Produkt.Farbe}) Or InStr({Produkt.Farbe}, " ") = 0 Zuerst wird IsNull ({Produkt.Farbe)) ausgewertet; wenn das Programm feststellt, dass diese Teilbedingung TRUE ist, weiß es, dass die gesamte Bedingung TRUE ist, und muss daher nicht mehr prüfen, ob die nächste Teilbedingung TRUE ist. 130 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Steuerelementstrukturen InStr({Produkt.Farbe}, " ") = 0 Mit anderen Worten, die Auswertung eines booleschen Ausdrucks von Crystal Reports wird abgebrochen, sobald das Programm die Ergebnisse des gesamten Ausdrucks ableiten kann. Im folgenden Beispiel wird die Formel davon abgehalten, eine Teilung durch Null durchzuführen, falls der Nenner zu 0 wird: Local NumberVar num; Local NumberVar denom; ... If denom <> 0 And num / denom > 5 Then ... Hinweis: In Visual Basic wird dieses Verfahren nicht unterstützt, da dort alle Teile eines booleschen Ausdrucks ausgewertet werden, auch diejenigen, die nicht ausgewertet werden müssten. Steuerelementstrukturen Bei Formeln ohne Steuerelementstrukturen wird beim Auswerten der Formel jede Anweisung genau einmal abgearbeitet. Die Anweisungen werden von der ersten Anweisung der Formel bis zur letzten in sequentieller Reihenfolge abgearbeitet. Mit Hilfe von Steuerelementstrukturen können Sie diese feststehende Abfolge ändern. Je nachdem, welche Steuerelementstruktur Sie wählen, können Sie abhängig davon, ob bestimmte Bedingungen erfüllt werden, eine Folge von Anweisungen überspringen oder mehrmals auswerten lassen. Steuerelementstrukturen sind das wichtigste Hilfsmittel, um betriebswirtschaftliche Abläufe auszudrücken, und werden in Standardberichtsformeln häufig dafür eingesetzt. If-Ausdrücke Die If-Anweisung ist eine der leistungsfähigsten Steuerelementstrukturen. Mit ihr können Sie einen Ausdruck auswerten, wenn eine Bedingung TRUE ist, und andernfalls einen anderen Ausdruck auswerten. Hinweis: • Die richtige Crystal-Syntax für If-Anweisungen lautet if <condition> then <then> else <else>, wobei <condition>, <then> und <else> als einziger Ausdruck angesehen werden. Wenn auf <then> oder <else> mehrere Ausdrücke folgen, konvertieren Sie sie in einen einzigen Ausdruck, indem Sie sie in Klammern einschließen. Hier ein Beispiel: Global stringVar lastValue; if {Branch_View.Branch_ID} = lastValue Crystal Report Explorer-Anwenderhandbuch 131 7 7 Referenz zur Crystal-Syntax Steuerelementstrukturen then (lastValue := {Branch_View.Branch_ID}; crRed;) Else (lastValue := {Branch_View.Branch_ID}; crBlack;) • Beim Formatieren mit Bedingungsformeln sollte stets das Schlüsselwort "Else" verwendet werden, da Werte, die die If-Bedingung nicht erfüllen, andernfalls möglicherweise nicht ihr ursprüngliches Format behalten. Dies können Sie verhindern, indem Sie die Funktion DefaultAttribute verwenden (If...Else DefaultAttribute). • Beim Erstellen von Datensatzauswahlformeln, die If-Ausdrücke enthalten, sollte stets das Schlüsselwort "Else" verwendet werden, da andernfalls möglicherweise unerwartete oder überhaupt keine Datensätze zurückgegeben werden. Eine Datensatzauswahl wie If {Parameterfeld} = "kleiner als 100" then {Feld} < 100" ergibt False und gibt keine Datensätze zurück. Um dieses Problem zu beheben, vervollständigen Sie die Formel mit Else True. Beispiel Eine Firma will allen Angestellten einen Bonus von 4 Prozent zuerkennen, nur die Angestellten der Verkaufsabteilung sollen einen Bonus von 6 Prozent erhalten. Diese Aufgabe können Sie durch folgende Formel lösen, in der eine If-Anweisung verwendet wird: //Erstes Beispiel für eine If-Anweisung If {Angestellter.Abteilung} = "Vertrieb" Then {Angestellter.Gehalt} * 0.06 Else {Angestellter.Gehalt} * 0.04 In diesem Beispiel wird nur dann, wenn die Bedingung {Angestellter.Abteilung} = "Vertrieb" TRUE ist, die Anweisung {Angestellter.Gehalt} * 0.06 verarbeitet. Andernfalls wird die Anweisung nach dem Schlüsselwort Else, nämlich {Angestellter.Gehalt} * 0.04 verarbeitet. Angenommen, ein anderes Unternehmen möchte Mitarbeitern einen Bonus von 4 % zuerkennen, der aber mindestens 1.000 € betragen soll. Die Vorgehensweise wird im folgenden Beispiel erläutert. Das folgende Beispiel zeigt, wie diese Aufgabe gelöst werden kann. Beachten Sie, dass in diesem Beispiel keine Else-Klausel enthalten ist, da sie keine Pflichtklausel ist und hier auch nicht benötigt wird. //Zweites Beispiel für eine If-Anweisung Local CurrencyVar bonus := {Angestellter.Gehalt} * 0.04; 132 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Steuerelementstrukturen If bonus < 1000 Then bonus := 1000; //Der letzte Ausdruck besteht einfach aus der Variablen 'bonus'. //Dadurch wird der Wert der Variablen zurückgegeben, der //das Ergebnis der Formel ist bonus Das zweite Beispiel kann aber auch mit einer Else-Klausel gestaltet werden: //Drittes Beispiel für eine If-Anweisung Local CurrencyVar bonus := {Angestellter.Gehalt} * 0.04; If bonus < 1000 Then 1000 Else bonus Angenommen, das Unternehmen aus dem vorherigen Beispiel möchte den Bonus auf 5.000 € begrenzen. In diesem Fall muss eine Else If-Klausel verwendet werden. Im folgenden Beispiel ist nur eine einzige ElseIf-Klausel enthalten, Sie können jedoch so viele wie nötig verwenden. Beachten Sie dabei aber, dass pro If-Ausdruck nur ein Else stehen kann. Die Else-Klausel wird nur dann abgearbeitet, wenn keine der If- oder ElseIf-Bedingungen erfüllt wird. //Viertes Beispiel für eine If-Anweisung Local CurrencyVar bonus := {Angestellter.Gehalt} * 0.04; If bonus < 1000 Then 1000 Else If bonus > 5000 Then 5000 Else bonus If-Beispiel Eine Firma möchte den Steuerbetrag schätzen, den ein Angestellter leisten muss, und eine entsprechende Mitteilung schreiben. Einkommen unter 8.000 € werden nicht besteuert, Einkommen von 8.000 bis 20.000 € werden mit 20 % besteuert, Einkommen von 20.000 bis 35.000 € werden mit 29 % besteuert, und Einkommen über 35.000 € werden mit 40 % besteuert. //Fünftes Beispiel für eine If-Anweisung Local CurrencyVar tax := 0; Local CurrencyVar Einkommen := {Angestellter.Gehalt}; Local StringVar Nachricht := ""; If Einkommen < 8000 Then ( Nachricht:= "zu keiner"; tax := 0 ) Else If Einkommen >= 8000 And Einkommen < 20000 Then ( Mitteilung := "zur niedrigsten"; tax := (income - 8000)*0.20 Crystal Report Explorer-Anwenderhandbuch 133 7 7 Referenz zur Crystal-Syntax Steuerelementstrukturen ) Else If Einkommen >= 20 000 And Einkommen < 35 000 Then ( Mitteilung := "zur mittleren"; tax := (20000 - 8000)*0.20 + (income - 20000)*0.29 ) Else ( Mitteilung := "zur höchsten"; tax := (20000 - 8000)*0.20 + (35000 - 20000)*0.29 + (income - 35000)*0.40 ); //Verwenden Sie zwei Dezimalstellen und einen Punkt als //Tausendertrennzeichen Local StringVar taxStr := CStr (tax, 2, "."); "Sie gehören " & Mitteilung & " Einkommensklasse. " & "Ihr Steuerbetrag wird auf " & taxStr & " geschätzt." Hinweis: Beachten Sie, wie die Verarbeitungslogik durch den Einsatz von Variablen vereinfacht wird. Achten Sie auch darauf, dass hier zwei Ausdrücke ausgeführt werden, falls eine der Bedingungen erfüllt wird. Durch einen Ausdruck wird die Variable tax und durch den zweiten die Variable message zugewiesen. Es ist häufig sinnvoll, bei Erfüllung einer Bedingung mehrere Anweisungen ausführen zu lassen. Weitere Einzelheiten über If-Ausdrücke Der If-Ausdruck ist ein Ausdruck. Das heißt, er liefert als Ergebnis einen Wert eines gegebenen Typs. Wenn es keinen Else-Satz gibt und die Bedingung nicht wahr ist, wird der Standardwert des gegebenen Typs zurückgegeben. Hier ein Beispiel: If Length ({Mitarbeiter.Vorname}) < 5 Then kurz Dieser If-Ausdruck gibt einen Zeichenfolgewert zurück. Dieser Zeichenfolgewert ist „kurz“, wenn der Vorname des Mitarbeiters weniger als 5 Buchstaben hat. Andernfalls wird eine leere Zeichenfolge „“ zurückgegeben. Hier noch ein anderes Beispiel für eine Formel: If Jahr({Aufträge.Auftragsdatum}) >= 1995 Then {Aufträge.Auftragsdatum} Bei Auftragsdaten vor dem Jahr 1995 gibt dieser If-Ausdruck den DateTimeNullwert zurück. Hier handelt es sich um einen DateTime-Wert und nicht um einen Date-Wert, da {Aufträge.Auftragsdatum} ein DateTime-Datenbankfeld ist. Der DateTime-Nullwert wird von Crystal Reports nicht ausgegeben. Falls die vorangehende Formel daher in einen Bericht eingefügt wird, bleibt das Formelfeld für Bestelldaten vor 1995 leer. Time- und Date-Nullwerte weisen ein ähnliches Verhalten auf. 134 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Steuerelementstrukturen Uhrzeit-Nullwerte und Datum-Nullwerte verhalten sich ähnlich. Hier ist ein Beispiel, das die Verwendung von Klammern verdeutlicht, damit mehr als ein Ausdruck als Ergebnis einer If-Bedingung ausgeführt wird. Ein Unternehmen erhebt eine Gebühr von 5 Prozent, wenn Bestellungen innerhalb von drei Tagen versandt werden, andernfalls eine Gebühr von 2 Prozent. Es sollen nach Bedarf Mitteilungen wie beispielsweise „Eilversand kostet 100,00 €“ oder „Regulärer Versand kostet 20,00 €“ gedruckt werden. Local StringVar Mitteilung; Local CurrencyVar Versand; If {Aufträge.Versanddatum} - {Aufträge.Auftragsdatum} <= 3 Then ( Mitteilung:= "Eilversand"; //Ein Semikolon am Ende der nächsten Zeile //ist optional ship := {Aufträge.Auftragssumme} * 0.05 ) //Hier darf kein Semikolon gesetzt werden Else ( Mitteilung:= "Normaler Versand"; ship := {Aufträge.Auftragssumme} * 0.02; ); //Das vorangestellte Semikolon ist erforderlich, um den //If-Ausdruck von dem letzten Ausdruck unten zu trennen Mitteilung & " kostet " & CStr (Versand) Wenn Ausdrücke mit Klammern zusammen gruppiert werden, wird die gesamte Gruppe als ein einziger Ausdruck angesehen. Seinen Wert und Typ erhält er vom Wert und Typ des letzten Ausdrucks in den Klammern. //Die Gruppe in Klammern als Ganzes hat den //Typ Währung ( //Der erste Ausdruck in den Klammern hat den //Typ Zeichenfolge Mitteilung:= "Eilversand"; //Der zweite und letzte Ausdruck in Klammern //hat den Typ Währung ship := {Aufträge.Auftragssumme} * 0.05; ) So gibt die folgende Formel beispielsweise einen Fehler aus, weil der ThenTeil des If-Ausdrucks einen Währungswert zurückgibt, während der Else-Teil einen Zeichenfolgenwert zurückgibt. Dies ist nicht zugelassen, da es sich bei dem If-Ausduck um einen Ausdruck handelt und er daher einen Wert von nur einem Typ zurückgeben muss. //Eine fehlerhafte Formel Local StringVar Mitteilung; Local CurrencyVar Versand; If {Aufträge.Versanddatum} - {Aufträge.Auftragsdatum} <= 3 Then Crystal Report Explorer-Anwenderhandbuch 135 7 7 Referenz zur Crystal-Syntax Steuerelementstrukturen ( Mitteilung:= "Eilversand"; ship := {Aufträge.Auftragssumme} * 0.05 ) Else ( //Die folgenden zwei Zeilen wurden miteinander vertauscht ship := {Aufträge.Auftragssumme} * 0.02; Mitteilung:= "Normaler Versand"; ); Mitteilung & " kostet " & CStr (Versand) Eine Möglichkeit, wie die fehlerhafte Formel korrigiert werden kann, ohne der Reihenfolge der Ausdrücke große Beachtung schenken zu müssen, besteht darin, den If-Ausdruck in jedem Zweig einen konstanten Wert desselben Typs zurückgeben zu lassen. Jetzt gibt der If-Ausdruck beispielsweise den Zahlenwert 0 zurück: //Korrigierte fehlerhafte Formel Local StringVar Mitteilung; Local CurrencyVar Versand; If {Aufträge.Versanddatum} - {Aufträge.Auftragsdatum} <= 3 Then ( Mitteilung:= "Eilversand"; ship := {Aufträge.Auftragssumme} * 0.05; 0 ) Else ( ship := {Aufträge.Auftragssumme} * 0.02; Mitteilung:= "Normaler Versand"; 0 ); Mitteilung & " kostet " & CStr (Versand) Select-Ausdrücke Die Select-Anweisung funktioniert ähnlich wie eine If-Anweisung. In einigen Fällen können jedoch mit Hilfe der Select-Anweisung übersichtlichere Formeln mit weniger Wiederholungen geschrieben werden. Im folgenden Beispiel für eine Select-Anweisung soll das Feld {Kunde.Fax} ausgewertet werden, um zu ermitteln, ob die Vorwahl für den amerikanischen Bundesstaat Washington (206, 360, 509) oder die Vorwahl für British Columbia in Kanada (604, 250) verwendet werden muss: //Erstes Beispiel für eine Select-Anweisung Select {Kunde.Fax}[1 To 3] Case "604", "250" : "BC" Case "206", "509", "360" : "WA" Standard: ""; 136 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Steuerelementstrukturen Der Ausdruck rechts neben dem Schlüsselwort Select wird als Auswahlbedingung bezeichnet. Im oben stehenden Beispiel lautet sie {Kunde.Fax}[1 To 3]. Der Select-Ausdruck versucht, den ersten Case zu finden, der mit der Select-Bedingung übereinstimmt, und führt dann den Ausdruck aus, der dem Doppelpunkt für diesen Case folgt. Der Standardfall wird zugewiesen, wenn keiner der vorhergehenden Fälle mit der SelectBedingung übereinstimmt. Beachten Sie bitte, dass auch hinter "Standard" ein Doppelpunkt steht. //Hat denselben Effekt wie das erste Beispiel für eine Select-Anweisung Local StringVar areaCode := {Kunde.Fax}[1 To 3]; If areaCode In ["604", "250"] Then "BC" Else If areaCode In ["206", "509", "360"] Then "WA" Else ""; Beispiel In dieser Formel wird die Anzahl von Oscar-Nominierungen, die ein Film erhalten hat, in die Kategorien "wenige", "etliche", "viele" oder "sehr viele" eingeteilt und Ihnen dabei ein kleine Andeutung von den Möglichkeiten vermittelt, die Ihnen bei den auf das Schlüsselwort Case folgenden Ausdruckslisten zur Verfügung stehen. //Zweites Beispiel für eine Select-Anweisung Select {Film.NOM} Case 1,2,3, Is < 1 : ( //Kann durch Verwendung von Klammern Ausdrucklisten //haben 10 + 20; "wenige" ) Case 4 To 6, 7, 8, 9 : "etliche" Case 10 : "viele" Standard: "sehr viele" Der Standard-Satz des Select-Ausdrucks ist optional. Wenn der StandardSatz fehlt und keiner der Fälle passt, gibt der Select-Ausdruck den Standardwert für seinen Ausdruckstyp zurück. Wenn in der oben stehenden Formel beispielsweise die Standardklausel ausgelassen und {Film.NOM} = 11 lauten würde, würde die leere Zeichenfolge "" zurückgegeben. Der SelectAusdruck ist ein Ausdruck, für den ähnliche Kommentare gelten, wie im Abschnitt Weitere Einzelheiten über If-Ausdrücke beschrieben. Crystal Report Explorer-Anwenderhandbuch 137 7 7 Referenz zur Crystal-Syntax Steuerelementstrukturen For-Schleifen Mit Hilfe von For-Schleifen können Sie eine Abfolge von Anweisungen mehrere Male auswerten lassen. Durch diese Funktionsweise unterscheiden sich For-Schleifen von If- und Select-Ausdrücken, bei denen während der Auswertung der Formel jeder Ausdruck vom Programm höchstens einmal durchlaufen wird. For-Schleifen sind am einfachsten zu verwenden, wenn Sie im Voraus genau wissen, wie oft die Anweisungen ausgewertet werden müssen. Die Syntax der For-Schleife in Beispielen Beispiel 1 Sie möchten die Zeichenfolge im Feld {Kunde.Kundenname} umkehren. Dadurch würde beispielsweise der Firmenname „City Cyclists“ zu „stsilcyC ytiC“ umgewandelt werden. //Erstes Beispiel für das Umkehren einer Zeichenfolge Local StringVar str := ""; Local NumberVar strLen := Length ({Kunde.Kundenname}); Local NumberVar i; For i = 1 To strLen Do ( Local NumberVar charPos := strLen - i + 1; str := str + {Kunde.Kundenname}[charPos] ); str Jetzt werden wir untersuchen, wie diese Formel arbeitet, indem wir davon ausgehen, dass im Feld {Kunde.Kundenname} zur Zeit der Firmenname „Clean Air“ enthalten ist. Der Variablen strLen wurde die Länge des Firmennamens „Clean Air“ zugewiesen, also 9 Zeichen. Die Variable i wird auch als For-Zähler bezeichnet, da sich ihr Wert mit jedem Durchlaufen der For-Schleife ändert. Sie dient also dazu, mitzuzählen, wie oft die Schleife durchlaufen wird. Die For-Schleife wird neunmal wiederholt, beim ersten Mal entspricht i dem Wert 1, beim zweiten Mal dem Wert 2, beim dritten Mal dem Wert 3 usw., bis i gleich 9 ist. Während der ersten Wiederholung wird das neunte Zeichen von {Kunde.Kundenname} an die leere Zeichenfolgevariable str angehängt. Nach dem ersten Durchlauf enthält diese also den Buchstaben „r“. Beim zweiten Durchlauf wird das achte Zeichen von {Kunde.Kundenname} an angefügt, wonach die Variable die Zeichenfolge „ri“ enthält. Dies wird fortgesetzt, bis nach dem neunten Durchlauf in der Variablen die Zeichenfolge „riA naelC“, also die umgekehrte Zeichenfolge, enthalten ist. 138 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Steuerelementstrukturen Beispiel Im Folgenden sehen Sie eine einfachere Variante der vorangehenden Formel, bei der eine Step-Klausel mit dem negativen Step-Wert -1 verwendet wird. Beim Beispiel „Clean Air“ entspricht „i“ bei der ersten Wiederholung 9, bei der zweiten 8, bei der dritten 7 usw. bis zum Wert 1 bei der letzten Wiederholung. //Zweites Beispiel für das Umkehren einer Zeichenfolge Local StringVar str := ""; Local NumberVar strLen := Length ({Kunde.Kundenname}); Local NumberVar i; For i := strLen To 1 Step -1 Do ( str := str + {Kunde.Kundenname}[i] ); str Beispiel In der einfachsten Version wird die integrierte Funktion StrReverse verwendet: //Drittes Beispiel für das Umkehren einer Zeichenfolge StrReverse ({Kunde.Kundenname}) Mit den integrierten Zeichenfolgefunktionen von Crystal Reports können viele der Aufgaben zum Verarbeiten von Zeichenfolgen durchgeführt werden, die bisher mit Hilfe einer For-Schleife oder eines anderen Schleifentyps gelöst wurden. Allerdings sind For-Schleifen beim Verarbeiten von Zeichenfolgen am vielseitigsten verwendbar und auch beim Verarbeiten von Arrays am leistungsfähigsten, was ausschlaggebend sein kann, wenn die geplante Verarbeitungsweise von den integrierten Funktionen nicht geleistet werden kann. Beispiel für eine For-Schleife Es folgt ein umfangreicheres Beispiel für die Möglichkeiten, die Crystal Reports für die Verarbeitung von Zeichenfolgen bietet. Die Cäsar-Chiffre ist ein einfacher Geheimcode, der Julius Cäsar zugeschrieben wird. In diesem Code wird jeder Buchstabe eines Wortes durch einen Buchstaben ersetzt, der im Alphabet fünf Stellen weiter hinten folgt. Dadurch wird zum Beispiel das Wort „Satz“ zu „Xfye“. Beachten Sie, dass der Buchstabe „z“ durch „e“ ersetzt wird. Da es nach „z“ keine weiteren 5 Buchstaben im Alphabet gibt, wird wieder am Anfang begonnen. In der folgenden Formel wird die Cäsar-Chiffre auf das Feld {Kunde.Kundenname} in der Datenbank Xtreme angewendet: //Die //Die Local Local Cäsar-Chiffre zu verschlüsselnde Zeichenfolge StringVar inString := {Kunde.Kundenname}; NumberVar shift := 5; Crystal Report Explorer-Anwenderhandbuch 139 7 7 Referenz zur Crystal-Syntax Steuerelementstrukturen Local StringVar outString := ""; Local NumberVar i; For i := 1 To Length(inString) Do ( Local StringVar inC := inString [i]; Local StringVar outC; Local BooleanVar isChar := LowerCase(inC) In "a" To "z"; Local BooleanVar isUCaseChar := isChar And (UpperCase (inC) = inC); inC := LCase(inC); If istBuchst Then ( Local NumberVar offset := (Asc(inC) + shift - Asc("a")) Mod (Asc("z") - Asc("a") + 1); outC := Chr(offset + Asc("a")); If isUCaseChar Then outC := UpperCase(outC) ) Else outC := inC; outString := outString + outC ); outString In diesem Beispiel ist ein If-Ausdruck im Ausdrucksblock der For-Schleife eingebettet. Diese If-Anweisung hat die Aufgabe, dafür zu sorgen, dass die einzelnen Zeichen korrekt versetzt werden. Dabei müssen beispielsweise Buchstaben anders verarbeitet werden als Satzzeichen oder Leerzeichen. Im Einzelnen muss dabei sichergestellt werden, dass Satzzeichen und Leerzeichen nicht verschlüsselt werden. Im Allgemeinen geht es hier darum, dass Steuerelementstrukturen in andere Steuerelementstrukturen eingebettet werden können und dass mehrere Ausdrücke in den mit Klammern eingefassten Ausdrucksblöcken anderer Steuerelementstrukturen aufgenommen werden können. Exit For verwenden Sie können eine For-Schleife mit Exit For verlassen. Im folgenden Beispiel wird das globale Array Namen nach dem Namen „Fritz“ durchsucht. Sobald der Name gefunden wird, wird der Index des Namens im Array zurückgegeben. Andernfalls wird -1 zurückgegeben. Ist das Namen-Array beispielsweise ["Franz", "Helene", "Fritz", "Linda"] 140 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Steuerelementstrukturen Dann wird durch die Formel 3 zurückgegeben. Global StringVar Array namen; //Der Namen-Array wurde bereits in anderen Formeln //in anderen Formeln Local NumberVar i; Local NumberVar result := -1; //Die UBound-Funktion gibt die Größe ihres //Array-Arguments zurück For i := 1 to UBound (names) Do ( If Namen [i] = "Fritz" Then ( result := i; Exit For ) ); result Wenn sie als ein Ausdruck angesehen wird, gibt die For-Schleife immer den booleschen Wert TRUE zurück. Daher ist eine For-Schleife als letzter Ausdruck in einer Formel fast immer ungünstig, denn dann zeigt die Formel einfach den Wert TRUE an anstatt Ihres gewünschten Ergebnisses. While-Schleifen Ein weiterer Schleifentyp ist die While-Schleife. Eine While-Schleife kann dazu verwendet werden, eine feststehende Folge von Anweisungen unbegrenzt oft auszuführen. Die zwei unterschiedlichen Typen der While-Schleifen WhileSchleifentyp Erklärung Beispiel While ... Do Beim Schleifentyp While ... Do wird zuerst die While Bedingung Do Ausdruck Bedingung ausgewertet, und nur wenn diese Bedingung erfüllt wird, werden die Anweisungen ausgewertet, die auf die Bedingung folgen. Sobald die Schleife vollständig durchlaufen ist, wird die Bedingung erneut ausgewertet, und wenn die Bedingung erfüllt wird, werden die Anweisungen erneut ausgewertet. Dieser Vorgang wird so lange wiederholt, bis die Bedingung nicht mehr erfüllt wird. Crystal Report Explorer-Anwenderhandbuch 141 7 7 Referenz zur Crystal-Syntax Steuerelementstrukturen WhileSchleifentyp Erklärung Beispiel Do ... While Beim Schleifentyp Do ... In werden die Anweisungen in jedem Fall mindestens einmal ausgewertet. Do Ausdruck While Bedingung Nach der ersten Auswertung der Anweisungen wird die Bedingung geprüft, und nur wenn die Bedingung erfüllt wird, werden die Anweisungen erneut ausgewertet. Dieser Vorgang wird so lange fortgesetzt, bis die Bedingung nicht mehr erfüllt wird. Hinweis: • While-Schleifen können mit Hilfe der Anweisung Exit While sofort verlassen werden. Sie wird analog zu Exit For in For-Schleifen verwendet. • Wie die For-Schleife gibt auch die While-Schleife immer den booleschen Wert TRUE zurück, wenn sie als Ausdruck angesehen wird. While ... Do-Schleife Im folgenden Beispiel wird in einer eingegebenen Zeichenfolge nach der ersten Ziffer gesucht. Falls eine Ziffer gefunden wird, wird deren Position und andernfalls -1 zurückgegeben. In diesem Fall wird der Eingabetext explizit auf eine Zeichenfolgekonstante gesetzt. Stattdessen könnte er jedoch auch einem Datenbankfeld des Typs String zugewiesen werden. Für unseren Beispieltext „Die 7 Zwerge“ wird von der Formel die Zahl 5 zurückgegeben, da sich an der fünften Stelle des Eingabetexts die Ziffer 7 befindet. Local StringVar inString := "Die 7 Zwerge"; Local NumberVar strLen := Length (inString); Local NumberVar result := -1; Local NumberVar i := 1; While i <= strLen And result = -1 Do ( Local StringVar c := inString [i]; If NumericText (c) Then result := i; i := i + 1; ); result 142 Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Steuerelementstrukturen Sicherheitsmechanismen für Schleifen Durch einen Sicherheitsmechanismus wird verhindert, dass die Berichtsverarbeitung aufgrund einer Endlosschleife hängenbleibt. Für jede Auswertung einer Formel werden pro Ausführung maximal 100.000 Auswertungen von Schleifenbedingungen zugelassen. Im folgenden Beispiel wird das verdeutlicht. Hier ein Beispiel: Local NumberVar i := 1; While i <= 200000 Do ( If i > {Film.STARS} Then Exit While; i := i + 1 ); 20 Wenn {Film.STARS} größer als 100.000 ist, dann wird die Schleifenbedingung i <= 200000 häufiger ausgewertet als maximal zulässig und daher eine Fehlermeldung ausgegeben. Andernfalls ist die Schleife zulässig. Hinweis: Der Sicherheitsmechanismus wird auf die gesamte Formel und nicht nur auf einzelne Schleifen angewendet. Hier ein Beispiel: Local NumberVar i := 1; For i := 1 To 40000 Do ( Sin (i); ); i := 1; While i <= 70000 Do ( i := i + 1; ) In der oben stehenden Formel wird der Sicherheitsmechanismus ebenfalls ausgelöst, da die Zahl 100.000 für die Gesamtanzahl der Auswertungen von Schleifenbedingungen in der Formel gilt und in dieser Formel 40.001 +70.001 Auswertungen dieser Art stattfinden. Crystal Report Explorer-Anwenderhandbuch 143 7 7 Referenz zur Crystal-Syntax Einschränkungen Option Loop (Crystal-Syntax) Mit Hilfe der Option Loop-Anweisung kann angegeben werden, wie häufig eine Schleifenbedingung pro Formelauswertung maximal ausgewertet wird. Diese Anweisung sollte nur verwendet werden, wenn der Standardwert mit einer maximalen Schleifenanzahl von 100.000 für die jeweilige Formel nicht ausreicht. Hinweis: Die Option "Loop-Anweisung" muss vor allen anderen Anweisungen stehen. Syntax von Option Loop Die Syntax von Option Loop lautet: Option Loop maxIterations maxIterations entspricht dabei der maximalen Anzahl von Auswertungen, die pro Formelauswertung für die Bedingung ausgeführt werden sollen. Hier ist eine positive ganze Zahl erforderlich. Hier ein Beispiel: //Option Loop-Beispiel option loop 256; //Namen in Großbuchstaben umwandeln Local StringVar outString; Local StringVar inString := {Kunde.Kundenname}; Local NumberVar i; For i:=1 to Length(inString) do outString := outString + upperCase(inString[i]); outString Falls "Kunde.Kundenname" den Wert 255 übersteigt, wird eine Fehlermeldung angezeigt: „Eine Schleife wurde öfter als zulässig ausgewertet.“ Einschränkungen Als Orientierungshilfe folgen nun die Größenbeschränkungen der Formelsprache: 144 • Die maximale Länge einer Zeichenfolgekonstante, eines in einer Zeichenfolgevariablen enthaltenen Zeichenfolgenwertes, eines von einer Funktion zurückgegebenen Zeichenfolgenwertes oder eines Zeichenfolgeelements eines Zeichenfolgearrays beträgt 65.534 Zeichen. • Ein Array kann maximal aus 1.000 Elementen bestehen. Crystal Report Explorer-Anwenderhandbuch Referenz zur Crystal-Syntax Einschränkungen • Die maximale Anzahl von Argumenten für eine Funktion beträgt 1.000. (Dies bezieht sich auf Funktionen, die über eine unendliche Anzahl von Argumenten verfügen können, z.B. Choose). • Die Maximalanzahl für Auswertungen von Schleifenbedingungen pro Auswertung einer Formel liegt bei 100.000. (Weitere Informationen über die genaue Bedeutung finden Sie unter Sicherheitsmechanismen für Schleifen). Beachten Sie, dass Sie diesen Maximalwert mit der Anweisung Option Loop (Crystal-Syntax) ändern können. • In Visual Basic modellierte Datum-Uhrzeit-Funktionen akzeptieren Jahresangaben von 100 bis 9999. Herkömmliche Crystal ReportsFunktionen akzeptieren Jahresangaben von 1 bis 9999. • Die Größe einer Funktion ist unbegrenzt. Crystal Report Explorer-Anwenderhandbuch 145 7 7 Referenz zur Crystal-Syntax Einschränkungen 146 Crystal Report Explorer-Anwenderhandbuch Kapitel Funktionen 8 Funktionen Informationen über Zahlenformatierungen in Beispielen Informationen über Zahlenformatierungen in Beispielen Die Funktionsbeschreibungen in diesem Abschnitt enthalten zahlreiche Beispiele für Werte, die bei Verwendung einer bestimmten Funktion vom Programm zurückgegeben werden. Bedenken Sie, dass die Feldformatierung Einfluss auf die Anzeige von Formelergebnissen im Bericht hat. Dies ist insbesondere dann von Bedeutung, wenn die Funktion einen numerischen Wert zurückgibt. Wenn Sie beispielsweise die Funktion Truncate für den Wert 1,599 verwenden, gibt die Formel zwar 1 zurück, es hängt jedoch von der Feldformatierung ab, wie der Wert in Crystal Reports angezeigt wird. Wenn das Formelfeld in Ihrem Bericht für die Anzeige von zwei Dezimalstellen formatiert ist, wird in Crystal Reports der Wert 1,00 angezeigt. Daher kann sich der im Bericht angezeigte Wert von dem im Funktionsbeispiel dargestellten Wert unterscheiden. Mathematik Mathematische Funktionen werden für eine Vielzahl mathematischer Berechnungen und Operationen verwendet. Abs (x) Sgn (Zahl) Int (Zahl) Round RoundUp Truncate MRound Ceiling Floor Fix Remainder (Zähler, Nenner) Sin (Zahl) Cos (Zahl) Tan (Zahl) Atn (Zahl) 148 Crystal Reports-Anwenderhandbuch Funktionen Mathematik Pi Sqr (Zahl) Exp (Zahl) Log (Zahl) Rnd Abs (x) Basic- und Crystal-Syntax. Argumente • x ist die Zahl oder Währung, für die der absolute Wert zurückgegeben werden soll. Rückgabewert Zahlenwert Aktion Abs (x) gibt den absoluten Wert von x zurück. Beispiele Abs(1.50) Gibt 1,50 zurück. Abs(-1.50) Gibt 1,50 zurück. Abs(10 - 7) Gibt 3 zurück. Abs(7 - 10) Gibt 3 zurück. Rem Basic-Syntax If Abs(37 - {Datei.FELD}) > 1 Then formula = "Wartung, Temperatur prüfen" End If //Crystal-Syntax If Abs(37 - {Datei.FELD}) > 1 Then "Wartung, Temperatur prüfen" Else "" ; Damit werden Instanzen markiert, bei denen die Temperaturabweichung eines Laborheizelements höher als 1 Grad über oder unter Null ist. Crystal Reports-Anwenderhandbuch 149 8 8 Funktionen Mathematik Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Sgn (Zahl) Basic- und Crystal-Syntax. Argument • Zahl entspricht dem Wert, dessen Vorzeichen Sie wissen möchten. Rückgabewert Gibt 1, 0 oder -1 zurück Aktion Sgn gibt das Vorzeichen einer angegebenen Zahl zurück: Bei Zahlen > 0 wird 1 zurückgegeben, wenn die Zahl 0 ist, wird 0 zurückgegeben, und bei Zahlen < 0 wird -1 zurückgegeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Sgn (-10) Gibt -1 zurück. Sgn (0) Gibt 0 zurück. Sgn (10) Gibt 1 zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Int (Zahl) Basic- und Crystal-Syntax. Argument • 150 Zahl entspricht dem Wert, den Sie auf die nächstkleinere Ganzzahl runden möchten. Crystal Reports-Anwenderhandbuch Funktionen Mathematik Rückgabewert Ganzzahliger Wert Aktion Int gibt den ganzzahligen Teil einer angegebenen Zahl zurück; dieser wird durch Abrunden auf die nächstkleinere Ganzzahl ermittelt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Int (123.678) Gibt 123 zurück. Int (-123.678) Gibt -124 zurück. Int (-123.1) Gibt -124 zurück. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Fix (n) (oder Truncate (n)) und Int (n) arbeiten auf dieselbe Weise, außer wenn n negativ ist; in diesem Fall geben Fix und Truncate die erste ganze Zahl größer als oder gleich n zurück, während Int die erste ganze Zahl kleiner als oder gleich n zurückgibt. Zum Beispiel, Fix (-10.2) Truncate ((-10.2) Beide geben -10 zurück. Int (-10.2) Gibt -11 zurück. Siehe auch • • Fix Truncate Round Basic- und Crystal-Syntax. Syntax der Argumente • • Round (x) Round (x, DezStellen) Crystal Reports-Anwenderhandbuch 151 8 8 Funktionen Mathematik Argumente • • x ist eine Zahl oder Währung, die gerundet werden soll. DezStellen ist eine ganze Zahl, die angibt, auf wie viele Dezimalstellen x gerundet werden soll. Hinweis: Der Wert für „DezStellen“ kann von -20 bis 10 (einschließlich) reichen. Rückgabewert Zahl Aktion Round rundet auf die nächste ganze Zahl, wenn das Argument DezStellen fehlt. Wenn der Wert rechts vom Dezimaltrennzeichen kleiner als oder gleich ,499 ist, rundet das Programm auf die nächstkleinere ganze Zahl ab. Wenn der Wert rechts vom Dezimaltrennzeichen größer als oder gleich ,5 ist, rundet das Programm auf die nächsthöhere ganze Zahl auf. Wenn das Argument DezStellen verwendet wird, wird der Wert von x an der Dezimalstelle gerundet, die durch DezStellen angegeben ist. Wenn Sie den Wert für DezStellen auf 0 setzen, hat dies den gleichen Effekt, wie wenn Sie das Argument DezStellen auslassen. Wenn DezStellen negativ ist, wird die Zahl auf die nächste Zehnerstelle, Hunderterstelle usw. gerundet. Hinweis: Der Wert für „DezStellen“ kann von -20 bis 10 (einschließlich) reichen. Typische Verwendungen Round können Sie immer dann zum Runden eines Wertes auf eine bestimmte Dezimalstelle verwenden, wenn der gerundete Wert geeigneter ist als der ursprüngliche Wert. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Round(1.23456) Gibt 1 zurück. Round(1.499) Gibt 1 zurück. Round(1.5000) Gibt 2 zurück. Round(2345.23456,4) Gibt 2345,2346 zurück. 152 Crystal Reports-Anwenderhandbuch Funktionen Mathematik Round(2345.23456,3) Gibt 2345,235 zurück. Round(2345.23456,2) Gibt 2345,23 zurück. Round(2345.23456,0) Gibt 2345 zurück. Round(2345.23456,-1) Gibt 2350 zurück. Round(2345.23456,-2) Gibt 2300 zurück. Round(2345.23456,-3) Gibt 2000 zurück. Round(1.234499,3) Gibt 1,234 zurück. Round(1.234500,3) Gibt 1,235 zurück. Round({Datei.MENGE},1) Gibt 1854,5 zurück, wenn Menge = 1854.49 Round({Datei.MENGE}) Gibt 1854,00 zurück, wenn Menge = 1854.49. Round({Datei.MENGE}) Gibt 1855,00 zurück, wenn Menge = 1854.51 Round({Datei.GEWICHT} / 100) Gibt 4 zurück, wenn Gewicht = 424. Round({Datei.GEWICHT} / 100) Gibt 5 zurück, wenn Gewicht = 451. Round((A * B) / C) Gibt 11 zurück, wenn A = 25, B = 3 und C = 7. Round(file.MENGE,1) Gibt 1854,5 zurück, wenn Menge = 1854.51. Round({Datei.GEHALT} * {Datei.ARBEITSSTUNDEN}, 2) Gibt 146,63 € zurück, wenn Gehalt = 5.75 € und Arbeitsstunden = 25.5. Anmerkungen Runden steht auch als Formatierungsoption für numerische Werte in Feldern zur Verfügung. Beachten Sie, dass sich Feldformatierungsfunktionen darauf auswirken können, wie Werte in Formeln verwendet werden. Siehe ToNumber und InWährung-Operator. Crystal Reports-Anwenderhandbuch 153 8 8 Funktionen Mathematik Siehe auch • • • Truncate Fix Int (Zahl) RoundUp Basic- und Crystal-Syntax. Syntax der Argumente • • RoundUp (x) RoundUp (x, DezStellen) Argumente • • x entspricht der reellen Zahl, die gerundet werden soll. DezStellen ist eine ganze Zahl, die angibt, auf wie viele Dezimalstellen x gerundet werden soll. Rückgabewert Zahl Aktion RoundUp gibt eine aufgerundete Zahl zurück. Mit dieser Funktion wird (von 0 weg) aufgerundet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: RoundUp(4.1,0) Gibt 5 zurück. RoundUp(5.34) Gibt 6 zurück. RoundUp(6.36521,3) Gibt 6,366 zurück. RoundUp(-6.36521,3) Gibt -6,366 zurück. RoundUp(50.43,-1) Gibt 60 zurück. 154 Crystal Reports-Anwenderhandbuch Funktionen Mathematik Anmerkungen • Wenn DezStellen größer als 0 (Null) ist, wird Ihre Zahl auf die angegebene Anzahl von Dezimalstellen aufgerundet. • Wenn DezStellen 0 bzw. nicht angegeben ist, wird Ihre Zahl auf die nächste ganze Zahl aufgerundet. • Wenn DezStellen kleiner als 0 ist, wird Ihre Zahl auf die Stelle links vom Dezimaltrennzeichen aufgerundet. Siehe auch • Round Truncate Truncate und Fix sind gleichwertige Funktionen. Truncate wird in der CrystalSyntax bevorzugt, Fix dagegen in der Basic-Syntax. Syntax der Argumente • • Truncate (x) Truncate (x, DezStellen) Argumente • • x ist eine Zahl oder Währung, die gekürzt werden soll. DezStellen ist eine ganze Zahl, die angibt, wie viele Dezimalstellen übrig bleiben sollen, nachdem der Wert gekürzt wurde. (Dieses Argument ist optional.) Rückgabewert Zahl Aktion Truncate(x) gibt entweder eine Bruch- oder ganze Zahl zurück, wenn die jeweilige Zahl am Dezimaltrennzeichen gekürzt wird. Ist das Argument DezStellen angegeben, wird die Zahl an der entsprechenden Dezimalstelle gekürzt, und die Funktion gibt eine Bruchzahl zurück. Ist DezStellen negativ, wird entsprechend die Einerstelle, die Zehnerstelle, die Hunderterstelle usw. durch eine 0 ersetzt. Typische Verwendungen Diese Funktion können Sie immer dann verwenden, wenn einige Ziffern, die rechts vom Dezimaltrennzeichen stehen, für einen Bericht oder eine Kalkulation nicht benötigt werden. Crystal Reports-Anwenderhandbuch 155 8 8 Funktionen Mathematik Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Truncate(1.23456) Gibt 1 zurück. Truncate (1.599) Gibt 1 zurück. Truncate (1.599) Gibt 1 zurück. Truncate (1.999) Gibt 1 zurück. Truncate(1.599, 1) Gibt 12346.3 zurück. Truncate(12345.33, -2) Gibt 12300,00 zurück. Wenn Sie 147 Golfbälle auf Lager haben und wissen möchten, wie viele Dutzend verkauft werden können, rechnen Sie 147/12 = 12,25 und dann Truncate(12.25) = 12, d. h., es können 12 Dutzend Golfbälle verkauft werden. Wenn Sie die Bälle nur im Dutzend verkaufen, spielt das 0,25 Dutzend, das Sie gekürzt haben, keine Rolle. Truncate({Tabelle.BALLBESTAND} / 12) Gibt 12 zurück, wenn BALLBESTAND = 147 ist (147 / 12 = 12,25, Truncate(12.25) = 12). Truncate({Tabelle.BALLBESTAND} / 12) Gibt 12 zurück, wenn BALLBESTAND = 155 ist (155 / 12 = 12,92, Truncate(12.92) = 12). Truncate({Tabelle.BALLBESTAND} / 12) Gibt 13 zurück, wenn BALLBESTAND = 157 ist (157 / 12 = 13,08, Truncate(13.08) = 13). Anmerkungen • Die Funktion Truncate nimmt keine Rundung vor, sondern löscht einfach die angegebene Anzahl Ziffern rechts vom Dezimaltrennzeichen. Erläuterungen zum Runden finden Sie unter Round. • 156 Truncate (n) und Int (Zahl) haben die gleiche Funktion, außer wenn n (Zahl) negativ ist; in diesem Fall gibt Truncate die erste ganze Zahl größer als oder gleich n zurück, während Int die erste ganze Zahl kleiner als oder Crystal Reports-Anwenderhandbuch Funktionen Mathematik Truncate ((-10.2) Gibt -10 zurück. Int (-10.2) Gibt -11 zurück. • Kürzen steht auch als Formatierungsoption für numerische Werte in Feldern zur Verfügung. Beachten Sie, dass sich Feldformatierungsfunktionen darauf auswirken können, wie Werte in Formeln verwendet werden. Weitere Informationen, wie Zahlen und Currency-Werte konvertiert werden können, finden Sie unter ToNumber und In-Währung-Operator. Siehe auch • Int (Zahl) MRound Basic- und Crystal-Syntax. Syntax der Argumente • • MRound (x) MRound (x, mehrfach) Argumente • • x ist ein Wert, der gerundet werden soll. "mehrfach" entspricht einem Mehrfachwert, auf den der Wert x gerundet werden soll. Rückgabewert Zahl Aktion MRound gibt eine Zahl zurück, die auf den festgelegten Mehrfachwert gerundet wurde. Durch diese Funktion wird (von 0 weg) gerundet, wenn der Restbetrag der Division größer als oder gleich dem halben Mehrfachwert ist. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: MRound(10,3) Gibt 9 zurück. MRound(-10,-3) Gibt -9 zurück. Crystal Reports-Anwenderhandbuch 157 8 8 Funktionen Mathematik MRound(1.3,0.2) Gibt 1,4 zurück. MRound(5,-2) Gibt 6 zurück. MRound(-5,2) Gibt -6 zurück. Anmerkungen • Crystal Reports ignoriert das Vorzeichen des Mehrfachwertes, für das Ergebnis der Funktion wird das Vorzeichen des ersten Parameters übernommen. Ceiling Basic- und Crystal-Syntax. Syntax der Argumente • • Ceiling (x) Ceiling (x, mehrfach) Argumente • • x ist ein Wert, der gerundet werden soll. "mehrfach" entspricht einem Mehrfachwert, auf den der Wert x gerundet werden soll. Rückgabewert Zahl Aktion Ceiling gibt eine Zahl zurück, die auf den festgelegten Mehrfachwert gerundet wurde. Mit dieser Funktion wird (von 0 weg) aufgerundet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Ceiling(3.5,1) Gibt 4 zurück. Ceiling(-2.5,-2) Gibt -4 zurück. Ceiling(-2.5,2) Gibt -4 zurück. 158 Crystal Reports-Anwenderhandbuch Funktionen Mathematik Ceiling(5.43,.05) Gibt 5,45 zurück. Ceiling(.43,-1) Gibt 1 zurück. Anmerkungen • Crystal Reports ignoriert das Vorzeichen des Mehrfachwertes, für das Ergebnis der Funktion wird das Vorzeichen des ersten Parameters übernommen. • Werte werden immer aufgerundet, wenn sie von 0 weg angepasst werden (und zwar unabhängig vom Vorzeichen des Wertes). Wenn "Zahl" ein exakter Mehrfachwert von "mehrfach" ist, findet keine Rundung statt. Floor Basic- und Crystal-Syntax. Syntax der Argumente • • Floor (x) Floor (x, mehrfach) Argumente • • x ist ein Wert, der gerundet werden soll. "mehrfach" entspricht einem Mehrfachwert, auf den der Wert x gerundet werden soll. Rückgabewert Zahl Aktion Floor gibt eine Zahl zurück, die auf den festgelegten Mehrfachwert gerundet wurde. Mit dieser Funktion wird (von 0 weg) abgerundet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Floor(3.5,1) Gibt 3 zurück. Floor(-2.5,-2) Gibt -2 zurück. Crystal Reports-Anwenderhandbuch 159 8 8 Funktionen Mathematik Floor(-2.5,2) Gibt -2 zurück. Floor(5.43,.05) Gibt 5,40 zurück. Floor(.43,-1) Gibt 0 zurück. Anmerkungen • Crystal Reports ignoriert das Vorzeichen des Mehrfachwertes, für das Ergebnis der Funktion wird das Vorzeichen des ersten Parameters übernommen. • Werte werden immer abgerundet, wenn sie von 0 weg angepasst werden (und zwar unabhängig vom Vorzeichen des Wertes). Wenn "Zahl" ein exakter Mehrfachwert von "mehrfach" ist, findet keine Rundung statt. • 0 ist als Mehrfachargument nicht zulässig. Die Verwendung von 0 auf diese Weise führt zu einem Fehler. Floor(0,0) ist jedoch zulässig und gibt 0 zurück. Fix Fix und Truncate sind gleichwertige Funktionen. Fix wird in der Basic-Syntax bevorzugt, Truncate dagegen in der Crystal-Syntax. Syntax der Argumente • • Fix (Zahl) Fix (Zahl, DezStellen) Argumente • Zahl ist der Zahlenwert, der abgeschnitten werden soll, und kann positiv, 0 oder negativ sein. • DezStellen ist eine optionale Zahl, die angibt, auf wie viele Dezimalstellen der Wert abgeschnitten werden soll. Wenn diese Angabe weggelassen wird, wird 0 verwendet. Rückgabewert Ganzzahliger Wert, der positiv, 0 oder negativ sein kann. Aktion Fix schneidet eine Zahl auf eine festgelegte Anzahl von Dezimalstellen ab und gibt sie wieder zurück. Wenn DezStellen weggelassen wird, wird 0 verwendet. 160 Crystal Reports-Anwenderhandbuch Funktionen Mathematik Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Fix (123.678) Gibt 123 zurück. Fix (-123.678) Gibt -123 zurück. Fix (123.678,1) Gibt 123,6 zurück. Fix (123.678,2) Gibt 123,67 zurück. Anmerkungen • Diese Funktion arbeitet bei Verwendung eines einzigen Parameters, also in der Form Fix (Zahl), genau wie die gleichnamige Funktion in Visual Basic. • Fix (n) und Int (Zahl) haben die gleiche Funktion, außer wenn n (Zahl) negativ ist; in diesem Fall gibt Fix die erste ganze Zahl größer als oder gleich n zurück, während Int die erste ganze Zahl kleiner als oder gleich n zurückgibt. Zum Beispiel, Fix (-10.2) Gibt -10 zurück. Int (-10.2) Gibt -11 zurück. Remainder (Zähler, Nenner) Basic- und Crystal-Syntax. Argumente • • Zähler ist eine rationale Zahl (Bruchzahl). Nenner ist eine rationale Zahl (Bruchzahl). Rückgabewert Rationale Zahl (Bruchzahl) Crystal Reports-Anwenderhandbuch 161 8 8 Funktionen Mathematik Aktion Remainder gibt den Rest zurück (), der übrigbleibt, nachdem der Zähler (Dividend) durch den Nenner (Divisor) dividiert wurde. Normalerweise schreibt das Programm einen Quotienten als ganze Zahl mit bis zu sechs Dezimalstellen. Wenn das Programm dagegen Remainder verwendet, führt er die Division intern aus, ermittelt den ganzzahligen Anteil des Quotienten sowie den Rest und gibt nur den Rest zurück. Typische Verwendungen Sie können diese Funktion für Umrechnungen (von Fuß in Meilen, Einheiten in Gros usw.) verwenden. Darüber hinaus können Sie mit Hilfe dieser Funktion jedes n-te Element aus einem Array auswählen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Remainder(12,5) Gibt 2 zurück. Remainder(16,5) Gibt 1 zurück. Rem Basic-Syntax If Remainder({Datei.EXAM#}, 7) = 0 Then formula = "*****" End If //Crystal-Syntax If Remainder({Datei.EXAM#}, 7) = 0 Then "*****" Else "" Dadurch wird jede siebte Arbeit zur zweiten Bewertung mit einer Markierung versehen. ToText(Truncate({Datei.TAGE}/7)) + " Woche(n), " + ToText(Remainder({Datei.TAGE},7)) + " Tag(e)" Gibt „9 Woche(n), 1 Tag(e)“ zurück. Wandelt Tage in Wochen und Tage um. Wenn das Feld z.B. einen Wert von 64 Tagen hat, gibt die Formel die Zeichenfolge „9 Woche(n), 1 Tag(e)“ zurück. Siehe auch • 162 Modul (x Mod y) Crystal Reports-Anwenderhandbuch Funktionen Mathematik Sin (Zahl) Basic- und Crystal-Syntax. Argumente • Zahlenwert mit einem im Bogenmaß (Radianten) angegebenen Winkel Rückgabewert Zahlenwert zwischen -1 und 1 Aktion Sin gibt eine Zahl zurück, die den Sinus eines in Radianten angegebenen Winkels angibt. Diese Funktion verarbeitet ein rechtwinkliges Dreieck und gibt die Länge der Seite, die dem angegebenen Winkel gegenüberliegt, geteilt durch die Länge der Hypotenuse aus. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Sin (1) Gibt 0,8415 (auf 4 Dezimalstellen gerundet) zurück. Dies ist der Sinus von 1 Radiant. Sin (30 * crPi / 180) Gibt 0,5 zurück. Dies ist der Sinus von 30 Grad. Bevor der Sinus ausgerechnet wird, wird der Winkel durch Multiplizieren mit crPi / 180 in Radianten konvertiert. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Sin gibt Werte im Bereich von -1 bis 1 zurück. Cos (Zahl) Basic- und Crystal-Syntax. Argumente • Zahlenwert mit einem im Bogenmaß (Radianten) angegebenen Winkel. Crystal Reports-Anwenderhandbuch 163 8 8 Funktionen Mathematik Rückgabewert Zahlenwert zwischen -1 und 1 Aktion "Cos" gibt eine Zahl zurück, die den Kosinus eines in Radianten angegebenen Winkels angibt. Diese Funktion verarbeitet ein rechtwinkliges Dreieck und gibt die Länge der Seite, die am Winkel anliegt, geteilt durch die Länge der Hypotenuse aus. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Cos (1) Gibt 0,5403 (auf 4 Dezimalstellen gerundet) zurück. Dies ist der Kosinus von 1 Radiant. Cos (60 * crPi / 180) Gibt 0,5 zurück. Dies ist der Kosinus von 60 Grad. Bevor der Sinus ausgerechnet wird, wird der Winkel durch Multiplizieren mit crPi / 180 in Radianten konvertiert. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Cos gibt Werte im Bereich von -1 bis 1 zurück. Tan (Zahl) Basic- und Crystal-Syntax. Argumente • Zahlenwert mit einem im Bogenmaß (Radianten) angegebenen Winkel Rückgabewert Zahlenwert Aktion Tan gibt eine Zahl zurück, die den Tangens eines in Radianten angegebenen Winkels angibt. Diese Funktion verarbeitet ein rechtwinkliges Dreieck und gibt die Länge der Seite, die dem angegebenen Winkel gegenüberliegt, geteilt durch die Länge der am Winkel anliegenden Seite aus. 164 Crystal Reports-Anwenderhandbuch Funktionen Mathematik Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Tan (1) Gibt 1,5574 (auf 4 Dezimalstellen gerundet) zurück. Dies ist der Tangens von 1 Radiant. Tan (45 * crPi / 180) Gibt 1 zurück. Dies ist der Tangens von 45 Grad. Bevor der Tangens ausgerechnet wird, wird der Winkel durch Multiplizieren mit crPi / 180 in Radianten konvertiert. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Atn (Zahl) Basic- und Crystal-Syntax. Argumente • Zahlenwert Rückgabewert Zahlenwert mit einem im Bogenmaß (Radianten) angegebenen Winkel Aktion Atn gibt als Zahlenwert den Arkustangens des angegebenen Arguments Zahl zurück. In anderen Worten: Atn gibt den Winkel zurück, dessen Tangens dem angegebenen Argument Zahl entspricht. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Atn (1) Gibt einen Winkel von 0,7854 Radianten (auf 4 Radianten gerundet) zurück. Um diese Winkelangabe in Grad zu konvertieren, müssen Sie sie mit 180 / crPi multiplizieren. Zum Beispiel Atn (1) * 180 / crPi entspricht 45 Grad. Crystal Reports-Anwenderhandbuch 165 8 8 Funktionen Mathematik Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Atn gibt Werte im Bereich von -pi/2 bis pi/2 Radian zurück. Pi Basic- und Crystal-Syntax. Gibt die mathematische Konstante pi zurück, die den Wert 3,14 (auf 2 Dezimalstellen gerundet) hat. Sqr (Zahl) Basic- und Crystal-Syntax. Argumente • Zahlenwert größer als oder gleich 0. Rückgabewert Zahlenwert Aktion Sqr gibt die Quadratwurzel einer angegebenen Zahl zurück. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Sqr (100) Gibt 10 zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Exp (Zahl) Basic- und Crystal-Syntax. Argumente • 166 Zahlenwert, der eine Potenz angibt. Crystal Reports-Anwenderhandbuch Funktionen Mathematik Rückgabewert Zahlenwert Aktion Exp gibt eine Zahl zurück, die e (die Basis natürlicher Logarithmen) in der Potenz angibt. Der Wert von e liegt bei ungefähr 2,718282. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Exp (1.5) Gibt 1,5 in der Potenz zurück, also ungefähr 4,48169. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Wenn das angegebene Zahlenargument größer als ungefähr 705 ist, tritt ein numerischer Überlauf ein. Log (Zahl) Basic- und Crystal-Syntax. Argumente • Zahlenwert Rückgabewert Zahlenwert Aktion Log gibt als Zahlenwert den natürlichen Logarithmus einer angegebenen Zahl zurück. Der natürliche Logarithmus ist der Logarithmus zur Basis e, wobei e ungefähr gleich 2,718282 ist. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Log (1.5) Gibt 0,4055 (auf 4 Dezimalstellen gerundet) zurück. Crystal Reports-Anwenderhandbuch 167 8 8 Funktionen Mathematik Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Mit dieser Funktion können Sie unter Verwendung folgender Logik einen Logarithmus mit einer beliebigen Basis berechnen: LogAnyBase (x,Basis) = log(x)/log(Basis) (x entspricht der Zahl, für die der Logarithmus berechnet werden soll; Basis stellt die zu verwendende Basis dar.) Für einen Logarithmus mit der Basis 10 würden Sie beispielsweise folgenden Formeltext eingeben: log(x)/log(10) Rnd Basic- und Crystal-Syntax. Syntax der Argumente • • Rnd () Rnd (Ausgangszahl) Argumente • seed ist ein optionales Argument für den Zahlenwerttyp. Rückgabewert Zahlenwert Aktion Rnd gibt eine Zufallszahl größer als oder gleich 0 und kleiner als 1 zurück. Wenn die Ausgangszahl gleich 0 ist, gibt Rnd die Zufallszahl zurück, die vom vorherigen Aufruf von Rnd zurückgegeben wurde. Wenn die Ausgangszahl nicht angegeben wird oder größer als 0 ist, dann gibt Rnd die nächste Zufallsliste in der intern generierten Folge von Zufallszahlen zurück. Wenn die Ausgangszahl dagegen kleiner als 0 ist, dann verwendet Rnd den Wert der Ausgangszahl, um eine neue Folge von Zufallszahlen zu generieren, und gibt den ersten Wert dieser Folge zurück. Typische Verwendungen Wird verwendet, wenn in Ihrer Formel eine Zufallszahl benötigt wird, beispielsweise für statistische Berechnungen oder für die Auswahl von Datensätzen nach einem Zufallsverfahren, um die in einem Bericht verwendeten Daten einzuschränken. 168 Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Anmerkungen • Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Visual Basic. • Sie können Rnd aufrufen, ohne durch Angabe einer negativen Ausgangszahl (seed) eine neue Folge von Zufallszahlen zu beginnen. Wenn Sie dies tun, wird anhand der Systemzeit eine interne Ausgangszahl (seed) generiert. • Der Grund dafür, eine neue Folge von Zufallszahlen zu beginnen, indem Sie Rnd mit einem negativen Wert für seed aufrufen, und alle weiteren Aufrufe von Rnd ohne Argument (oder mit einem positiven Argument) vorzunehmen, liegt darin, dass dann der Bericht bei jeder Anzeige exakt gleich aussieht. In anderen Worten: Sie können dadurch Zufallszahlen verwenden und gleichzeitig nachvollziehbare Ergebnisse erhalten. Gruppenergebnis Mit den Gruppenergebnisfunktionen werden Felddaten auf verschiedene Arten zusammengefasst. Diese Gruppenergebnisfunktionen erhielten ihre Bezeichnung aufgrund Ihrer einzigartigen Summierungsfunktionen. Gruppenergebnisfunktionen können für Operationen für Gruppendaten ausgelegt werden. Hinweis: • Nicht alle arithmetischen Gruppenfunktionen sind für alle Datentypen verfügbar. • Um diese Funktion zum Einfügen eines Gruppenfeldes in eine Formel zu verwenden, müssen Sie in Ihren Bericht bereits ein Gruppenfeld mit identischen Parametern eingefügt haben: dasselbe Feld, dasselbe Sortier- und Gruppierfeld und dieselbe Aktion (Mittelwert/Average, Anzahl/Count usw.). Sum Average StdDev PopulationStdDev Variance PopulationVariance Maximum Minimum Crystal Reports-Anwenderhandbuch 169 8 8 Funktionen Gruppenergebnis Count DistinctCount Correlation Covariance WeightedAverage Median PthPercentile NthSmallest Mode NthMostFrequent PercentOfSum PercentOfAverage PercentOfMaximum PercentOfMinimum PercentOfCount PercentOfDistinctCount Bedingungen für Gruppenergebnisfunktionen Bedingungen für Gruppenergebnisfunktionen Es folgt eine Liste der Bedingungen für die verschiedenen Gruppenergebnisfunktionen: Boolesche Bedingungen 170 Crystal Reports-Anwenderhandbuch • • • • • • • bei jeder Änderung bei Änderung in "Ja" bei Änderung in "Nein" immer wenn "Ja" immer wenn "Nein" wenn nächster Wert "Ja" wenn nächster Wert "Nein" Funktionen Gruppenergebnis Datumsbedingungen Zeitbedingungen • • • • • • • • • • • • für jeden Tag für jede Woche für alle zwei Wochen für jeden halben Monat für jeden Monat für jedes Quartal für jedes Halbjahr für jedes Jahr für jede Sekunde für jede Minute für jede Stunde für a.m./p.m. Sum Basic- und Crystal-Syntax. Syntax der Argumente • • • • Sum (Feld) Sum (Feld, BedFeld) Sum (Feld, BedFeld, Bed) Sum (x) Argumente • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • x ist ein Array mit Zahlen- oder Währungswerten, die von der verwendeten Funktion ausgewertet werden können. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Crystal Reports-Anwenderhandbuch 171 8 8 Funktionen Gruppenergebnis Rückgabewert Zahl Aktion Das Programm ermöglicht es Ihnen, den Durchschnitt der Werte zu berechnen, die in Ihrem Bericht vorhanden sind. Hier ein Beispiel: • Wenn ein Umsatzbericht ein Feld enthält, das den Betrag jedes Auftrags angibt, können Sie die Summe aller in dem Bericht vorkommenden Aufträge berechnen (Gesamtsumme). • Wenn Sie Aufträge in Gruppen unterteilen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden), können Sie die Summe der Aufträge pro Gruppe berechnen (in diesem Fall pro Bundesland). • Wenn Sie Aufträge in Datums- oder boolesche Gruppen unterteilen (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden), können Sie den niedrigsten Auftragsbetrag pro Gruppe, basierend auf einer bestimmten Änderung in dem Datums- oder booleschen Feld, ermitteln (in diesem Fall pro Monat). • Wenn Sie eine Gruppe einzelner Werte angeben, können Sie die Summe der Werte dieser Gruppe berechnen. Weitere Informationen hierzu finden Sie unter Array-Gruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Sum({Datei.MENGE}) Berechnet die Summe aller Werte des Feldes MENGE. Sum({Aufträge.BETRAG}, {Aufträge.KUNDENNR}) Addiert die Aufträge jeder Auftragsgruppe und gibt die Summe im Feld Betrag an. Die Aufträge werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Kunde.KUNDENNR} ändert. Sum({Aufträge.BETRAG}, {Aufträge.DATUM}, "monthly") % Sum({Aufträge.BETRAG }) Gruppiert die Werte des Feldes Betrag nach Monat und berechnet die Summe der Werte für jede Monatsgruppe als Prozentsatz der Summe der Werte des gesamten Berichts. Sum([{Datei.BETRAG}, {Datei.PREIS}, {Datei.KOSTEN}]) Summe der Werte in den Feldern Betrag, Preis und Kosten. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. 172 Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Average Basic- und Crystal-Syntax. Syntax der Argumente • • • • Average (Feld) Average (Feld, BedFeld) Average (Feld, BedFeld, Bed) Average (x) Argumente • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • x ist ein Array mit Zahlen- oder Währungswerten, die von der verwendeten Funktion ausgewertet werden können. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Zahl Aktion Das Programm ermöglicht es Ihnen, den Durchschnitt der Werte zu berechnen, die in Ihrem Bericht vorhanden sind. Hier ein Beispiel: • Wenn ein Umsatzbericht ein Feld enthält, das den Betrag jedes Auftrags angibt, können Sie den Durchschnittswert aller in dem Bericht vorkommenden Aufträge berechnen (einen Gesamtdurchschnitt). • Wenn Sie Aufträge in Gruppen unterteilen (indem Sie z. B. Aufträge nach den Bundesländern gruppieren, aus denen sie kommen), können Sie den durchschnittlichen Auftragswert pro Gruppe berechnen (in diesem Fall pro Bundesland). • Wenn Sie die Aufträge in Datums- oder boolesche Gruppen unterteilen (indem Sie z. B. Aufträge nach dem Monat gruppieren, in dem sie erteilt wurden), können Sie den durchschnittlichen Auftragswert pro Gruppe berechnen, wobei jeweils ein bestimmter Wechsel im Datums- oder booleschen Feld berücksichtigt wird (in diesem Fall pro Monat). Crystal Reports-Anwenderhandbuch 173 8 8 Funktionen Gruppenergebnis • Wenn Sie einzelne Werte in Form eines Datenfeldes angeben, können Sie den Durchschnittswert dieser Datenmenge berechnen. Weitere Informationen hierzu finden Sie unter Array-Gruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Average({Aufträge.Auftragssumme}) Berechnet den Mittelwert aller Werte des Feldes {Aufträge.Auftragssumme}. Average({Aufträge.Auftragssumme}, {Kunde.KUNDENNR}) Sucht den Durchschnittsbetrag eines Verkaufs für jeden Kunden. Das folgende Beispiel gilt für die Crystal-Syntax: Average ([10,12,32,48]) Ermittelt ein Gruppenergebnis aus den Feldwerten, die in dem Array stehen. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. StdDev Basic- und Crystal-Syntax. Syntax der Argumente • • • • StdDev (Feld) StdDev (Feld, BedFeld) StdDev (Feld, BedFeld, Bed) StdDev (x) Argumente 174 • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis • x ist ein Array mit Zahlen- oder Währungswerten, die von der verwendeten Funktion ausgewertet werden können. Rückgabewert Zahl Aktion Das Programm ermöglicht es Ihnen, für eine Gruppe von Werten Ihres Berichts die Standardabweichung zu berechnen. Hier ein Beispiel: • Sie können die Standardabweichung für alle Werte eines Feldes berechnen. • Sie können die Standardabweichung für alle Werte einer Gruppe berechnen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden). • Sie können die Standardabweichung für alle Werte einer Gruppe berechnen, wobei die Gruppierung durch Änderungen in einem Datumsoder booleschen Feld gesteuert wird (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden). • Wenn Sie eine Gruppe einzelner Werte angeben, können Sie die Standardabweichung der Werte dieser Gruppe berechnen. Weitere Informationen hierzu finden Sie unter Array-Gruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: StdDev({Datei.ERGEBNISSE}) Berechnet die Standardabweichung aller Werte im Ergebnisfeld. StdDev({Aufträge.BETRAG}, {Aufträge.KUNDENNR}) Berechnet die Populationsstandardabweichung für die Aufträge in jeder Auftragsgruppe des Feldes {Aufträge.BETRAG}. Die Aufträge werden in Gruppen aufgeteilt, wobei immer dann ein Gruppenwechsel erfolgt, wenn sich der Wert im Feld {Kunde.KUNDENKENNUNG} ändert. StdDev({Datei.ERGEBNISSE}, {Datei.DATUM},"daily" Berechnet die Abweichung für jede Gruppe von Labortestergebnissen im Feld {Datei.ERGEBNISSE}. Die Testergebnisse werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Datei.DATUM} in ein neues Datum ändert. StdDev({Datei.ERGEBNIS}, {Datei.EINGEBÜRGERT}, "any change" Gruppiert die Werte des Feldes {Datei.ERGEBNIS} danach, ob der Getestete eingebürgert ist oder nicht, und berechnet die Standardabweichung für jede Punktegruppe. Crystal Reports-Anwenderhandbuch 175 8 8 Funktionen Gruppenergebnis Das folgende Beispiel gilt für die Crystal-Syntax: StdDev([({Datei.MENGE1} * {Datei.PREIS1}),({Datei.MENGE2} * {Datei.PREIS2}),({Datei.MENGE3} * {Datei.PREIS3}), ({Datei.MENGE4} * {Datei.PREIS4})]) Gibt 36,60 zurück, wobei Menge1 = 2, Preis1 = 10,00, Menge2 = 2, Preis2 = 2,00, Menge3 = 10, Preis3 = 3,00 und Menge4 = 8, Preis4 = 11,00. Anmerkungen Die Funktion StdDev berechnet eine Standardabweichung wie folgt: • • • • • Sie berechnet den Durchschnitt (Mittelwert) der Elemente. • Sie berechnet die Standardabweichung als Quadratwurzel der Varianz. Sie subtrahiert den Durchschnittswert vom Wert jedes Elements. Sie quadriert die Differenz für jedes Element. Sie addiert die quadrierten Differenzen aller Elemente. Sie dividiert die Summe durch eins weniger als die Zahl der Elemente des Beispiels (N - 1). Das Ergebnis ist die Varianz. Vergleichen Sie diesen Schritt mit der Funktion PopulationStdDev. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. PopulationStdDev Basic- und Crystal-Syntax. Syntax der Argumente • • • • PopulationStdDev (Feld) PopulationStdDev (Feld, BedFeld) PopulationStdDev (Feld, BedFeld, Bed) PopulationStdDev (x) Argumente 176 • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. • x ist ein Array mit Zahlen- oder Währungswerten, die von der verwendeten Funktion ausgewertet werden können. Rückgabewert Zahl Aktion Das Programm ermöglicht es Ihnen, für eine Gruppe von Werten Ihres Berichts die Populationsstandardabweichung zu berechnen. Hier ein Beispiel: • Sie können die Populationsstandardabweichung für alle Werte eines Feldes berechnen. • Sie können die Populationsstandardabweichung für alle Werte einer Gruppe berechnen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden). • Sie können die Populationsstandardabweichung für alle Werte einer Gruppe berechnen, wobei die Gruppierung durch Änderungen in einem Datums- oder booleschen Feld gesteuert wird (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden). • Wenn Sie eine Gruppe einzelner Werte angeben, können Sie die Populationsstandardabweichung der Werte dieser Gruppe berechnen. Weitere Informationen hierzu finden Sie unter ArrayGruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: PopulationStdDev({Datei.ERGEBNIS}) Berechnet die Populationsstandardabweichung aller Werte des Feldes {Datei.ERGEBNIS} für den gesamten Bericht. PopulationStdDev({Aufträge. BETRAG}, {Aufträge.KUNDENKENNUNG}) Berechnet die Populationsstandardabweichung für die Aufträge in jeder Auftragsgruppe des Feldes {Aufträge.BETRAG}. Die Aufträge werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Kunde.KUNDENNR} ändert. PopulationStdDev({Datei.ERGEBNISSE}, {Datei.DATUM}, "daily") Berechnet die Abweichung für jede Gruppe von Labortestergebnissen im Feld {Datei.ERGEBNISSE}. Die Testergebnisse werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Datei.DATUM} in ein neues Datum ändert. Crystal Reports-Anwenderhandbuch 177 8 8 Funktionen Gruppenergebnis Das folgende Beispiel gilt für die Crystal-Syntax: PopulationStdDev([{Datei.MENGE1}, {Datei.MENGE2}, {Datei.MENGE3}, {Datei.MENGE4}]) Gibt 3,57 zurück, wo Menge1 = 2, Menge2 = 2, Menge3 = 10, und Menge4 = 8. Anmerkungen Die Funktion PopulationStdDev berechnet eine Populationsstandardabweichung wie folgt: • • • • • Sie berechnet den Durchschnitt (Mittelwert) der Elemente der Population. • Sie berechnet die Populationsstandardabweichung als Quadratwurzel der Populationsvarianz. Sie subtrahiert den Durchschnittswert vom Wert jedes Elements. Sie quadriert die Differenz für jedes Element. Sie addiert die quadrierten Differenzen aller Elemente der Population. Sie dividiert die Summe durch die Anzahl der Elemente der Population (N). Das Ergebnis ist die Populationsvarianz. Vergleichen Sie diesen Schritt mit der Funktion StdDev. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. Variance Basic- und Crystal-Syntax. Syntax der Argumente • • • • Variance (Feld) Variance (Feld, BedFeld) Variance (Feld, BedFeld, Bed) Variance (x) Argumente 178 • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis • Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. • x ist ein Array mit Zahlen- oder Währungswerten, die von der verwendeten Funktion ausgewertet werden können. Rückgabewert Zahl Aktion Das Programm ermöglicht es Ihnen, für eine Gruppe von Werten Ihres Berichts die Varianz zu berechnen. Hier ein Beispiel: • Sie können die Gesamtergebnisvarianz für alle Werte eines Feldes berechnen. • Sie können die Varianz für alle Werte einer Gruppe berechnen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden). • Sie können die Standardvarianz für alle Werte einer Gruppe berechnen, wobei der Gruppenwechsel durch Änderungen in einem Datums- oder booleschen Feld gesteuert wird (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden). • Wenn Sie eine Gruppe einzelner Werte angeben, können Sie die Varianz der Werte dieser Gruppe berechnen. Weitere Informationen hierzu finden Sie unter Array-Gruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Variance({Datei.BETRAG}) Berechnet die Varianz aller Werte des Feldes {Datei.BETRAG}. Variance({Datei.ERGEBNISSE}, {Datei.DATUM},"daily") Berechnet die Abweichung für jede Gruppe von Labortestergebnissen im Feld {Datei.ERGEBNISSE}. Die Testergebnisse werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Datei.DATUM} in ein neues Datum ändert. Crystal Reports-Anwenderhandbuch 179 8 8 Funktionen Gruppenergebnis Die folgenden Beispiele gelten für die Crystal-Syntax: Variance({Datei.ERGEBNIS}, {Datei.LEHRER}) % Variance({Datei.ERGEBNIS}) Gruppiert die Werte des Feldes {Datei.ERGEBNIS} nach Lehrern und berechnet die Varianz für jeden Lehrer als Prozentsatz der Varianz der Werte im gesamten Bericht (für alle aufgelisteten Lehrer). Variance([{Datei.MENGE1}, {Datei.MENGE2}, {Datei.MENGE3}, {Datei.MENGE4}]) Gibt 17,00 zurück, wo Menge1 = 2, Menge2 = 2, Menge3 = 10, und Menge4 = 8. Anmerkungen Die Funktion Variance berechnet eine Varianz wie folgt: • • • • • Sie berechnet den Durchschnitt (Mittelwert) der Elemente. Sie subtrahiert den Durchschnittswert vom Wert jedes Elements. Sie quadriert die Differenz für jedes Element. Sie addiert die quadrierten Differenzen aller Elemente. Sie dividiert die Summe durch eins weniger als die Zahl der Elemente des Beispiels (N - 1). Das Ergebnis ist die Varianz. Vergleichen Sie diesen letzten Schritt mit der Funktion PopulationVariance. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. PopulationVariance Basic- und Crystal-Syntax. Syntax der Argumente • • • • PopulationVariance (Feld) PopulationVariance (Feld, BedFeld) PopulationVariance (Feld, BedFeld, Bed) PopulationVariance (x) Argumente 180 • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis • Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. • x ist ein Array mit Zahlen- oder Währungswerten, die von der verwendeten Funktion ausgewertet werden können. Rückgabewert Zahl Aktion Das Programm ermöglicht es Ihnen, für eine Gruppe von Werten Ihres Berichts die Populationsvarianz zu berechnen. Hier ein Beispiel: • Sie können die Gesamtpopulationsvarianz für alle Werte eines Feldes berechnen. • Sie können die Populationsvarianz für alle Werte einer Gruppe berechnen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden). • Sie können die Populationsvarianz für alle Werte einer Gruppe berechnen, wobei die Gruppierung durch Änderungen in einem Datumsoder booleschen Feld gesteuert wird (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden). • Wenn Sie eine Gruppe einzelner Werte angeben, können Sie die Populationsvarianz der Werte dieser Gruppe berechnen. Weitere Informationen hierzu finden Sie unter Array-Gruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Beispiele zu den Varianten der Funktion PopulationVariance finden Sie, nachdem Sie auf die entsprechende Gruppenergebnisfunktion geklickt haben. PopulationVariance({Datei.VOLKSZÄHLUNG}) Berechnet die Varianz aller Werte des Feldes {Datei.VOLKSZÄHLUNG}. PopulationVariance({Datei.ERGEBNISSE}, {Datei.VORGANG}) Berechnet anhand des Feldes {Datei.ERGEBNISSE} die Populationsvarianz für jede Gruppe von Labortestergebnissen. Die Testergebnisse werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Datei.VORGANG} ändert. Crystal Reports-Anwenderhandbuch 181 8 8 Funktionen Gruppenergebnis PopulationVariance({Datei.ERGEBNIS}, {Datei.EINGEBÜRGERT}, "any change") Gruppiert die Werte des Feldes {Datei.ERGEBNIS} danach, ob der Getestete eingebürgert ist oder nicht, und berechnet die Populationsvarianz für jede Punktegruppe. Die folgenden Beispiele gelten für die Crystal-Syntax: PopulationVariance({Datei.ERGEBNIS}, {Datei.LEHRER}) % PopulationVariance({Datei.ERGEBNIS}) Gruppiert die Werte des Feldes {Datei.ERGEBNIS} nach Lehrern und berechnet die Populationsvarianz für jeden Lehrer als Prozentsatz der Populationsvarianz der Werte im gesamten Bericht (für alle aufgelisteten Lehrer). PopulationVariance([2,4,6,8,10]) Gibt 8 zurück. Anmerkungen Die Funktion PopulationVariance berechnet eine Populationsvarianz wie folgt: • • • • • Sie berechnet den Durchschnitt (Mittelwert) der Elemente der Population. Sie subtrahiert den Durchschnittswert vom Wert jedes Elements. Sie quadriert die Differenz für jedes Element. Sie addiert die quadrierten Differenzen aller Elemente der Population. Sie dividiert die Summe durch die Anzahl der Elemente der Population (N). Das Ergebnis ist die Populationsvarianz. Vergleichen Sie diesen letzten Schritt mit der Funktion Variance. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. Maximum Basic- und Crystal-Syntax. Syntax der Argumente • • • • 182 Maximum (Feld) Maximum (Feld, BedFeld) Maximum (Feld, BedFeld, Bed) Maximum (x) Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Argumente • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • x ist ein Array oder Bereich von Werten, die von der verwendeten Funktion ausgewertet werden können. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Zahl Aktion Das Programm ermöglicht es Ihnen, aus einer Gruppe von Werten den höchsten Wert zu ermitteln. Hier ein Beispiel: • Wenn ein Umsatzbericht ein Feld beinhaltet, das den Betrag jedes Auftrags enthält, können Sie den höchsten Auftragsbetrag aller im Bericht vorkommenden Aufträge ermitteln (der Höchstbetrag als Gesamtergebnis). • Wenn Sie Aufträge in Gruppen unterteilen (z. B. die Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden), können Sie den höchsten Auftragsbetrag pro Gruppe ermitteln (in diesem Fall pro Bundesland). • Wenn Sie Aufträge in Datums- oder boolesche Gruppen aufteilen (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden), können Sie den höchsten Auftragsbetrag pro Gruppe, basierend auf einer bestimmten Änderung im Datums- oder booleschen Feld, ermitteln (in diesem Fall pro Monat). • Wenn Sie eine Gruppe einzelner Werte angeben, können Sie den Höchstwert der Gruppe ermitteln. Informationen zu dieser Art von Höchstbetrag finden Sie unter Array-Gruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Maximum({Aufträge.Auftragssumme}) Gibt den höchsten Wert im Feld {Aufträge.Auftragssumme} zurück. Crystal Reports-Anwenderhandbuch 183 8 8 Funktionen Gruppenergebnis Maximum({Aufträge.BETRAG}, {Aufträge.KUNDENNR}) Identifiziert den größten Auftrag in jeder Auftragsgruppe im Feld {Aufträge.BETRAG} (d. h. den größten Auftrag für jeden Kunden). Die Aufträge werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Kunde.KUNDENNR} ändert. Maximum({Aufträge.BETRAG}, {Aufträge.AUFTRAGSDATUM}, "monthly") Identifiziert den größten Auftrag in jeder Auftragsgruppe im Feld {Aufträge.BETRAG} (d. h. den größten Auftrag für jeden Monat). Die Aufträge werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Aufträge.AUFTRAGSDATUM} in einen neuen Monat ändert. Das folgende Beispiel gilt für die Crystal-Syntax: Die Funktion Maximum ermöglicht es Ihnen außerdem, einen Mindestwert für die Berechnung festzulegen. Hier ein Beispiel: So wird mit Maximum([{Datei.SALDO}, 500]) beispielsweise ein Mindestwert von 500 für die Berechnung festgelegt. Der Ausdruck gibt in diesem Beispiel immer den Saldo zurück, es sei denn, er liegt unter 500. In diesem Fall wird der Mindestwert von 500 zurückgegeben. Folglich: Maximum([{Datei.GEWINNE}, 500]) = {Datei.GEWINNE} Wo Gewinne > 500. Hinweis: • Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. • Bei Verwendung dieser Funktion können Sie mit Hilfe der Funktion HasUpperBound (x) testen, ob der Gültigkeitsbereich ein Maximum hat, bevor Sie das Maximum ermitteln. Minimum Basic- und Crystal-Syntax. Syntax der Argumente • • • • 184 Minimum (Feld) Minimum (Feld, BedFeld) Minimum (Feld, BedFeld, Bed) Minimum (x) Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Argumente • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • x ist ein Array oder Bereich von Werten, die von der verwendeten Funktion ausgewertet werden können. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Bruchzahl Aktion Das Programm ermöglicht es Ihnen, aus einer Gruppe von Werten den niedrigsten Wert zu ermitteln. Hier ein Beispiel: • Wenn ein Umsatzbericht ein Feld beinhaltet, das den Betrag jedes Auftrags enthält, können Sie den niedrigsten Auftragsbetrag aller im Bericht vorkommenden Aufträge ermitteln (der niedrigste Betrag als Gesamtergebnis). • Wenn Sie Aufträge in Gruppen unterteilen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden), können Sie den niedrigsten Auftragsbetrag pro Gruppe ermitteln (in diesem Fall pro Bundesland). • Wenn Sie Aufträge in Datums- oder boolesche Gruppen unterteilen (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden), können Sie den niedrigsten Auftragsbetrag pro Gruppe basierend auf einer bestimmten Änderung in dem Datums- oder booleschen Feld ermitteln (in diesem Fall pro Monat). • Wenn Sie eine Gruppe einzelner Werte angeben, können Sie den niedrigsten Wert der Gruppe ermitteln. Informationen zu dieser Art von niedrigstem Betrag finden Sie unter Array-Gruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Minimum({Datei.MENGE}) Gibt den niedrigsten Wert im Feld {Datei.MENGE} zurück. Crystal Reports-Anwenderhandbuch 185 8 8 Funktionen Gruppenergebnis Minimum({Aufträge.BETRAG}, {Aufträge.KUNDENNR}) Identifiziert den kleinsten Auftrag in jeder Auftragsgruppe im Feld {Aufträge.BETRAG} (d. h. den kleinsten Auftrag für jeden Kunden). Die Aufträge werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Kunde.KUNDENNR} ändert. Minimum({Aufträge.MENGE}, {Aufträge.AUFTRAGSDATUM}, "monthly") Identifiziert den kleinsten Auftrag in jeder Auftragsgruppe im Feld {Aufträge.BETRAG} (d. h. den kleinsten Auftrag für jeden Monat). Die Aufträge werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Aufträge.AUFTRAGSDATUM} in einen neuen Monat ändert. Das folgende Beispiel gilt für die Crystal-Syntax: Die Funktion Minimum ermöglicht es Ihnen außerdem, einen Höchstwert für die Berechnung festzulegen. Hier ein Beispiel: So wird mit Minimum([{Datei.PROVISION}, 2500]) die aufgelaufene Provision bis zu einem Höchstwert von 2500 zurückgegeben. Wenn die aufgelaufene Provision 2.500 € überschreitet, gibt der Ausdruck 2500 zurück. Folglich: Minimum([{Datei.PROVISION}, 2500]) Gibt 1575 zurück, wo Provision = 1575. Hinweis: • Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. • Bei Verwendung dieser Funktion können Sie mit Hilfe der Funktion HasLowerBound (x) testen, ob der Gültigkeitsbereich ein Minimum hat, bevor Sie das Minimum ermitteln. Count Basic- und Crystal-Syntax. Syntax der Argumente • • • • Count (Feld) Count (Feld, BedFeld) Count (Feld, BedFeld, Bed) Count (x) Argumente • 186 Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • x ist ein Datenfeld mit Werten, die von der verwendeten Funktion ausgewertet werden können. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Zahl Aktion Das Programm ermöglicht es Ihnen, die Anzahl der Werte, die in Ihrem Bericht vorhanden sind, für ein angegebenes Feld zu berechnen. Hier ein Beispiel: • Wenn ein Umsatzbericht alle erteilten Aufträge und zu jedem Auftrag den Betrag enthält, können Sie die Anzahl aller im Bericht erscheinenden Aufträge berechnen (eine Gesamtanzahl). • Wenn Sie Aufträge in Gruppen unterteilen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden), können Sie die Anzahl der Aufträge pro Gruppe berechnen (in diesem Fall pro Bundesland). • Wenn Sie Aufträge in Datums- oder boolesche Gruppen unterteilen (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden), können Sie die Anzahl der Aufträge pro Gruppe berechnen, wobei jeweils ein bestimmter Wechsel im Datums- oder booleschen Feld berücksichtigt wird (in diesem Fall pro Monat). • Wenn Sie eine Gruppe einzelner Werte angeben, können Sie die Anzahl der Werte innerhalb der Gruppe berechnen. Informationen zu dieser Art von Zählung finden Sie unter Array-Gruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Count({Aufträge.BETRAG}, {Aufträge.KUNDENNR}) Diese Formel zählt die Anzahl der Aufträge in jeder Auftragsgruppe im Feld {Aufträge.Auftragssumme} (d. h. die Gesamtanzahl der Aufträge für jeden Kunden). Die Aufträge werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Kunde.KUNDENNR} ändert. Crystal Reports-Anwenderhandbuch 187 8 8 Funktionen Gruppenergebnis Count({Aufträge.Auftragssumme}, {Aufträge.AUFTRAGSDATUM}, "monthly") Diese Formel zählt die Anzahl der Aufträge in jeder Auftragsgruppe im Mengenfeld (d. h. die Gesamtanzahl der Aufträge für jeden Monat). Die Aufträge werden in Gruppen aufgeteilt, wenn sich der Wert im Feld {Aufträge.AUFTRAGSDATUM} in einen neuen Monat ändert. Die folgenden Beispiele gelten für die Crystal-Syntax: If Count({Aufträge.AUFTRAGSKENNUNG}) >= 100 Then "Glückwunsch: Sie haben Ihr Pensum erfüllt!" Else "" Druckt den Glückwunsch, wenn die Anzahl der Aufträge größer als oder gleich 100 ist. Anderenfalls wird nichts gedruckt. Count([1,2,3,4,5]) Gibt 5 zurück. Zählt, wie viele Werte der Array insgesamt enthält. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. DistinctCount Basic- und Crystal-Syntax. Syntax der Argumente • • • • DistinctCount (Feld) DistinctCount (Feld, BedFeld) DistinctCount (Feld, BedFeld, Bed) DistinctCount (x) Argumente 188 • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • x ist ein Datenfeld mit Werten, die von der verwendeten Funktion ausgewertet werden können. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Rückgabewert Zahl Aktion Das Programm ermöglicht es Ihnen, die Anzahl der eindeutigen Werte zu ermitteln, die in Ihrem Bericht vorkommen. Hier ein Beispiel: • Wenn ein Umsatzbericht alle von den Kunden erteilten Aufträge enthält, können Sie die Gesamtanzahl der im Bericht vorkommenden unterschiedlichen Kunden berechnen (ein Gesamtergebnis der Anzahl eindeutiger Werte), wobei doppelt vorkommende Datensätze ausgeschlossen werden. Hat ein Kunde mehrere Aufträge erteilt, werden die doppelten Datensätze dieses Kunden ignoriert. • Wenn Sie Aufträge in Gruppen unterteilen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden), können Sie die Anzahl unterschiedlicher Kunden pro Gruppe berechnen (in diesem Fall pro Bundesland). Alle Kunden, die mehr als einen Auftrag erteilt haben und mehrmals in einer Gruppe vorkommen, werden nur einmal gezählt. • Wenn Sie Aufträge in Datums- oder boolesche Gruppen unterteilen (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden), können Sie für jede Gruppe die Anzahl unterschiedlicher Kunden berechnen, wobei jeweils eine bestimmte Änderung im D Hat ein Kunde mehr als einen Auftrag in einem Monat erteilt, werden doppelte Instanzen dieses Kunden ignoriert. • Wenn Sie eine Gruppe einzelner Werte angeben, können Sie die Anzahl unterschiedlicher Werte dieser Gruppe berechnen. Werte, die in der Gruppe mehrfach vorkommen, werden nur einmal gezählt. Informationen zur Zählung von eindeutigen Werten finden Sie unter ArrayGruppenergebnisfunktionen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DistinctCount({Kunde.Region}) Ermittelt die Anzahl unterschiedlicher Bundesländer, die im Feld {Kunde.Region} angegeben sind. Alle Wiederholungen werden ignoriert. DistinctCount({Kunde.ORT}, {Kunde.Region}) Ermittelt für jede Regionsgruppe die Anzahl unterschiedlicher Städte. DistinctCount({Aufträge.KUNDENNR}, {Aufträge.AUFTRAGSDATUM}, "weekly") Crystal Reports-Anwenderhandbuch 189 8 8 Funktionen Gruppenergebnis Ermittelt die Anzahl unterschiedlicher Kunden, mit denen Kontakt aufgenommen wurde, wobei Nachfassbesuche nicht berücksichtigt werden. Die Kunden werden in Gruppen unterteilt, wenn sich der Wert im Feld {Aufträge.AUFTRAGSDATUM} ändert (neue Woche). Das folgende Beispiel gilt für die Crystal-Syntax: DistinctCount([1,3,5,3,2,5]) Gibt 4 zurück. Zählt, wie viele unterschiedliche Werte der Array enthält. Doppelte Werte werden ignoriert. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. Anmerkungen Die Funktion DistinctCount ermittelt die Anzahl unterschiedlicher Werte in einem Feld. Doppelte Werte werden ignoriert. Correlation Basic- und Crystal-Syntax. Syntax der Argumente • • • Correlation (Feld, Feld) Correlation (Feld, Feld, BedFeld) Correlation (Feld, Feld, BedFeld, Bed) Argumente • • • Feld ist ein beliebiges numerisches Feld. Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Bruchzahl 190 Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Aktion Das Programm ermöglicht es Ihnen, die Korrelation der angegebenen Felder zu berechnen (d. h. inwieweit die Felder auf gleiche Weise variieren). Hier ein Beispiel: • Sie können die Korrelation zweier Felder für alle Datensätze im Bericht berechnen. • Sie können die Korrelation zweier Felder für alle Werte in einer Gruppe berechnen (z. B. Aufträge gruppiert nach den Bundesländern, in denen sie erteilt wurden). • Sie können die Korrelation zweier Felder für alle Werte in einer Gruppe berechnen, wobei der Gruppenwechsel durch Änderungen in einem Datums- oder booleschen Feld gesteuert wird (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Correlation({Kunde.KUNDENNR}, {Kunde.KREDITKENNUNG}) Berechnet die Korrelation zwischen dem Feld {Kunde.KUNDENNR} und dem Feld {Kunde.KREDITKENNUNG}. Correlation({Aufträge.KUNDENNR}, {Aufträge.KREDITKENNUNG}, {Kunde.Region}) Berechnet die Korrelation zwischen dem Feld {Aufträge.KUNDENNR} und dem Feld {Aufträge.KREDITKENNUNG} für jede Region. Korrelation({Aufträge.KUNDENNR}, {Aufträge.KREDITKENNUNG}, {Kunde.Region}, "monthly") Berechnet die Korrelation zwischen dem Feld {Aufträge.KUNDENNR} und dem Feld {Aufträge.KREDITKENNUNG} für alle Werte in jeder Regionsgruppe und für jeden Monat. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. Anmerkungen Die Korrelation ist immer eine Zahl zwischen -1 und 1, es sei denn, sie ist nicht definiert. In diesem Fall wird der Funktion ein Nullwert (0) zugewiesen. Bei einem Nullwert (0) besteht keine Korrelation zwischen den Feldern. Crystal Reports-Anwenderhandbuch 191 8 8 Funktionen Gruppenergebnis Covariance Basic- und Crystal-Syntax. Syntax der Argumente • • • Covariance (Feld, Feld) Covariance (Feld, Feld, BedFeld) Covariance (Feld, Feld, BedFeld, Bed) Argumente • Feld ist ein beliebiges numerisches Feld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Bruchzahl Aktion Die Kovarianz ist der Grad der linearen Beziehung zwischen Variablenpaaren (d.h. die Tendenz zweier Felder, zusammen zu variieren). Felder sind kovariant, wenn sie nach einer bestimmten mathematischen Beziehung variieren. Der Umfang eines Kreises und der Radius eines Kreises sind kovariant. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Covariance({Tabelle.FELD1}, {Tabelle.FELD2}) Berechnet die Kovarianz der beiden Felder und gibt sie als Bruchzahl zurück. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. 192 Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Anmerkungen Die Funktion Covariance berechnet die Kovarianz wie folgt: • Sie berechnet den Durchschnittswert (Mittelwert) der Elemente in jeder Stichprobe. • Sie subtrahiert den Durchschnittswert vom Wert jedes Elements in beiden Stichproben. • • Sie multipliziert die Differenz für jedes Elementenpaar. Sie berechnet den Durchschnittswert (Mittelwert) für alle Produkte dieser Multiplikation. Das Ergebnis ist die Kovarianz. WeightedAverage Basic- und Crystal-Syntax. Syntax der Argumente • • • WeightedAverage (Feld, Feld) WeightedAverage (Feld, Feld, BedFeld) WeightedAverage (Feld, Feld, BedFeld, Bed) Argumente • Feld ist ein gültiges numerisches Datenbank- oder Formelfeld, das von dieser Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Bruchzahl Aktion Das Programm ermöglicht es Ihnen, den gewichteten Mittelwert für die angegebenen Felder zu ermitteln. Beim Berechnen eines gewichteten Mittelwertes wird der Durchschnittswert eines Feldes ermittelt und anhand der Werte in einem anderen Feld der Beitrag jedes Wertes aus dem ersten Feld zum Durchschnittswert „abgewogen“. Bei einem normalen Durchschnittswert entsprechen alle gewichteten Werte 1. Crystal Reports-Anwenderhandbuch 193 8 8 Funktionen Gruppenergebnis Hier ein Beispiel: • • Sie können den gewichteten Mittelwert zweier Felder berechnen. • Sie können den gewichteten Mittelwert zweier Felder für alle Werte einer Gruppe berechnen, wobei die Gruppierung durch Änderungen in einem Datums- oder booleschen Feld gesteuert wird (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden). Sie können den gewichteten Mittelwert zweier Felder für alle Werte in einer Gruppe berechnen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: WeightedAverage({Tabelle.FELD1}, {Tabelle.FELD2}) Gibt 3,5 zurück, wobei die beiden Felder jeweils vier Werte enthalten. Feld1 enthält die Werte 3, 2, 5 und 1. Feld2 enthält die Werte 0, 1, 1 und 0. Die Funktion WeightedAverage führt folgende Berechnung durch: (3*0 + 2*1 + 5*1 + 1*0)/sum{Tabelle.FELD2}) = 3,5. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. Median Basic- und Crystal-Syntax. Syntax der Argumente • • • Median (Feld) Median (Feld, BedFeld) Median (Feld, BedFeld, Bed) Argumente 194 • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Rückgabewert Bruchzahl Aktion Berechnet den Medianwert der gegebenen numerischen Felder. Dabei handelt es sich um den Medianwert in einer numerischen Wertefolge (oder den Durchschnittswert der beiden mittleren Werte in einer geradzahligen Wertefolge). Hier ein Beispiel: • • Sie können den Medianwert aller Werte in einem Feld berechnen. • Sie können den Medianwert aller Werte innerhalb einer Gruppe berechnen, wobei die Gruppierung durch Änderungen in einem Datumsoder booleschen Feld gesteuert wird (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden). Sie können den Medianwert aller Werte im Feld innerhalb einer Gruppe berechnen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Median({Kunde.Vorjahresumsatz}) Gibt 29.087 € zurück, wobei die Werte im Feld {Kunde.Vorjahresumsatz} 27.014 €, 28.000 €, 29.087 €, 34.500 € und 48.260 € entsprechen. Median({Kunde.Vorjahresumsatz}, {Kunde.Region) Gruppiert das Feld {Kunde.Vorjahresumsatz} nach Region und gibt den Medianwert des Feldes pro Region zurück. Median({Aufträge.Auftragssumme}, {Kunde.Region}, "monthly") Gruppiert die Werte im Feld {Aufträge.Auftragssumme} nach Region und gibt den Medianwert der Auftragsmenge für jede Region pro Monat zurück. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. Crystal Reports-Anwenderhandbuch 195 8 8 Funktionen Gruppenergebnis PthPercentile Basic- und Crystal-Syntax. Syntax der Argumente • • • PthPercentile (P, Feld) PthPercentile (P, Feld, BedFeld) PthPercentile (P, Feld, BedFeld, Bed) Argumente • • P ist eine beliebige ganze Zahl zwischen 0 und 100. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Feld ist ein beliebiges Zahlenfeld oder Währungsfeld, das von der Funktion ausgewertet werden kann. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Number- oder Currency-Wert Aktion Berechnet das Perzentil für einen angegebenen Wert (P) in einem Numberoder Währungsfeld. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: PthPercentile(20, {Kunde.Vorjahresumsatz}) Gibt 2.302 € zurück als Wert im 20sten Perzentil (wenn 20 % im Feld {Kunde.Vorjahresumsatz} unter 2.302 € liegen. PthPercentile(P, {Kunde.Vorjahresumsatz}, {Kunde.Region}) Gruppiert das Feld {Kunde.Vorjahresumsatz} nach Region und gibt das Perzentil des Wertes für P im Feld {Kunde.Vorjahresumsatz} per Region zurück. 196 Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis PthPercentile(P,{Aufträge.Auftragssumme}, {Kunde.Region}, "monthly") Gruppiert die Werte im Feld {Aufträge.Auftragssumme} nach Region und gibt dann das Perzentil des Wertes für P im Feld {Aufträge.Auftragssumme} für jede Region pro Monat zurück. Anmerkungen P = 50 (prozentual 50) entspricht dem von der Funktion Median (Medianwert) zurückgegebenen Wert. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. NthLargest Basic- und Crystal-Syntax. Syntax der Argumente • • • NthLargest (N, Feld) NthLargest (N, Feld, BedFeld) NthLargest (N, Feld, BedFeld, Bed) Argumente • • N ist eine beliebige Ganzzahl von 1 bis (einschließlich) 100. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Bruchzahl Aktion Bestimmt den N.-größten Wert in einem gegebenen Feld, entweder für den ganzen Bericht oder für jede Instanz der Gruppe (BedFeld). Crystal Reports-Anwenderhandbuch 197 8 8 Funktionen Gruppenergebnis Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: NthLargest(1, {Kunde.KUNDENNR} Gibt 50 zurück, wobei das Feld {Kunde.KUNDENNR} numerische Werte im Bereich von 12 bis 50 enthält. NthLargest(5, {Kunde.Kundenname}, {Kunde.Region}) Gibt den fünftgrößten Wert pro Region im Feld {Kunde.Kundenname} zurück. NthLargest(1, {Aufträge.Auftragssumme}, {Kunde.Region}, "monthly") Gruppiert die Werte im Feld {Aufträge.Auftragssumme} nach Region und gibt dann den größten Wert im Feld {Aufträge.Auftragssumme} für jede Region pro Monat zurück. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. NthSmallest Basic- und Crystal-Syntax. Syntax der Argumente • • • NthSmallest (N, Feld) NthSmallest (N, Feld, BedFeld) NthSmallest (N, Feld, BedFeld, Bed) Argumente • • N ist eine beliebige Ganzzahl von 1 bis (einschließlich) 100. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Bruchzahl 198 Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Aktion Bestimmt den N.-kleinsten Wert in einem gegebenen Feld, entweder für den ganzen Bericht oder für jede Instanz der Gruppe (BedFeld). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: NthSmallest (1, {Kunde.KUNDENNR} Gibt 12 zurück, wobei das Feld {Kunde.KUNDENNR} numerische Werte im Bereich von 12 bis 50 enthält. NthSmallest(1, {Kunde.Kundenname}, {Kunde.Region}) Gibt den kleinsten Wert pro Region im Feld {Kunde.Kundenname} zurück. NthSmallest({Aufträge.Auftragssumme}, {Kunde.Region}, "monthly") Gruppiert die Werte im Feld {Aufträge.Auftragssumme} nach Region und gibt dann den kleinsten Wert im Feld {Aufträge.Auftragssumme} für jede Region pro Monat zurück. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. Mode Basic- und Crystal-Syntax. Syntax der Argumente • • • Mode (Feld) Mode (Feld, BedFeld) Mode (Feld, BedFeld, Bed) Argumente • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Crystal Reports-Anwenderhandbuch 199 8 8 Funktionen Gruppenergebnis Rückgabewert Bruchzahl Aktion Identifiziert den am meisten vorkommenden Wert. Hier ein Beispiel: • • Sie können den Modus aller Werte in einem Feld berechnen. • Sie können den Modus aller Werte innerhalb einer Gruppe berechnen, wobei die Gruppierung durch Änderungen in einem Datums- oder booleschen Feld gesteuert wird (z. B. Aufträge nach den Monaten gruppieren, in denen sie erteilt wurden). Sie können den Modus aller Werte in einem Feld innerhalb einer Gruppe berechnen (z. B. Aufträge nach den Bundesländern gruppieren, in denen sie erteilt wurden). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Modus({Kunde.Kundenname}) Gibt den Modus (den am meisten vorkommenden Wert) für das Feld {Kunde.Kundenname} zurück. Mode({Kunde.Kundenname}, {Kunde.Region}) Gruppiert die Werte im Feld {Kunde.Kundenname} nach Region und gibt dann den Modus für dieses Feld pro Region zurück. Mode({Kunde.Kundenname}, {Kunde.Region}, "monthly") Gruppiert die Werte im Feld {Kunde.Kundenname} nach Region und gibt dann den Modus für dieses Feld pro Region und Monat zurück. Anmerkungen Die Funktion Mode entspricht der Funktion NthMostFrequent, wenn Folgendes zutrifft: N = 1. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. 200 Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis NthMostFrequent Basic- und Crystal-Syntax. Syntax der Argumente • • • NthMostFrequent (N, Feld) NthMostFrequent (N, Feld, BedFeld) NthMostFrequent (N, Feld, BedFeld, Bed) Rückgabewert Bruchzahl Argumente • • N ist eine beliebige Ganzzahl von 1 bis (einschließlich) 100. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld, das von der Funktion ausgewertet werden kann. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Aktion Bestimmt den N.-häufigsten Wert in einem gegebenen Feld, entweder für den ganzen Bericht oder für jede Instanz der Gruppe (BedFeld). Wenn die Werte im Feld nur einmal erscheinen, gibt die Funktion standardmäßig den Mindestwert zurück. Typische Verwendung Sie können diese Funktion verwenden, um extrem hohe oder niedrige Werte in einem bestimmten Feld hervorzuheben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: NthMostFrequent(1, {Kunde.Vorjahresumsatz}) Gibt 29.087 € zurück, wobei der Wert 29.087 € am häufigsten im Feld {Kunde.Vorjahresumsatz} erscheint. Crystal Reports-Anwenderhandbuch 201 8 8 Funktionen Gruppenergebnis NthMostFrequent(2, {Kunde.Vorjahresumsatz}) Gibt 34.700 € zurück, wobei 34.700 € der zweithäufigste Wert im Feld Vorjahresumsatz ist. NthMostFrequent(1, {Kunde.Vorjahresumsatz}, {Kunde.Region}) Gibt 48.000 € für eine Instanz der Gruppe Kunde.Region, wobei 48.000 € der häufigste Wert in der Gruppe ist; gibt 34.000 € für eine andere Gruppeninstanz zurück, wobei 34.000 € der häufigste Wert für jene Instanz ist; gibt 9.000 € für eine dritte Gruppeninstanz, wobei keiner der Werte für diese Instanz wiederholt wird, und 9.000 € der niedrigste Wert ist. Anmerkungen Wenn mehrere Werte mit der gleichen Häufigkeit auftreten, wird der kleinste Wert als Wert mit der größten Häufigkeit angesehen. Wenn beispielsweise: NthMostFrequent(1, {Kunde.Vorjahresumsatz}) einen Wert von 29.087 € zurückgibt und ein anderer Wert, der größer ist als 29.087 € (z. B. 35.000 €), genauso oft erscheint, gibt NthMostFrequent mit N = 1 trotzdem 29.087 € zurück, da dies der kleinere Wert ist. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. PercentOfSum Basic- und Crystal-Syntax. Syntax der Argumente • • • • • • PercentOfSum (Feld, BedFeld) PercentOfSum (Feld, BedFeld, Bed) PercentOfSum (Feld, InneresBedFeld, ÄußeresBedFeld) PercentOfSum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) PercentOfSum (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) PercentOfSum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) Argumente 202 • Feld ist ein beliebiges Zahlenfeld oder Währungsfeld, das von der Funktion ausgewertet werden kann. • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis • Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. • Das Feld InneresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • InnereBed ist eine Zeichenfolge, die den Gruppierungstyp für InneresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn InneresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. • Das Feld ÄußeresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • ÄußereBed ist eine Zeichenfolge, die den Gruppierungstyp für ÄußeresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn ÄußeresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Zahlenwert Aktion PercentOfSum (Feld, BedFeld) hat dieselbe Wirkung wie: 100 * Sum (Feld, BedFeld) / Sum (Feld). Damit wird die Summe der Werte im Feld "Feld" für die durch BedFeld festgelegte Gruppe als Prozentanteil des Gesamtergebnisses ausgedrückt. PercentOfSum (Feld, BedFeld, Bed) hat dieselbe Wirkung wie: 100 * Sum (Feld, BedFeld) / Sum (Feld). Mit dem String-Argument Bed werden weitere zusätzliche Informationen angegeben, um die Gruppierung genau festzulegen. Wenn „BedFeld“ ein Datumsfeld ist, dann kann für die Gruppierung „täglich“, „wöchentlich“ oder „monatlich“ usw. festgelegt werden. PercentOfSum (Feld, InneresBedFeld, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Sum (Feld, InneresBedFeld) / Sum (Feld, ÄußeresBedFeld). Damit wird die Summe der Werte im Feld "Feld" für die durch InneresBedFeld festgelegte Gruppe als Prozentanteil der Summe für die durch ÄußeresBedFeld festgelegte Gruppe ausgedrückt. Crystal Reports-Anwenderhandbuch 203 8 8 Funktionen Gruppenergebnis PercentOfSum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Sum (Feld, InneresBedFeld, InnereBed) / Sum (Feld, ÄußeresBedFeld). PercentOfSum (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Sum (Feld, InneresBedFeld) / Sum (Feld, ÄußeresBedFeld, ÄußereBed). PercentOfSum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Sum (Feld, InneresBedFeld, InnereBed) / Sum (Feld, ÄußeresBedFeld, ÄußereBed). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: PercentOfSum ({Aufträge.Auftragssumme}, {Aufträge.Auftragsdatum}, "annually") Gibt den Gesamtwert der in einem angegebenen Jahr bestellten Aufträge als Prozentanteil am Gesamtwert aller Aufträge zurück. PercentOfSum({Aufträge.Auftragssumme}, {Aufträge.Versand durch}) Gibt den Gesamtwert der durch ein angegebenes Transportunternehmen gelieferten Aufträge als Prozentanteil am Gesamtwert aller Aufträge zurück. PercentOfSum ({Produkt.Preis (SRP)}, {Produkt.Größe}, {Produkt.Produktklasse}) Gibt den Gesamtpreis der Produkte einer angegebenen Größe und Klasse als Prozentanteil am Gesamtpreis der Produkte dieser Klasse zurück. Anmerkungen Diese Funktion und weitere Prozentanteilfunktionen dienen dazu, Prozentgruppenergebnisfelder zu unterstützen. Die in den Argumenten angegebenen Gruppierungen müssen im Bericht tatsächlich vorhanden sein, damit der Aufruf der Gruppenergebnisfunktion gelingen kann. PercentOfAverage Basic- und Crystal-Syntax. Syntax der Argumente • • 204 PercentOfAverage (Feld, BedFeld) PercentOfAverage (Feld, BedFeld, Bed) Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis • • • PercentOfAverage (Feld, InneresBedFeld, äußeresBedFeld) • PercentOfAverage (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) PercentOfAverage (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) PercentOfAverage (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) Argumente • Feld ist ein beliebiges Zahlenfeld oder Währungsfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • Das Feld InneresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • InnereBed ist eine Zeichenfolge, die den Gruppierungstyp für InneresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn InneresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. • Das Feld ÄußeresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • ÄußereBed ist eine Zeichenfolge, die den Gruppierungstyp für ÄußeresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn ÄußeresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen über zulässige Zeichenfolgen für dieses Argument finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Zahlenwert Aktion PercentOfAverage (Feld, BedFeld) hat dieselbe Wirkung wie: 100 * Average (Feld, BedFeld) / Average (Feld). Damit wird der Durchschnitt der Werte im Feld "Feld" für die durch BedFeld festgelegte Gruppe als Prozentanteil des Durchschnitts aller Werte von Feld ausgedrückt. Crystal Reports-Anwenderhandbuch 205 8 8 Funktionen Gruppenergebnis PercentOfAverage (Feld, BedFeld, Bed) hat dieselbe Wirkung wie: 100 * Average (Feld, BedFeld, Bed) / Average (Feld). Mit dem String-Argument Bed werden weitere zusätzliche Informationen angegeben, um die Gruppierung genau festzulegen. Wenn „BedFeld“ ein Datumsfeld ist, dann kann für die Gruppierung „täglich“, „wöchentlich“ oder „monatlich“ usw. festgelegt werden. PercentOfAverage (Feld, InneresBedFeld, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Average (Feld, InneresBedFeld) / Average (Feld, ÄußeresBedFeld). Damit wird der Durchschnitt der Werte im Feld "Feld" für die durch InneresBedFeldfestgelegte Gruppe als Prozentanteil des Durchschnitts der durch ÄußeresBedFeld festgelegten Gruppe ausgedrückt. PercentOfAverage (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Average (Feld, InneresBedFeld, InnereBed) / Sum (Feld, ÄußeresBedFeld). PercentOfAverage (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Average (Feld, InneresBedFeld) / Sum (Feld, ÄußeresBedFeld, ÄußereBed). PercentOfAverage (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Average (Feld, InneresBedFeld, InnereBed) / Sum (Feld, ÄußeresBedFeld, ÄußereBed). Anmerkungen Diese Funktion und weitere Prozentanteilfunktionen dienen dazu, Prozentgruppenergebnisfelder zu unterstützen. Die in den Argumenten angegebenen Gruppierungen müssen im Bericht tatsächlich vorhanden sein, damit der Aufruf der Gruppenergebnisfunktion gelingen kann. PercentOfMaximum Basic- und Crystal-Syntax Syntax der Argumente 206 • • • • PercentOfMaximum (Feld, BedFeld) • PercentOfMaximum (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) • PercentOfMaximum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) PercentOfMaximum (Feld, BedFeld, Bed) PercentOfMaximum (Feld, InneresBedFeld, ÄußeresBedFeld) PercentOfMaximum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Argumente • Feld ist ein beliebiges Zahlenfeld oder Währungsfeld, das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • Das Feld InneresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • InnereBed ist eine Zeichenfolge, die den Gruppierungstyp für InneresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn InneresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. • Das Feld ÄußeresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • ÄußereBed ist eine Zeichenfolge, die den Gruppierungstyp für ÄußeresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn ÄußeresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Zahlenwert Aktion PercentOfMaximum (Feld, BedFeld) hat dieselbe Wirkung wie: 100 * Maximum (Feld, BedFeld) / Maximum (Feld). Damit wird das Maximum der Werte im Feld "Feld" für die durch BedFeld festgelegte Gruppe als Prozentanteil des Maximums aller Werte von Feld ausgedrückt. PercentOfMaximum (Feld, BedFeld, Bed) hat dieselbe Wirkung wie: 100 * Maximum (Feld, BedFeld, Bed) / Maximum (Feld). Mit dem String-Argument Bed werden weitere zusätzliche Informationen angegeben, um die Gruppierung genau festzulegen. Wenn „BedFeld“ ein Datumsfeld ist, dann kann für die Gruppierung „täglich“, „wöchentlich“ oder „monatlich“ usw. festgelegt werden. Crystal Reports-Anwenderhandbuch 207 8 8 Funktionen Gruppenergebnis PercentOfMaximum (Feld, InneresBedFeld, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Maximum (Feld, InneresBedFeld) / Maximum (Feld, ÄußeresBedFeld). Damit wird das Maximum der Werte im Feld "Feld" für die durch InneresBedFeld festgelegte Gruppe als Prozentanteil des Maximums für die durch ÄußeresBedFeld festgelegte Gruppe ausgedrückt. PercentOfMaximum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Maximum (Feld, InneresBedFeld, InnereBed) / Maximum (Feld, ÄußeresBedFeld). PercentOfMaximum (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Maximum (Feld, InneresBedFeld) / Maximum (Feld, ÄußeresBedFeld, ÄußereBed). PercentOfMaximum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Maximum (Feld, InneresBedFeld, InnereBed) / Maximum (Feld, ÄußeresBedFeld, ÄußereBed). Anmerkungen Diese Funktion und weitere Prozentanteilfunktionen dienen dazu, Prozentgruppenergebnisfelder zu unterstützen. Die in den Argumenten angegebenen Gruppierungen müssen im Bericht tatsächlich vorhanden sein, damit der Aufruf der Gruppenergebnisfunktion gelingen kann. PercentOfMinimum Basic- und Crystal-Syntax. Syntax der Argumente • • • • • PercentOfMinimum (Feld, BedFeld) • PercentOfMinimum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) PercentOfMinimum (Feld, BedFeld, Bed) PercentOfMinimum (Feld, InneresBedFeld, ÄußeresBedFeld) PercentOfMinimum (Feld, inneresBedFeld, innereBed, äußeresBedFeld) PercentOfMinimum (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) Argumente 208 • Feld ist ein beliebiges Zahlenfeld oder Währungsfeld, das von der Funktion ausgewertet werden kann. • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis • Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. • Das Feld InneresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • InnereBed ist eine Zeichenfolge, die den Gruppierungstyp für InneresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn InneresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. • Das Feld ÄußeresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • ÄußereBed ist eine Zeichenfolge, die den Gruppierungstyp für ÄußeresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn ÄußeresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Zahlenwert Aktion PercentOfMinimum (Feld, BedFeld) hat dieselbe Wirkung wie: 100 * Minimum (Feld, BedFeld) / Minimum (Feld). Damit wird das Minimum der Werte im Feld "Feld" für die durch BedFeld festgelegte Gruppe als Prozentanteil des Minimums aller Werte von Feld ausgedrückt. PercentOfMinimum (Feld, BedFeld, Bed) hat dieselbe Wirkung wie: 100 * Minimum (Feld, BedFeld, Bed) / Minimum (Feld). Mit dem String-Argument Bed werden weitere zusätzliche Informationen angegeben, um die Gruppierung genau festzulegen. Wenn „BedFeld“ ein Datumsfeld ist, dann kann für die Gruppierung „täglich“, „wöchentlich“ oder „monatlich“ usw. festgelegt werden. PercentOfMinimum (Feld, InneresBedFeld, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Minimum (Feld, InneresBedFeld) / Minimum (Feld, ÄußeresBedFeld). Damit wird das Minimum der Werte im Feld "Feld" für die durch InneresBedFeld festgelegte Gruppe als Prozentanteil des Minimums für die durch ÄußeresBedFeld festgelegte Gruppe ausgedrückt. PercentOfMinimum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Minimum (Feld, InneresBedFeld, InnereBed) / Minimum (Feld, ÄußeresBedFeld). Crystal Reports-Anwenderhandbuch 209 8 8 Funktionen Gruppenergebnis PercentOfMinimum (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Minimum (Feld, InneresBedFeld) / Minimum (Feld, ÄußeresBedFeld, ÄußereBed). PercentOfMinimum (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Minimum (Feld, InneresBedFeld, InnereBed) / Minimum (Feld, ÄußeresBedFeld, ÄußereBed). Anmerkungen Diese Funktion und weitere Prozentanteilfunktionen dienen dazu, Prozentgruppenergebnisfelder zu unterstützen. Die in den Argumenten angegebenen Gruppierungen müssen im Bericht tatsächlich vorhanden sein, damit der Aufruf der Gruppenergebnisfunktion gelingen kann. PercentOfCount Basic- und Crystal-Syntax. Syntax der Argumente • • • • • • PercentOfCount (Feld, BedFeld) PercentOfCount (Feld, BedFeld, Bed) PercentOfCount (Feld, InneresBedFeld, ÄußeresBedFeld) PercentOfCount (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) PercentOfCount (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) PercentOfCount (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) Argumente 210 • Feld ist ein Feld vom Typ Number (Zahl), Currency (Währung), String (Zeichenfolge), Boolean (Boolesch), Date (Datum), Time (Uhrzeit) oder DateTime (DatumUhrzeit), das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • Das Feld InneresBedFeld wird zum Gruppieren der Werte in Feld verwendet. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis • InnereBed ist eine Zeichenfolge, die den Gruppierungstyp für InneresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn InneresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. • Das Feld ÄußeresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • ÄußereBed ist eine Zeichenfolge, die den Gruppierungstyp für ÄußeresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn ÄußeresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Zahlenwert Aktion PercentOfCount (Feld, BedFeld) hat dieselbe Wirkung wie: 100 * Count (Feld, BedFeld) / Count (Feld). Damit wird die Zählung der Werte im Feld "Feld" für die durch BedFeld festgelegte Gruppe als Prozentanteil der Zählung aller Werte von Feld ausgedrückt. PercentOfCount (Feld, BedFeld, Bed) hat dieselbe Wirkung wie: 100 * Count (Feld, BedFeld, Bed) / Count (Feld). Mit dem String-Argument Bed werden weitere zusätzliche Informationen angegeben, um die Gruppierung genau festzulegen. Wenn „BedFeld“ ein Datumsfeld ist, dann kann für die Gruppierung „täglich“, „wöchentlich“ oder „monatlich“ usw. festgelegt werden. PercentOfCount (Feld, InneresBedFeld, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Count (Feld, InneresBedFeld) / Count (Feld, ÄußeresBedFeld). Damit wird die Zählung der Werte im Feld "Feld" für die durch InneresBedFeld festgelegte Gruppe als Prozentanteil der Zählung der durch ÄußeresBedFeld festgelegten Gruppe ausgedrückt. PercentOfCount (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * Count (Feld, InneresBedFeld, InnereBed) / Count (Feld, ÄußeresBedFeld). PercentOfCount (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Count (Feld, InneresBedFeld) / Count (Feld, ÄußeresBedFeld, ÄußereBed). PercentOfCount (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * Count (Feld, InneresBedFeld, InnereBed) / Count (Feld, ÄußeresBedFeld, ÄußereBed). Crystal Reports-Anwenderhandbuch 211 8 8 Funktionen Gruppenergebnis Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: PercentOfCount ({Aufträge.Auftrags-ID}, {Aufträge.Auftragsdatum}, "annually") Gibt die Gesamtanzahl der Aufträge in einem angegebenen Jahr als Prozentanteil an der Gesamtanzahl aller Aufträge zurück. PercentOfCount({Aufträge.Auftrags-ID}, {Aufträge.Versand durch}) Gibt die Gesamtanzahl der durch ein angegebenes Transportunternehmen gelieferten Aufträge als Prozentanteil an der Gesamtanzahl aller Aufträge zurück. PercentOfCount ({Produkt.Produktnummer}, {Produkt.Größe}, {Produkt.Produktklasse}) Gibt die Gesamtanzahl der Produkte einer angegebenen Größe und Klasse als Prozentanteil an der Gesamtanzahl der Produkte derselben Klasse zurück. Anmerkungen Diese Funktion und weitere Prozentanteilfunktionen dienen dazu, Prozentgruppenergebnisfelder zu unterstützen. Die in den Argumenten angegebenen Gruppierungen müssen im Bericht tatsächlich vorhanden sein, damit der Aufruf der Gruppenergebnisfunktion gelingen kann. PercentOfDistinctCount Basic- und Crystal-Syntax. Syntax der Argumente 212 • • • • PercentOfDistinctCount (Feld, BedFeld) • PercentOfDistinctCount (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) • PercentOfDistinctCount (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) PercentOfDistinctCount (Feld, BedFeld, Bed) PercentOfDistinctCount (Feld, InneresBedFeld, ÄußeresBedFeld) PercentOfDistinctCount (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) Crystal Reports-Anwenderhandbuch Funktionen Gruppenergebnis Argumente • Feld ist ein Feld vom Typ Number (Zahl), Currency (Währung), String (Zeichenfolge), Boolean (Boolesch), Date (Datum), Time (Uhrzeit) oder DateTime (DatumUhrzeit), das von der Funktion ausgewertet werden kann. • • Das Feld BedFeld wird zum Gruppieren der Werte in Feld verwendet. • Das Feld InneresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • InnereBed ist eine Zeichenfolge, die den Gruppierungstyp für InneresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn InneresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. • Das Feld ÄußeresBedFeld wird zum Gruppieren der Werte in Feld verwendet. • ÄußereBed ist eine Zeichenfolge, die den Gruppierungstyp für ÄußeresBedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn ÄußeresBedFeld ein Feld des Typs Date, Time, DateTime oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Bed ist eine Zeichenfolge, die den Gruppierungstyp für BedFeld angibt. Sie können dieses Argument nur dann festlegen, wenn BedFeld ein Feld des Typs Date (Datum), Time (Uhrzeit), DateTime (Datum/Uhrzeit) oder ein boolesches Feld ist. Weitere Informationen hierzu finden Sie unter Bedingungen für Gruppenergebnisfunktionen. Rückgabewert Zahlenwert Aktion PercentOfDistinctCount (Feld, BedFeld) hat dieselbe Wirkung wie: 100 * DistinctCount (Feld, BedFeld) / DistinctCount (Feld). Damit wird die Anzahl der eindeutigen Werte im Feld "Feld" für die durch BedFeld festgelegte Gruppe als Prozentanteil der Anzahl der eindeutigen Werte von Feld ausgedrückt. PercentOfDistinctCount (Feld, BedFeld, Bed) hat dieselbe Wirkung wie: 100 * DistinctCount (Feld, BedFeld, Bed) / DistinctCount (Feld). Mit dem String-Argument Bed werden weitere zusätzliche Informationen angegeben, um die Gruppierung genau festzulegen (Beispiel: Wenn BedFeld ein Datumsfeld ist, dann kann für die Gruppierung „täglich“, „wöchentlich“ oder „monatlich“ usw. festgelegt werden.) Crystal Reports-Anwenderhandbuch 213 8 8 Funktionen Finanzen PercentOfDistinctCount (Feld, InneresBedFeld, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * DistinctCount (Feld, InneresBedFeld) / DistinctCount (Feld, ÄußeresBedFeld). Damit wird die Anzahl der eindeutigen Werte im Feld "Feld" für die durch InneresBedFeld festgelegte Gruppe als Prozentanteil der Anzahl der eindeutigen Werte der durch ÄußeresBedFeld festgelegten Gruppe ausgedrückt. PercentOfDistinctCount (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld) hat dieselbe Wirkung wie: 100 * DistinctCount (Feld, InneresBedFeld, InnereBed) / DistinctCount (Feld, ÄußeresBedFeld). PercentOfDistinctCount (Feld, InneresBedFeld, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * DistinctCount (Feld, InneresBedFeld) / DistinctCount (Feld, ÄußeresBedFeld, ÄußereBed). PercentOfDistinctCount (Feld, InneresBedFeld, InnereBed, ÄußeresBedFeld, ÄußereBed) hat dieselbe Wirkung wie: 100 * DistinctCount (Feld, InneresBedFeld, InnereBed) / DistinctCount (Feld, ÄußeresBedFeld, ÄußereBed). Anmerkungen Diese Funktion und weitere Prozentanteilfunktionen dienen dazu, Prozentgruppenergebnisfelder zu unterstützen. Die in den Argumenten angegebenen Gruppierungen müssen im Bericht tatsächlich vorhanden sein, damit der Aufruf der Gruppenergebnisfunktion gelingen kann. Finanzen Für weitere Informationen klicken Sie auf die Funktion, für die Sie sich interessieren, aus der folgenden Liste: ACCRINT ACCRINTM AmorDEGRC AmorLINC CoupDayBS CoupDays CoupDaysNC CoupNCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupNum (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupPCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CumIPMT (Satz, nZeiträume, aktuellerWert, Startzeitraum, Endzeitraum, Typ) 214 Crystal Reports-Anwenderhandbuch Funktionen Finanzen CumPrinc (Satz, nZeiträume, aktuellerWert, Startzeitraum, Endzeitraum, Typ) DB DDB Days360 DISC DollarDE (Bruchzahl, Basis) DollarFR (Dezimalzahl, Basis) Duration Effect (Satz, nVergleichbareZeiträume) FV FVSchedule (Wert, Sätze) IntRate IPmt IRR ISPMT (Satz, Zeitraum, nZeiträume, aktuellerWert) MDuration MIRR (Werte, Finanzsatz, Wiederanlagesatz) Nominal (Satz, nVergleichbareZeiträume) NPer NPV (Satz, Werte) OddFPrice OddFYield OddLPrice OddLYield Pmt PPmt Price PriceDisc PriceMat PV Rate Received Crystal Reports-Anwenderhandbuch 215 8 8 Funktionen Finanzen SLN (Kosten, Restwert, Lebensdauer) SYD (Kosten, Restwert, Lebensdauer, Zeitraum) TBillEq (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) TBillPrice (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) TBillYield (Zahlungsdatum, Fälligkeitsdatum, Preis) VDB XIRR XNPV (Satz, Werte, Tage) YearFrac Yield YieldDisc YieldMat ACCRINT Basic- und Crystal-Syntax. Syntax der Argumente • ACCRINT (Ausgabedatum, ersterZinstermin, Zahlungsdatum, Satz, Nennwert, Häufigkeit) • ACCRINT (Ausgabedatum, ersterZinstermin, Zahlungsdatum, Satz, Nennwert, Häufigkeit, Basis) Argumente 216 • Ausgabedatum entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier ausgegeben wurde. • ersterZinstermin entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier die ersten Zinserträge abwirft. • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • Satz ist eine positive Zahl, die den Jahreszinssatz für das Wertpapier angibt. • Nennwert ist eine positive Zahl oder eine Währung, durch die der Nennwert des Wertpapiers angegeben wird. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). Crystal Reports-Anwenderhandbuch Funktionen Finanzen • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Aktion ACCRINT gibt für ein Wertpapier mit periodischen Zinszahlungen die aufgelaufenen Gesamtzinsen zurück. Der zurückgegebene Wert entspricht dem Nennwert, multipliziert mit dem Zinssatz, multipliziert mit der Anzahl der Jahre oder Teiljahre zwischen dem Ausgabedatum und dem Fälligkeitsdatum. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine am 1. Juli 1990 ausgegebene Anleihe zu 10.000 DM erzielt ab 1. September 1990 halbjährlich 9,5 % Zinsen. Diese Anleihe hat einen kurzen abweichenden Zeitraum, da zwischen Juli und September weniger als sechs Monate liegen. Die Anleihe wird dann am 15. Februar 1995 (Zahlungsdatum) erworben. Es wird eine 30/360-Basis zugrunde gelegt. ACCRINT (DateValue(1990,7,1), DateValue(1990,9,1),DateValue(1995,2,15), 0.095, 10000, 2, 0) In diesem Beispiel werden 4.391,11 DM (auf die nächste ganze Zahl gerundet) als aufgelaufene Gesamtzinsen zurückgegeben. Dieser Wert kann überprüft werden, indem die Anzahl der vollständigen Zinszeiträume und der Teilzeiträume addiert wird. Zwischen dem 1. September 1990 und dem 1. September 1994 liegen acht 6-Monats-Zeiträume. Die Teilzeiträume entsprechen (bei Zugrundelegung unserer Basis) den 60 Tagen im ersten abweichenden Zeitraum und den 164 Tagen unmittelbar vor dem Zahlungsdatum. Daraus folgt: 10.000 DM x (8+224/180) = 4.391,11 DM. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Crystal Reports-Anwenderhandbuch 217 8 8 Funktionen Finanzen Siehe auch • • • • • • • ACCRINTM CoupDayBS CoupDays CoupDaysNC CoupNCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupNum (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupPCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) ACCRINTM Basic- und Crystal-Syntax. Syntax der Argumente • • ACCRINTM (Ausgabedatum, Fälligkeitsdatum, Satz, Nennwert) ACCRINTM (Ausgabedatum, Fälligkeitsdatum, Satz, Nennwert, Basis) Argumente • Ausgabedatum entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier ausgegeben wurde. • Fälligkeitsdatum entspricht entweder Date oder DateTime nach dem Ausgabedatum und gibt die Fälligkeit des Wertpapiers an. • Satz ist eine positive Zahl, die den Jahreszinssatz für das Wertpapier angibt. • Nennwert ist eine positive Zahl oder eine Währung, durch die der Nennwert des Wertpapiers angegeben wird. • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert 218 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Aktion ACCRINTM gibt die aufgelaufenen Gesamtzinsen für ein Wertpapier zurück, das zum Fälligkeitsdatum Zinserträge abwirft. Diese Funktion berechnet die Zinsen, indem Nennwert, Zinssatz und die Anzahl der Jahre und Teiljahre, die zwischen Ausgabe- und Fälligkeitsdatum liegen, multipliziert werden. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein kurzfristiger Wechsel in Höhe von 5.000 € mit einem Jahreszinssatz von 10,5 % wird am 25. September 1999 mit dem Fälligkeitsdatum 31. März 2000 ausgegeben. Es wird eine Echt/360-Basis zugrunde gelegt. ACCRINTM(DateValue(1999,9,25),DateValue(2000,3,31),0.105 , 5000, 2) In diesem Beispiel werden 274,17 € als aufgelaufene Zinsen für dieses Wertpapier zurückgegeben. Zwischen dem Ausgabe- und dem Fälligkeitsdatum liegen 188 Tage. Daraus folgt: 5.000 € x 0,105 x (188/360) = 274,17 €. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • ACCRINT AmorDEGRC Basic- und Crystal-Syntax. Syntax der Argumente • AmorDEGRC (Kosten, Kaufdatum, EnddatumErsterZeitraum, Restwert, Zeitraum, Satz) • AmorDEGRC (Kosten, Kaufdatum, EnddatumErsterZeitraum, Restwert, Zeitraum, Satz, Basis) Argumente • cost ist eine positive Zahl oder eine Währung, mit der die Anfangskosten der Anlage angegeben werden. • Kaufdatum entspricht entweder Date oder DateTime und gibt an, wann die Anlage erworben wurde. Crystal Reports-Anwenderhandbuch 219 8 8 Funktionen Finanzen • EnddatumErsterZeitraum entspricht entweder Date oder DateTime und gibt das Ende des ersten Zeitraums an. Dieses Datum muss nach dem Kaufdatum liegen. • Restwert ist eine nicht negative Zahl oder Währung, die den Wert der Anlage am Ende ihrer Lebensdauer angibt. Diese Zahl muss kleiner oder gleich den Kosten der Anlage sein. • Zeitraum ist eine nicht negative Zahl, die den Zeitraum zur Berechnung der Abschreibung angibt. • • Satz gibt den Satz an, zu dem die Anlage abgeschrieben wird. "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Aktion AmorDEGRC gibt die Abschreibung einer Anlage im angegebenen Rechnungsjahr zurück. Die Rechnungsjahre sind auf EnddatumErsterZeitraum bezogen. Abhängig von der Lebensdauer (1/Satz) der Anlage wird ein Abschreibungsfaktor auf den Satz angewendet. Der zurückgegebene Wert wird auf die nächste ganze Zahl gerundet. 220 Lebensdauer (1/Satz) Angewendeter Abschreibungsfaktor Kleiner als oder gleich 4 1.5 Größer als 4, aber kleiner als 6 2 Größer als oder gleich 6 2.5 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Computer wird am 15. April 2000 für 1.500 € erworben. Er kann zum Restwert von 250 € verkauft werden und wird mit 10 % pro Jahr abgeschrieben. Wenn der Abrechnungszeitraum jeweils zum 1. Januar eines Jahres beginnt, dann beginnt der erste Zeitraum nach dem Kaufdatum zum 1. Januar 2001. Es wird eine Echt/Echt-Basis zugrunde gelegt. AmorDEGRC(1500,DateValue(2000,4,15),DateValue(2001,1,1), 2500,0,.1,1) Gibt 267 € als Abschreibungsbetrag für den Zeitraum zwischen dem 15. April 2000 und dem 31. Dezember 2000 zurück. Da die Lebensdauer 10 Jahre beträgt, errechnet sich der Abschreibungssatz wie folgt: 2,5 x 0,1 = 0,25. AmorDEGRC(1500,DateValue(2000,4,15),DateValue(2001,1,1), 250,1,.1,1) Gibt 308 € als Abschreibungsbetrag für das erste vollständige Jahr zurück. AmorDEGRC(1500,DateValue(2000,4,15),DateValue(2001,1,1), 250,6,.1,1) Gibt 43 € als Abschreibungsbetrag für das sechste vollständige Jahr zurück. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • • • • AmorLINC DB DDB VDB AmorLINC Basic- und Crystal-Syntax. Syntax der Argumente • AmorLINC (Kosten, Kaufdatum, EnddatumErsterZeitraum, Restwert, Zeitraum, Satz) • AmorLINC (Kosten, Kaufdatum, EnddatumErsterZeitraum, Restwert, Zeitraum, Satz, Basis) Crystal Reports-Anwenderhandbuch 221 8 8 Funktionen Finanzen Argumente • cost ist eine positive Zahl oder eine Währung, mit der die Anfangskosten der Anlage angegeben werden. • Kaufdatum entspricht entweder Date oder DateTime und gibt an, wann die Anlage erworben wurde. • EnddatumErsterZeitraum entspricht entweder Date oder DateTime und gibt das Ende des ersten Zeitraums an. Dieses Datum muss nach dem Kaufdatum liegen. • Restwert ist eine nicht negative Zahl oder Währung, die den Wert der Anlage am Ende ihrer Lebensdauer angibt. Diese Zahl muss kleiner oder gleich den Kosten der Anlage sein. • Zeitraum ist eine nicht negative Zahl, die den Zeitraum zur Berechnung der Abschreibung angibt. • • Satz gibt den Satz an, zu dem die Anlage abgeschrieben wird. "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Aktion AmorLINC gibt die lineare Abschreibung für ein bestimmtes Jahr zurück, wobei die Abrechnungsjahre auf EnddatumErsterZeitraum bezogen sind. Die Abschreibung innerhalb der einzelnen Jahre ist mit Ausnahme des nullten und des letzten Zeitraums konstant. Bei ihnen richtet sich die Abschreibung nach dem Kaufdatum. Die Summe aller Abschreibungsbeträge entspricht der Differenz zwischen dem Kaufpreis und dem Restwert. 222 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Computer wird am 15. April 2000 für 1.500 € erworben. Er kann zum Restwert von 250 € verkauft werden und wird mit 10 % pro Jahr abgeschrieben. Wenn der Abrechnungszeitraum jeweils zum 1. Januar eines Jahres beginnt, dann beginnt der erste Zeitraum nach dem Kaufdatum zum 1. Januar 2001. Es wird eine Echt/Echt-Basis zugrunde gelegt. AmorLINC(1500,DateValue(2000,4,15),DateValue(2001,1,1),2 50,0,.1,1) Gibt 106,97 € (auf die nächste ganze Zahl gerundet) als Abschreibungsbetrag für den Zeitraum vom 15. April 2000 bis zum 31. Dezember 2000 zurück. AmorLINC(1500,DateValue(2000,4,15),DateValue(2001,1,1),2 50,1,.1,1) Gibt 150 € als Abschreibungsbetrag für das erste vollständige Jahr zurück. Hierbei handelt es sich um 10 % des Anschaffungspreises von 1.500 €. AmorLINC(1500,DateValue(2000,4,15),DateValue(2001,1,1),2 50,8,.1,1) Gibt 93,03 € (auf die nächste ganze Zahl gerundet) als Abschreibungsbetrag für das achte vollständige Jahr zurück. Beachten Sie, dass dieser Wert zuzüglich der Abschreibung im ersten angebrochenen Jahr 150 € ergibt. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • • • • AmorDEGRC DB DDB VDB Crystal Reports-Anwenderhandbuch 223 8 8 Funktionen Finanzen CoupDayBS Basic- und Crystal-Syntax. Syntax der Argumente • • CoupDayBS (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupDayBS (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • Fälligkeitsdatum entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert Aktion CoupDayBS gibt die Anzahl der Tage zwischen dem letzten Zinstermin vor der Zahlung und dem Zahlungsdatum zurück. Zinstermine haben gleichmäßige Abstände und sind auf das Fälligkeitsdatum bezogen. Falls das Zahlungsdatum auf einen Zinstermin fällt, gibt CoupDayBS den Wert 0 zurück. 224 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einer Laufzeit von 30 Jahren wurde am 15. März 1995 ausgegeben und verfügt über halbjährliche Zinstermine. Die Anleihe wurde am 25. August 2000 (Zahlungsdatum) auf dem Sekundärmarkt erworben. Das Fälligkeitsdatum ist auf den 15. März 2025, also 30 Jahre nach dem Ausgabedatum, datiert. Diesem Beispiel wird die Echt/Echt-Basis zugrunde gelegt. CoupDayBS(DateValue(2000,8,25),DateValue(2025,3,15),2,1) Gibt 163 zurück. Diese Anleihe hat die jährlichen Zinstermine 15. März und 15. September. 163 entspricht der Anzahl von Tagen zwischen dem 15. März 2000 und dem 25. August 2000. Anmerkungen • • Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Bei der Echt/Echt-Basis gilt für alle gültigen Eingaben CoupDays = CoupDayBS + CoupDaysNC. Bei Verwendung einer anderen Basis trifft dies nicht zwingend zu, da CoupDays von der Anzahl der Tage im Jahr abgeleitet wird, während CoupDayBS und CoupDaysNC direkt berechnet werden. Siehe auch • • • • • CoupDays CoupDaysNC CoupNCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupNum (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupPCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupDays Basic- und Crystal-Syntax. Syntax der Argumente • • CoupDays (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupDays (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit, Basis) Crystal Reports-Anwenderhandbuch 225 8 8 Funktionen Finanzen Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • Fälligkeitsdatum entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert Aktion CoupDays gibt die Anzahl der Tage zwischen den Zinsterminen zurück, die vor und nach dem Zahlungsdatum liegen. Zinstermine haben gleichmäßige Abstände und sind auf das Fälligkeitsdatum bezogen. Falls das Zahlungsdatum auf einen Zinstermin fällt, wird der Berechnung der folgende Zeitraum zugrunde gelegt. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einer Laufzeit von 30 Jahren wurde am 15. März 1995 ausgegeben und verfügt über halbjährliche Zinstermine. Die Anleihe wurde am 25. August 2000 (Zahlungsdatum) auf dem Sekundärmarkt erworben. Das Fälligkeitsdatum ist auf den 15. März 2025, also 30 Jahre nach dem Ausgabedatum, datiert. Diesem Beispiel wird die Echt/Echt-Basis zugrunde gelegt. CoupDays(DateValue(2000,8,25),DateValue(2025,3,15),2,1) Gibt 184 zurück. Diese Anleihe hat die jährlichen Zinstermine 15. März und 15. September. 184 entspricht der Anzahl der Tage zwischen dem 15. März 2000 und dem 15. September 2000, also den ersten Zinsterminen vor und nach dem Zahlungsdatum. 226 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Anmerkungen • • • Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Bei einer anderen als der Echt/Echt-Basis gibt CoupDays für alle Zahlungsdatumsangaben die gleiche Zahl zurück. Bei der Echt/Echt-Basis gilt für alle gültigen Eingaben CoupDays = CoupDayBS + CoupDaysNC. Bei Verwendung einer anderen Basis trifft dies nicht zwingend zu, da CoupDays von der Anzahl der Tage im Jahr abgeleitet wird, während CoupDayBS und CoupDaysNC direkt berechnet werden. Siehe auch • • • • • CoupDayBS CoupDaysNC CoupNCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupNum (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupPCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupDaysNC Basic- und Crystal-Syntax. Syntax der Argumente • • CoupDaysNC (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupDaysNC (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • Fälligkeitsdatum entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • 0 - Amerikanisch 30/360 (Standard) • • • • • • 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Crystal Reports-Anwenderhandbuch 227 8 8 Funktionen Finanzen Rückgabewert Zahlenwert Aktion CoupDaysNC gibt die Anzahl der Tage zurück, die zwischen dem Zahlungsdatum und dem nächsten, darauf folgenden Zinstermin liegen. Zinstermine haben gleichmäßige Abstände und sind auf das Fälligkeitsdatum bezogen. Falls das Zahlungsdatum auf einen Zinstermin fällt, gibt CoupDaysNC die Anzahl der Tage bis zum nächsten Zinstermin zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einer Laufzeit von 30 Jahren wurde am 15. März 1995 ausgegeben und verfügt über halbjährliche Zinstermine. Die Anleihe wurde am 25. August 2000 (Zahlungsdatum) auf dem Sekundärmarkt erworben. Das Fälligkeitsdatum ist auf den 15. März 2025, also 30 Jahre nach dem Ausgabedatum, datiert. Diesem Beispiel wird die Echt/Echt-Basis zugrunde gelegt. CoupDaysNC(DateValue(2000,8,25),DateValue(2025,3,15),2,1 ) Gibt 21 zurück. Diese Anleihe hat die jährlichen Zinstermine 15. März und 15. September. 21 entspricht der Anzahl von Tagen zwischen dem 15.09.00 und dem 25. August 2000. Anmerkungen • • Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Bei der Echt/Echt-Basis gilt für alle gültigen Eingaben CoupDays = CoupDayBS + CoupDaysNC. Bei Verwendung einer anderen Basis trifft dies nicht zwingend zu, da CoupDays von der Anzahl der Tage im Jahr abgeleitet wird, während CoupDayBS und CoupDaysNC direkt berechnet werden. Siehe auch • • • • • 228 CoupDayBS CoupDays CoupNCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupNum (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupPCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) Crystal Reports-Anwenderhandbuch Funktionen Finanzen CoupNCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) Basic- und Crystal-Syntax. Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • Fälligkeitsdatum entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). Rückgabewert Date-Wert Aktion CoupNCD gibt den nächsten Zinstermin nach dem Zahlungsdatum zurück. Zinstermine haben gleichmäßige Abstände. Sie sind auf das Fälligkeitsdatum bezogen und finden einmal, zweimal oder viermal jährlich statt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einer Laufzeit von 30 Jahren wurde am 15. März 1995 ausgegeben und verfügt über halbjährliche Zinstermine. Die Anleihe wurde am 25. August 2000 (Zahlungsdatum) auf dem Sekundärmarkt erworben. Das Fälligkeitsdatum ist auf den 15. März 2025, also 30 Jahre nach dem Ausgabedatum, datiert. CoupNCD(DateValue(2000,8,25),DateValue(2025,3,15),2) Gibt den 12. April 2002 zurück. Diese Anleihe hat die jährlichen Zinstermine 15. März und 15. September. Der erste Zinstermin nach dem Zahlungsdatum fällt auf den 15. September 2000. Anmerkungen • • Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Die Anzahl der Tage (gemäß Basis) zwischen dem von CoupNCD zurückgegebenen Wert und dem Zahlungsdatum ist gleich dem von CoupDaysNC zurückgegebenen Wert. Crystal Reports-Anwenderhandbuch 229 8 8 Funktionen Finanzen Siehe auch • • • • • CoupDayBS CoupDays CoupDaysNC CoupNum (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupPCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupNum (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) Basic- und Crystal-Syntax. Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • Fälligkeitsdatum entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). Rückgabewert Zahlenwert Aktion CoupNum gibt die Anzahl der Zinszeiträume zwischen dem Zahlungs- und dem Fälligkeitsdatum zurück. Der Teilzeitraum zwischen dem Zahlungsdatum und dem ersten Zinstermin nach dem Zahlungsdatum wird als ein Zeitraum gezählt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einer Laufzeit von 30 Jahren wurde am 15. März 1995 ausgegeben und verfügt über halbjährliche Zinstermine. Die Anleihe wurde am 25. August 2000 (Zahlungsdatum) auf dem Sekundärmarkt erworben. Das Fälligkeitsdatum ist auf den 15. März 2025, also 30 Jahre nach dem Ausgabedatum, datiert. CoupNum(DateValue(2000,8,25),DateValue(2025,3,15),2) 230 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Gibt 50 zurück. Entspricht der gerundeten Anzahl von 6-Monats-Zeiträumen zwischen dem 25. August 2000 und dem 15. März 2025. Vom Fälligkeitsdatum aus rückblickend betrachtet, liegen in den 24 Jahren zwischen dem 15. März 2001 und dem 15. März 2025 48 Zeiträume und zwischen dem 15. September 2000 und dem 15. März 2001 ein vollständiger Zeitraum. Der Teilzeitraum (von nur 21 Tagen) zwischen dem Zahlungsdatum (25. August 2000) und dem 15. September 2000 wird ebenfalls gezählt. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Siehe auch • • • • • CoupDayBS CoupDays CoupDaysNC CoupNCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupPCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupPCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) Basic- und Crystal-Syntax. Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • Fälligkeitsdatum entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). Rückgabewert Date-Wert Aktion CoupPCD gibt das Datum des letzten, vor dem Zahlungsdatum liegenden Zinstermins zurück. Zinstermine haben gleichmäßige Abstände und sind auf das Fälligkeitsdatum bezogen. Falls das Zahlungsdatum auf einen Zinstermin fällt, gibt CoupPCD das Zahlungsdatum zurück. Crystal Reports-Anwenderhandbuch 231 8 8 Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einer Laufzeit von 30 Jahren wurde am 15. März 1995 ausgegeben und verfügt über halbjährliche Zinstermine. Die Anleihe wurde am 25. August 2000 (Zahlungsdatum) auf dem Sekundärmarkt erworben. Das Fälligkeitsdatum ist auf den 15. März 2025, also 30 Jahre nach dem Ausgabedatum, datiert. CoupPCD(DateValue(2000,8,25),DateValue(2025,3,15),2) Gibt den 12. April 2002 zurück. Diese Anleihe hat die jährlichen Zinstermine 15. März und 15. September. Der letzte Zinstermin vor dem Zahlungsdatum fällt auf den 15. März 2000. Anmerkungen • • Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Die Anzahl der Tage (gemäß Basis) zwischen dem von CoupPCD zurückgegebenen Wert und dem Zahlungsdatum ist gleich dem von CoupDayBS zurückgegebenen Wert. Siehe auch • • • • • CoupDayBS CoupDays CoupDaysNC CoupNCD (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CoupNum (Zahlungsdatum, Fälligkeitsdatum, Häufigkeit) CumIPMT (Satz, nZeiträume, aktuellerWert, Startzeitraum, Endzeitraum, Typ) Basic- und Crystal-Syntax. Argumente 232 • Satz ist eine positive Zahl ungleich Null, die den Zinssatz pro Zeitraum angibt. • nZeiträume ist eine positive Zahl, die die Gesamtanzahl der Zahlungszeiträume angibt. • aktuellerWert ist eine positive Zahl oder Währung, die die gesamte Tilgungssumme darstellt. • Startzeitraum ist eine positive Zahl, die den ersten Berechnungszeitraum angibt. Crystal Reports-Anwenderhandbuch Funktionen Finanzen • Endzeitraum ist eine Zahl größer oder gleich Startzeitraum. Sie gibt den letzten Berechnungszeitraum an. Der Endzeitraum darf die Summe der Zeiträume nicht überschreiten. • Typ ist eine Zahl, die den Zeitpunkt der Zahlungen angibt. 0 = Ende des Zahlungszeitraums, 1 = Beginn des Zahlungszeitraums. Rückgabewert Currency-Wert Aktion CumIPMT gibt die Gesamtsumme der Zinsen zurück, die zwischen den angegebenen Start- und Endzeiträumen auf ein Darlehen gezahlt wurde. Durch diese Funktion wird der von IPMT zurückgegebene Wert für die angegebenen Zeiträume summiert. Der Wert ist negativ, da er eine Summe von Zahlungen darstellt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie haben ein Darlehen über 5.000 € mit einer sechsjährigen Laufzeit und einem Jahreszinssatz von 8,3 % aufgenommen, bei dem halbjährliche Zahlungen zum Monatsende fällig werden. CumIPMT(0.083/2,6*2,5000,3,4,0) Gibt -344,25 € zurück, die den gezahlten Gesamtzinsen des zweiten Jahres der Darlehenslaufzeit entsprechen. Beachten Sie, dass sowohl der Zinssatz als auch die Laufzeit pro Zeitraum erfasst werden müssen. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Siehe auch • CumPrinc (Satz, nZeiträume, aktuellerWert, Startzeitraum, Endzeitraum, Typ) CumPrinc (Satz, nZeiträume, aktuellerWert, Startzeitraum, Endzeitraum, Typ) Basic- und Crystal-Syntax. Argumente • Satz ist eine positive Zahl ungleich Null, die den Zinssatz pro Zeitraum angibt. Crystal Reports-Anwenderhandbuch 233 8 8 Funktionen Finanzen • nZeiträume ist eine positive Zahl, die die Gesamtanzahl der Zahlungszeiträume angibt. • aktuellerWert ist eine positive Zahl oder Währung, die die gesamte Tilgungssumme darstellt. • Startzeitraum ist eine positive Zahl, die den ersten Berechnungszeitraum angibt. • Endzeitraum ist eine Zahl größer oder gleich Startzeitraum. Sie gibt den letzten Berechnungszeitraum an. Der Endzeitraum darf die Summe der Zeiträume nicht überschreiten. • Typ ist eine Zahl, die den Zeitpunkt der Zahlungen angibt. 0 = Ende des Zahlungszeitraums, 1 = Beginn des Zahlungszeitraums. Rückgabewert Currency-Wert Aktion CumPRINC gibt die Gesamttilgung zurück, die zwischen den angegebenen Start- und Endzeiträumen auf einen Darlehensbetrag geleistet wurden. Durch diese Funktion wird der von PPMT zurückgegebene Wert für die angegebenen Zeiträume summiert. Der Wert ist negativ, da er eine Summe von Zahlungen darstellt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie haben ein Darlehen über 5.000 € mit einer sechsjährigen Laufzeit und einem Jahreszinssatz von 8,3 % aufgenommen, bei dem halbjährliche Zahlungen zum Monatsende fällig werden. CumPRINC(0.083/2,6*2,5000,3,4,0) Gibt -730,57 € als Gesamtbetrag zurück, der im zweiten Laufjahr des Darlehens getilgt wurde. Beachten Sie, dass sowohl der Zinssatz als auch die Laufzeit pro Zeitraum erfasst werden müssen. CumPRINC(0.083/2,6*2,50000,10,12,0) Gibt -5.000 € zurück, da während der Laufzeit des Darlehens der gesamte Darlehensbetrag getilgt wurde. Beachten Sie, dass sowohl der Zinssatz als auch die Laufzeit pro Zeitraum erfasst werden müssen. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. 234 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Siehe auch • CumIPMT (Satz, nZeiträume, aktuellerWert, Startzeitraum, Endzeitraum, Typ) DB Basic- und Crystal-Syntax. Syntax der Argumente • • DB (Kosten, Restwert, Lebensdauer, Zeitraum) DB (Kosten, Restwert, Lebensdauer, Zeitraum, Monat) Argumente • "Kosten" ist eine Zahl oder eine Währung, mit der die Anfangskosten der Anlage angegeben werden. Der Wert darf nicht negativ sein und ist größer als oder gleich dem Restwert. • "Restwert" ist eine Zahl oder Währung, die den Wert der Anlage am Ende ihrer Lebensdauer angibt. Der Wert ist nicht negativ. • "Lebensdauer" ist eine positive Zahl, mit der die Lebensdauer der Anlage angegeben wird. • "Zeitraum" ist eine Zahl, die den Zeitraum angibt, für den die Wertminderung einer Anlage berechnet wird. Dieser Wert muss positiv und kleiner als oder gleich der Lebensdauer sein. Die Argumente Lebensdauer und Zeitraum müssen in denselben Einheiten angegeben werden. • "Monat" ist eine optionale, positive Zahl, die die Anzahl der Monate im ersten Jahr angibt. Der Standardwert ist 12 Monate. Monat muss größer als 0 und kleiner oder gleich 12 sein. Rückgabewert Zahlenwert Aktion DB gibt eine Zahl zurück, die die Wertminderung einer Anlage für einen bestimmten Zeitraum unter Verwendung der geometrisch-degressiven Abschreibung angibt. Crystal Reports-Anwenderhandbuch 235 8 8 Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Unternehmen erwirbt Anfang März ein Fahrzeug zum Preis von 25.000 €. Das Fahrzeug wird geometrisch-degressiv abgeschrieben und soll eine fünfjährige Lebensdauer haben, nach deren Ablauf der Wiederverkaufswert 5.000 € betragen soll. DB(25000,5000,5,1,10) Gibt 5729,17 zurück. Der Abschreibungsbetrag des Fahrzeugs für die verbleibenden 10 Monate des Jahres beträgt 5.729,17 €. DB(25000,5000,5,5,10) Gibt 2019,52 zurück. Der Abschreibungsbetrag im letzten vollständigen Jahr beträgt 2.019,52 €. DB(25000,5000,5,6,10) Gibt 244.02 zurück. Der Abschreibungsbetrag in den letzten beiden Monaten beträgt 244,02 €. Angenommen, eine Datenbanktabelle enthält die folgenden Felder: {Tabelle.Kosten}, {Tabelle.Restwert}, {Tabelle.Kaufdatum} und {Tabelle.Lebensdauer}. Mit folgender Formel können Sie die Wertminderung mittels geometrisch-degressiver Abschreibung pro Tabelleneintrag für den Rest des ersten Jahres berechnen: DB ({Tabelle.Kosten}, {Tabelle.Restwert}, {Tabelle.Lebensdauer},1,12Month({Tabelle.Kaufdatum})) Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Siehe auch • • DDB VDB DDB Basic- und Crystal-Syntax. Syntax der Argumente • • 236 DDB (Kosten, Restwert, Lebensdauer, Zeitraum) DDB (Kosten, Restwert, Lebensdauer, Zeitraum, Faktor) Crystal Reports-Anwenderhandbuch Funktionen Finanzen Argumente • "Kosten" ist eine Zahl oder eine Währung, mit der die Anfangskosten der Anlage angegeben werden. Der Wert darf nicht negativ sein und ist größer als oder gleich dem Restwert. • "Restwert" ist eine Zahl oder Währung, die den Wert der Anlage am Ende ihrer Lebensdauer angibt. Der Wert ist nicht negativ. • "Lebensdauer" ist eine positive Zahl, mit der die Lebensdauer der Anlage angegeben wird. • "Zeitraum" ist eine Zahl, die den Zeitraum angibt, für den die Wertminderung einer Anlage berechnet wird. Dieser Wert muss positiv und kleiner als oder gleich der Lebensdauer sein. Die Argumente Lebensdauer und Zeitraum müssen in denselben Einheiten angegeben werden. • "Faktor" ist eine optionale positive Zahl, die die Rate angibt, mit der die Wertminderung erfolgt. Wenn diese Angabe weggelassen wird, wird 2 (progressive Abschreibung) verwendet. Rückgabewert Zahlenwert Aktion DDB gibt eine Zahl zurück, die die Wertminderung einer Anlage über eine bestimmte Zeitperiode festlegt, wobei die Methode der progressiven Abschreibung mit dem Faktor 2 oder eine andere Abschreibungsmethode verwendet wird, die durch das Argument "Faktor" festgelegt wird. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Unternehmen legt einen Fuhrpark im Wert von 500.000 € an. Die Fahrzeuge haben eine Lebensdauer von 10 Jahren und einen Restwert von 60.000 €. Sie werden mit der Doppelraten-Methode abgeschrieben. DDB (500000, 60000, 10, 1) Gibt 100000 zurück. Der Abschreibungsbetrag des letzten Jahres beträgt 100 000 €. DDB (500000, 60000, 10, 4) Gibt 51200 zurück. Der Abschreibungsbetrag des letzten Jahres beträgt 51.200 €. Crystal Reports-Anwenderhandbuch 237 8 8 Funktionen Finanzen DDB (500000, 60000, 10, 10) Gibt 7108,86 (auf die nächste ganze Zahl gerundet) zurück. Der Abschreibungsbetrag des letzten Jahres beträgt 7.108,86 €. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Days360 Basic- und Crystal-Syntax. Syntax der Argumente • • Days360 (Startdatum, Enddatum) Days360 (Startdatum, Enddatum, Methode) Argumente • Startdatum ist ein Datums- oder DateTime-Wert für den Start eines Zeitintervalls. • Enddatum ist ein Datums- oder DateTime-Wert für das Ende eines Zeitintervalls. • Methode ist ein optionaler boolescher Wert, der den zu verwendenden Basistyp angibt. Der Standard lautet FALSE und setzt die Verwendung der amerikanischen 30/360-Tagesbasis voraus. TRUE setzt die Verwendung der europäischen 30/360-Tagesbasis voraus. Rückgabewert Zahlenwert Aktion Days360 gibt auf der Grundlage eines Kalenders mit 30 Tagen pro Monat und 360 Tagen im Jahr die Anzahl der Tage zwischen zwei Datumsangaben zurück. Diese Methode ist in der Finanzbuchhaltung weit verbreitet. Wenn das Enddatum vor dem Startdatum liegt, wird ein negatives Ergebnis zurückgegeben. Die Formel lautet (J2-J1) x 360 + (M2-M1) x 30 + (T2-T1), wobei: • • 238 J1, M1 und T1 dem Jahr, Monat und Tag des Startdatums und J2, M2 und T2 dem Jahr, Monat und Tag des Enddatums entsprechen. Crystal Reports-Anwenderhandbuch Funktionen Finanzen Wenn T1 bei Zugrundelegung der amerikanischen 30/360-Basis 31 lautet, wird der Tag in 30 geändert. Lautet T2 31, wird der Tag nur in 30 geändert, wenn T1 30 oder 31 lautet. Im Fall des Monats Februar wird die 31 in der vorangehenden Formel durch die Anzahl der Tage im Monat ersetzt. Bei Zugrundelegung der europäischen 30/360-Basis wird T1 in 30 geändert, falls T1 31 lautet. Entsprechend wird T2 in 30 geändert, falls T2 31 lautet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Days360(DateValue(2000,1,1),DateValue(2000,2,1),FALSE) Gibt 30 zurück, da bei jedem Monat von 30 Tagen ausgegangen wird. Bei Verwendung des europäischen Systems wird der gleiche Wert zurückgegeben. Days360(DateValue(2000,2,28),DateValue(2000,3,31),FALSE) Days360(DateValue(2000,2,28),DateValue(2000,3,31),TRUE) Days360(DateValue(2000,2,29),DateValue(2000,3,31),FALSE) Days360(DateValue(2000,2,29),DateValue(2000,3,31),TRUE) In der ersten Zeile wird 33, in der zweiten 32, in der dritten 30 und in der vierten 31 zurückgegeben. Beachten Sie, dass der Februar im Jahr 2000 29 Tage hat. Anmerkungen • • Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Um die Differenz zwischen zwei Datumsangaben unter Verwendung des normalen Kalenders (Echt/Echt) zu berechnen, subtrahieren Sie das frühere Datum vom späteren. DateValue(2000,3,31) - DateValue(2000,2,29) Gibt 31 zurück. DISC Basic- und Crystal-Syntax. Syntax der Argumente • • DISC (Zahlungsdatum, Fälligkeitsdatum, Preis, Rückzahlungskurs) DISC (Zahlungsdatum, Fälligkeitsdatum, Preis, Rückzahlungskurs, Basis) Crystal Reports-Anwenderhandbuch 239 8 8 Funktionen Finanzen Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • Preis ist eine positive Zahl oder Währung, die den Wert des Wertpapiers zum Zeitpunkt seines Erwerbs angibt. • Rückzahlungskurs ist eine positive Zahl oder Währung, die den Wert des Wertpapiers zum Fälligkeitsdatum angibt. • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert Aktion DISC gibt den Diskontsatz für ein Wertpapier unter Berücksichtigung von Zahlungs- und Fälligkeitsdatum sowie dem jeweils gültigen Wert des Wertpapiers zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Wertpapier wurde am 15. April 2000 für 96,25 € erworben. Das Wertpapier hat das Fälligkeitsdatum 1. November 2000 und einen Rückzahlungswert von 100 €. Wie bei den meisten Wertpapieren üblich, wird eine 30/360-Basis zugrunde gelegt. DISC (DateValue(2000, 4, 15),DateValue(2000,11,1),96.25,100,0) Gibt 0,0689 (auf vier Dezimalstellen gerundet) zurück, was einem Diskontsatz von 6,89 % entspricht. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. 240 Crystal Reports-Anwenderhandbuch Funktionen Finanzen DollarDE (Bruchzahl, Basis) Basic- und Crystal-Syntax. Argumente • • Bruchzahl ist eine Zahl, die den umzuwandelnden Bruch darstellt. Basis ist eine positive abgeschnittene Zahl, die die Basis des zu erstellenden Bruches angibt. Rückgabewert Zahlenwert der Bruchzahl. Aktion DollarDE wandelt eine Zahl, die einen Bruch darstellt, in eine normale Dezimalzahl um. Den folgenden Beispielen können Sie entnehmen, wie Brüche dargestellt werden. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DollarDE(1.1,8) Gibt 1,125 zurück. Die Bruchzahl 1,1 wurde als 1 und 1/8 interpretiert, was 1,125 entspricht. DollarDE(2.13,16) Gibt 2,8125 zurück. Die Bruchzahl wurde als 2 und 13/16 interpretiert. DollarDE(2.45,16) Gibt 4,8125 zurück. Die Bruchzahl wurde als 2 und 45/16 interpretiert und auf 4 und 13/16 gekürzt. DollarDE(1.16,8) Gibt 1,2 zurück. Dieser Wert wurde als 1 und 1,6/8 interpretiert. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Siehe auch • DollarFR (Dezimalzahl, Basis) Crystal Reports-Anwenderhandbuch 241 8 8 Funktionen Finanzen DollarFR (Dezimalzahl, Basis) Basic- und Crystal-Syntax. Argumente • Dezimalzahl ist eine Zahl, die den umzuwandelnden tatsächlichen Dezimalwert darstellt. • Basis ist eine positive abgeschnittene Zahl, die die Basis des zu erstellenden Bruches angibt. Rückgabewert Zahlenwert, der eine Bruchzahl darstellt. Aktion DollarFR wandelt eine Dezimalzahl um und gibt sie als Bruch zurück. Dem folgenden Beispiel können Sie entnehmen, wie Zahlen als Brüche dargestellt werden. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DollarFR(1.125,8) Gibt 1,1 zurück. Dieser Wert wird als 1 und 1/8 interpretiert. Der dezimale Teil der Bruchzahl wird als der Numerator der Bruchzahl aufgefasst. DollarFR(1.2,8) Gibt 1,16 zurück. Dieser Wert wird als 1 und 1,6/8 interpretiert. Der Dezimalteil wird zum Zähler. Beachten Sie, dass dieser Wert nicht als 16/8 interpretiert wird. DollarFR(1.8125,16) Gibt 1,13 zurück. Dieser Wert wird als 1 und 13/16 interpretiert. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Siehe auch • 242 DollarDE (Bruchzahl, Basis) Crystal Reports-Anwenderhandbuch Funktionen Finanzen Duration Basic- und Crystal-Syntax. Syntax der Argumente • Duration (Zahlungsdatum, Fälligkeitsdatum, Anleihezins, Ertrag, Häufigkeit) • Duration (Zahlungsdatum, Fälligkeitsdatum, Anleihezins, Ertrag, Häufigkeit, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Anleihezins" ist eine nicht negative Zahl, die den Zinssatz für das Wertpapier angibt. • "Ertrag" ist eine nicht negative Zahl, die den Ertrag des Wertpapiers angibt. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert Aktion Duration gibt eine Zahl zurück, die die Laufzeit einer Anleihe darstellt. Die Laufzeit ist der gewichtete Durchschnitt der Zinszahlungs-Cashflows und gilt als Maßstab für das Zinssatzrisiko der Anleihe. Crystal Reports-Anwenderhandbuch 243 8 8 Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einer Laufzeit von 10 Jahren, einem Anleihezins von 12 %, einem Ertrag von 13 % sowie halbjährlichen Zahlungen wird am 25. Januar 2000 erworben und hat das Fälligkeitsdatum 1. Oktober 2003. Es wird die 30/360-Standardbasis zugrunde gelegt. Duration(DateValue(2000,1,25),DateValue(2003,10,1),0.12, 0.13,2) Gibt 2,961918 als Laufzeit der Anleihe zurück, was 2,96 Jahren entspricht. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • MDuration Effect (Satz, nVergleichbareZeiträume) Basic- und Crystal-Syntax. Argumente • • Satz ist eine Zahl, die den Jahreszinssatz angibt. nVergleichbareZeiträume ist eine positive Zahl, die die Anzahl der vergleichbaren Zeiträume pro Jahr angibt. Rückgabewert Zahlenwert Aktion Effect gibt den effektiven Jahreszinssatz auf der Grundlage des angegebenen Zinssatzes sowie der angegebenen Anzahl von vergleichbaren Zeiträumen zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie verfügen über ein Sparkonto mit einem Jahreszinssatz von 5 % und monatlichen Zinszahlungen. Effect (0.05, 12) 244 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Gibt 0,0512 (auf vier Dezimalstellen gerundet) zurück, was einem effektiven Zinssatz von 5,12 % entspricht. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Siehe auch • Nominal (Satz, nVergleichbareZeiträume) FV Basic- und Crystal-Syntax. Syntax der Argumente • • • FV (rate, nPeriods, payment) FV (rate, nPeriods, payment, presentValue) FV (rate, nPeriods, payment, presentValue, type) Argumente • • "Satz" ist eine Zahl, mit der der Zinssatz pro Zeitraum angegeben wird. • "Bezahlung" ist eine Zahl oder eine Währung, die Ihre in jedem Zeitraum zu leistenden Zahlungen angibt. • AktuellerWert ist eine optionale Zahl oder Währung, die den momentanen Wert einer Reihe zukünftiger Zahlungen angibt. • type ist eine optionale Zahl und gibt an, wann Zahlungen fällig sind. Geben Sie 0 an, wenn die Zahlungen am Ende der Zahlungsperiode fällig sind, und 1, wenn sie zu Beginn des Zeitraumes fällig sind. Wenn diese Angabe weggelassen wird, wird 0 verwendet. "nZeiträume" ist eine positive Zahl, mit der die Gesamtanzahl von Zahlungsperioden in der Annuität angegeben wird. Für "Satz" und "nZeiträume" müssen dieselben Einheiten verwendet werden. Wenn z. B. in "nZeiträume" die Anzahl der Perioden in Monaten angegeben wird, dann wird in "Satz" die monatliche Zinsrate angegeben. Rückgabewert Zahlenwert Aktion FV gibt eine Zahl zurück, die den zukünftigen Wert einer Annuität auf Grundlage festgelegter periodischer Zahlungen und eines festgelegten Zinssatzes angibt. Crystal Reports-Anwenderhandbuch 245 8 8 Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie zahlen jeden Monat 1.000 € in einen Altersversorgungsplan ein, der 6 % Zinsen im Jahr abwirft, die monatlich verrechnet werden. Wie viel wäre das Konto nach 20 Jahren wert? FV (0.06 / 12, 20 * 12, -1000) Gibt 462041 zurück (auf die nächste ganze Zahl gerundet). Damit beläuft sich der Kontostand auf 462.041 €. Die Zahlung (-1000) ist negativ, da Sie Einzahlungen in den Plan leisten. Im oberen Beispiel wird davon ausgegangen, dass Sie die Einzahlungen in den Plan am Monatsende leisten. Daher wären in Ihren Plan nach dem ersten Monat erst insgesamt 1.000 € eingezahlt worden, da noch keine Zinszahlung eingegangen ist. Angenommen, Sie möchten Ihre Zahlungen zu Monatsbeginn leisten: FV (0.06 / 12, 20 * 12, -1000, 0, 1) Gibt 464351 zurück (auf die nächste ganze Zahl gerundet). Damit beläuft sich der Kontostand auf 464.351 €. Sie sparen 2.310 € mehr, wenn Sie die Rücklagenzahlung zu Monatsbeginn leisten. Angenommen, Sie leisten nicht nur die Einzahlung zu Monatsbeginn, sondern beginnen Ihren Plan mit einer Starteinlage von 20.000 €. FV (0.06 / 12, 20 * 12, -1000, -20000, 1) Gibt 530555 zurück (auf die nächste ganze Zahl gerundet). Nach 20 Jahren beläuft sich der Kontostand auf 530.555 €. Sie können die Funktion FV auch dazu verwenden, den zukünftigen Wert einer Pauschaleinlage zu berechnen. Hier ein Beispiel für eine Einlage von 20.000 € in einen Plan, der einen Jahreszins von 6 % abwirft, der monatlich über einen Zeitraum von 20 Jahren eingezahlt wird: FV (0.06 / 12, 20 * 12, 0, -20000) Gibt 66204 zurück (auf die nächste ganze Zahl gerundet). Damit beläuft sich Ihr Kontostand auf 66.204 €. Dies entspricht der Differenz aus den vorigen 2 Beispielen (530.555 € - 464.351 €). Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. 246 Crystal Reports-Anwenderhandbuch Funktionen Finanzen FVSchedule (Wert, Sätze) Basic- und Crystal-Syntax. Argumente • Wert ist eine Zahl oder Währung, die den derzeitigen Wert der Investition angibt. • Sätze ist ein Zahlenarray, der den Zinssatz für gleich lange Zeiträume angibt. Rückgabewert Currency-Wert Aktion FVSchedule gibt den zukünftigen Wert einer Investition unter Berücksichtigung der Zinssätze für mehrere vergleichbare Zeiträume zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Investition in Höhe von 50.000 € hat im ersten Jahr einen garantierten Zinssatz von 5 %, im zweiten Jahr von 5,5 % und im dritten Jahr von 6 %. Rem Basic-Syntax formula = FVSchedule(50000, Array(0.05,0.055,0.06)) //Crystal-Syntax FVSchedule(50000,[0.05,0.055,0.06]) Gibt 58.710,75 € als Wert der Investition nach dem dritten Jahr zurück. Angenommen, Sie verfügen über eine Datenbanktabelle mit Informationen über mehrere Typen von 5-Jahres-Sparbriefen. Die Tabelle enthält die folgenden Felder: {Tabelle.Stückelung}, {Tabelle.SatzJahr1}, {Tabelle.SatzJahr2}, {Tabelle.SatzJahr3}, {Tabelle.SatzJahr4}, {Tabelle.SatzJahr5}. Um die verschiedenen Anleihetypen zuverlässig zu vergleichen, entscheiden Sie sich dafür, jeden Anleihetyp bezogen auf 100 € des Endwertes zu berechnen. Die folgende Formel (in Crystal-Syntax) stellt einen guten Ausgangspunkt dar, um die verschiedenen Anleihetypen zu vergleichen: FVSchedule (100,[{Tabelle.SatzJahr1}, {Tabelle.SatzJahr2}, {Tabelle.SatzJahr3}, {Tabelle.SatzJahr4}, {Tabelle.SatzJahr5}]) Crystal Reports-Anwenderhandbuch 247 8 8 Funktionen Finanzen Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. IntRate Basic- und Crystal-Syntax. Syntax der Argumente • • IntRate (Zahlungsdatum, Fälligkeitsdatum, Preis, Rückzahlungswert) IntRate (Zahlungsdatum, Fälligkeitsdatum, Preis, Rückzahlungswert, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • Preis ist eine positive Zahl oder Währung, die den Wert des Wertpapiers zum Zeitpunkt seines Erwerbs angibt. • Rückzahlungswert ist eine positive Zahl oder Währung, die den Betrag angibt, der bei Fälligkeit für das Wertpapier erzielt wird. • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert Aktion IntRate gibt den Zinssatz für eine Wertpapierinvestition zurück. Die folgende Formel wird verwendet: = (Rückzahlungswert - aktuellerWert) / aktuellerWert * (Teiljahr entsprechend der Basismethode) 248 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Wertpapier wird am 15. Januar 2000 für 1.000 € erworben und hat das Fälligkeitsdatum 30. April 2000 sowie einen Rückzahlungswert von 1.010 €. Bei Verwendung einer 30/360-Basis (einem für USStaatsanleihen üblichen Verfahren) kann der Zinssatz mit der folgenden Formel berechnet werden: IntRate(DateValue(2000,1,15),DateValue(2000,4,30),1000,1 010,0) Gibt 0,0343 (auf vier Dezimalstellen gerundet) zurück, was einem Zinssatz von 3,43 % entspricht. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Siehe auch • Received IPmt Basic- und Crystal-Syntax. Syntax der Argumente • • • IPmt (Satz, Zeitraum, nZeiträume, aktuellerWert) IPmt (Satz, Zeitraum, nZeiträume, aktuellerWert, zukünftigerWert) IPmt (Satz, Zeitraum, nZeiträume, aktuellerWert, zukünftigerWert, Typ) Argumente • • "Satz" ist eine Zahl, mit der der Zinssatz pro Zeitraum angegeben wird. • "nZeiträume" ist eine positive Zahl, mit der die Gesamtanzahl von Zahlungsperioden in der Annuität angegeben wird. Für Satz, Zeitraum und nZeiträume müssen dieselben Einheiten verwendet werden. Wenn z. B. in nPeriods die Anzahl der Perioden in Monaten angegeben wird, dann wird in rate der monatliche Zinssatz und in period ein Monat angegeben. Zeitraum ist eine Zahl, mit der die Zahlungsperiode im Bereich 1 bis nZeiträume angegeben wird. Crystal Reports-Anwenderhandbuch 249 8 8 Funktionen Finanzen • "aktuellerWert" ist eine Zahl oder eine Währung, die den derzeitigen oder heutigen Wert einer Reihe zukünftiger Zahlungen oder Zahlungseingänge angibt. • "zukünftigerWert" ist eine optionale Zahl oder Währung, die den zukünftigen Wert oder Saldo angibt, den Sie nach Leistung der letzten Zahlung erreichen möchten. Wenn diese Angabe weggelassen wird, wird 0 verwendet. • "Typ" ist eine optionale Zahl, die angibt, wann Zahlungen fällig sind. Geben Sie 0 an, wenn die Zahlungen am Ende der Zahlungsperiode fällig sind, und 1, wenn sie zu Beginn des Zeitraumes fällig sind. Wenn diese Angabe weggelassen wird, wird 0 verwendet. Rückgabewert Zahlenwert Aktion IPmt gibt eine Zahl zurück, die die Zinszahlung für einen festgelegten Zeitraum einer Annuität auf Grundlage festgelegter periodischer Zahlungen und eines festgelegten Zinssatzes angibt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie möchten einen Kredit in Höhe von 250.000 € aufnehmen, zahlbar in Monatsraten über 15 Jahre bei einem Jahreszinssatz von 7 %. Die folgende Formel gibt den Zinsbetrag zurück, der bei der ersten Tilgungszahlung fällig wird. Beachten Sie, dass der Monatszinssatz 0,07 / 12 und die Anzahl der Monate des Darlehens 15 * 12 beträgt. IPmt (0.07 / 12, 1, 15 * 12, 250000) Gibt den Zahlenwert -1458.33 (auf 2 Dezimalstellen gerundet) zurück. Dieser Wert ist negativ, da er eine Zahlung von Ihnen darstellt, während der Darlehensbetrag in Höhe von 250.000 € positiv ist, da er einen Zahlungseingang bildet. Die folgende Formel gibt den Zinsbetrag zurück, den Sie bei Ihrer 121. Zahlung (nach 10 Tilgungsjahren) zahlen: IPmt (0.07 / 12, 10*12 + 1, 15 * 12, 250000) Gibt -661.98 (auf 2 Dezimalstellen gerundet) zurück. Da Sie mit Ihrer Rückzahlung vorangekommen sind, wird nicht mehr so viel von Ihrer monatlichen Zahlung für die Zinsen verwendet. 250 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. IRR Basic- und Crystal-Syntax. Syntax der Argumente • • IRR (Werte) IRR (Werte, Schätzung) Argumente • "Werte" ist ein Array des Number- oder Währungstyps, der die CashflowWerte angibt. Der Array muss mindestens einen negativen Wert (Zahlung) und einen positiven Wert (Zahlungseingang) enthalten. Die Cashflow-Zahlungen müssen in regelmäßigen Abständen geleistet werden, beispielsweise monatlich oder jährlich. • "Schätzung" ist eine optionale Zahl, die den geschätzten Rückgabewert von IRR enthält. Wenn diese Angabe weggelassen wird, wird für "Schätzung" der Wert 0,1 (10 %) verwendet. Rückgabewert Zahlenwert Aktion IRR gibt eine Zahl zurück, die eine interne Gewinnrate für eine Folge periodisch ein- und ausgehender Cashflow-Werte angibt. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie können zwischen zwei Angeboten wählen: Eine Auszahlung von 20.000 € jetzt oder garantierte Zahlungen von 5.000 € nach 1 Jahr, 10.000 € nach 2 Jahren und 15.000 € nach 3 Jahren. Welches Angebot ist besser? Ein Verfahren, dies rechnerisch zu ermitteln, besteht darin, die interne Gewinnrate auszurechnen. Wenn Sie sich für das zweite Angebot entscheiden, können Sie das erste nicht mehr annehmen. Es wäre also so, als würden Sie eine Zahlung von 20.000 € leisten, auf die diese Zahlungseingänge folgen: Rem Basic-Syntax formula = IRR (Array(-20000, 5000, 10000, 15000)) Crystal Reports-Anwenderhandbuch 251 8 8 Funktionen Finanzen //Crystal-Syntax IRR ([-20000, 5000, 10000, 15000]) Gibt 0,194 (auf 3 Kommastellen gerundet) bzw. einen Zinssatz von 19,4 % zurück. Da alle anderen Faktoren dieselben sind, sollten Sie das zweite Angebot vorziehen, falls Sie 19,4 % für eine zufriedenstellende Gewinnrate halten. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Die Funktionen NPV und IRR stehen in folgender Beziehung: NPV (IRR (Werte), Werte) = 0. Dies bedeutet, die interne Gewinnrate einer Folge von Cashflow-Zahlungen bildet den Zinssatz, für den diese Folge von Cashflow-Werten den jetzigen Nettowert 0 hat. • Für die Funktion IRR gibt es keine direkte Formel, und daher berechnet Crystal Reports den Wert durch Iteration. Dieser Vorgang hängt von der ursprünglichen Einschätzung der internen Gewinnrate ab. Wenn vom Programm eine Fehlermeldung ausgegeben wird, versuchen Sie es mit einem anderen Wert für das Argument guess, um einen Wert zu finden, der der tatsächlichen internen Gewinnrate eher entsprechen könnte. ISPMT (Satz, Zeitraum, nZeiträume, aktuellerWert) Basic- und Crystal-Syntax. Argumente • • • "Satz" ist eine Zahl, mit der der Zinssatz pro Zeitraum angegeben wird. • aktuellerWert ist der Wert einer Investition oder eines Darlehens. "Zeitraum" ist eine Zahl, die den Zinszeitraum angibt. "nZeiträume" ist eine positive Zahl, mit der die Gesamtanzahl von Zahlungsperioden in der Annuität angegeben wird. Für "Satz" und "nZeiträume" müssen dieselben Einheiten verwendet werden. Wenn z. B. in "nZeiträume" die Anzahl der Perioden in Monaten angegeben wird, dann wird in "Satz" die monatliche Zinsrate angegeben. Rückgabewert Currency-Wert Aktion ISPMT gibt die während eines bestimmten Zeitraums gezahlten Zinsen zurück. Bei dieser Funktion wird vorausgesetzt, dass in jedem Zeitraum gleich hohe Raten des Darlehensbetrags getilgt werden. 252 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, 1.000 € werden über 10 Jahre zu einem Zinssatz von 4 % aufgenommen, und die 1.000 € müssen in jährlich gleichen Raten getilgt werden. ISPMT(0.04,0,10,1000) Gibt –40 € zurück. Diese Zinsen sind für das erste Jahr (nullter Zeitraum) fällig. Im ersten Jahr sind die gesamten 1.000 € zu einem Zinssatz von 4 % ungetilgt. Daraus folgt: 1.000 € x 0,04 = 40 €. Der Wert ist negativ, da er eine Zahlung von 40 € darstellt. ISPMT(0.04,3,10,1000) Gibt -28 € zurück. Diese Zinsen sind für das vierte Jahr (dritter Zeitraum) fällig. Zu diesem Zeitpunkt wurden drei Raten à 100 € gezahlt, so dass Zinsen in Höhe von (1.000 € - 3 x 100 €) x 0,04 = 28 € anfallen. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Siehe auch • • • IPmt PPmt Pmt MDuration Basic- und Crystal-Syntax. Syntax der Argumente • MDuration (Zahlungsdatum, Fälligkeitsdatum, Anleihezins, Ertrag, Häufigkeit) • MDuration (Zahlungsdatum, Fälligkeitsdatum, Anleihezins, Ertrag, Häufigkeit, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Anleihezins" ist eine nicht negative Zahl, die den Zinssatz für das Wertpapier angibt. Crystal Reports-Anwenderhandbuch 253 8 8 Funktionen Finanzen • "Ertrag" ist eine nicht negative Zahl, die den Ertrag des Wertpapiers angibt. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert Aktion MDuration gibt eine Zahl zurück, die die geänderte Laufzeit einer Anleihe darstellt. Die Laufzeit ist der gewichtete Durchschnitt der ZinszahlungsCashflows und gilt als Maßstab für das Zinssatzrisiko der Anleihe. MDuration dividiert die Laufzeit durch (1 + Ertrag/Häufigkeit). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einer Laufzeit von 10 Jahren, einem Anleihezins von 12 %, einem Ertrag von 13 % sowie halbjährlichen Zahlungen wird am 25. Januar 2000 erworben und hat das Fälligkeitsdatum 1. Oktober 2003. Es wird die 30/360-Standardbasis zugrunde gelegt. MDuration(DateValue(2000,1,25),DateValue(2003,10,1),0.12 ,0.13,2) Gibt 2,781144 als geänderte Laufzeit der Anleihe zurück. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • 254 Duration Crystal Reports-Anwenderhandbuch Funktionen Finanzen MIRR (Werte, Finanzsatz, Wiederanlagesatz) Basic- und Crystal-Syntax. Argumente • "Werte" ist ein Array des Number- oder Währungstyps, der die CashflowWerte angibt. Der Array muss mindestens einen negativen Wert (Zahlung) und einen positiven Wert (Zahlungseingang) enthalten. Die Cashflow-Zahlungen müssen in regelmäßigen Abständen geleistet werden, beispielsweise monatlich oder jährlich. • "Finanzsatz" ist eine Zahl, die den Zinssatz angibt, der als Kosten der Finanzierung gezahlt wird. • "Wiederanlagesatz" ist eine Zahl, die den Zinssatz angibt, der aus Gewinnen aus Kapitalneuanlagen zufließt. Rückgabewert Zahlenwert Aktion MIRR gibt eine Zahl zurück, die eine interne Gewinnrate für eine Folge periodisch geleisteter Cashflow-Zahlungen (Zahlungen und Zahlungseingänge) angibt. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie leiten ein Geschäft, das in Anlagen investiert und dabei im ersten und im vierten Jahr Verlust macht. Ihre erwarteten jährlichen Gewinnraten betragen: -$50,000, $40,000, $65,000, -$60,000, $50,000, $70,000. Ihre Verluste werden mit 10 % finanziert, während Sie Ihre Gewinne bei 6 % in ein Konto rückinvestieren. Die geänderte interne Gewinnrate sieht jetzt so aus: Rem Basic-Syntax formula = MIRR(Array(-50000, 40000, 65000, -60000, 50000, 70000), 0.10, 0.06) //Crystal-Syntax MIRR([-50000, 40000, 65000, -60000, 50000, 70000], 0.10, 0.06) Gibt 0,214 (auf 3 Kommastellen gerundet) bzw. 21,4 % zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Crystal Reports-Anwenderhandbuch 255 8 8 Funktionen Finanzen Nominal (Satz, nVergleichbareZeiträume) Basic- und Crystal-Syntax. Argumente • • Satz ist eine Zahl, die den Jahreszinssatz angibt. nVergleichbareZeiträume ist eine positive Zahl, die die Anzahl der vergleichbaren Zeiträume pro Jahr angibt. Rückgabewert Zahlenwert Aktion Nominal gibt den Nominaljahreszins unter Berücksichtigung des effektiven Zinssatzes und der Anzahl der vergleichbaren Zeiträume zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein neues Sparkonto verfügt über einen Zinseszinssatz (oder effektiven Zinssatz) von 4,02 % bei halbjährlichen Zinszahlungen. Dieses neue Konto soll mit einem vorhandenen Konto verglichen werden. Nominal (0.0402, 2) Gibt 0,0398 (auf vier Dezimalstellen gerundet) zurück, was einem Jahreszinssatz von 3,98 % entspricht. Anmerkungen Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Siehe auch • Effect (Satz, nVergleichbareZeiträume) NPer Basic- und Crystal-Syntax. Syntax der Argumente • • • 256 NPer (Satz, Bezahlung, aktuellerWert) NPer (Satz, Bezahlung, aktuellerWert, zukünftigerWert) NPer (Satz, Bezahlung, aktuellerWert, zukünftigerWert, Typ) Crystal Reports-Anwenderhandbuch Funktionen Finanzen Argumente • • "Satz" ist eine Zahl, mit der der Zinssatz pro Zeitraum angegeben wird. • "aktuellerWert" ist eine Zahl oder eine Währung, die den derzeitigen oder heutigen Wert einer Reihe zukünftiger Zahlungen oder Zahlungseingänge angibt. • "zukünftigerWert" ist eine optionale Zahl oder Währung, die den zukünftigen Wert oder Saldo angibt, den Sie nach Leistung der letzten Zahlung erreichen möchten. Wenn diese Angabe weggelassen wird, wird 0 verwendet. • "Typ" ist eine optionale Zahl, die angibt, wann Zahlungen fällig sind. Geben Sie 0 an, wenn die Zahlungen am Ende der Zahlungsperiode fällig sind, und 1, wenn sie zu Beginn des Zeitraumes fällig sind. Wenn diese Angabe weggelassen wird, wird 0 verwendet. "Bezahlung" ist eine Zahl oder eine Währung, die Ihre in jedem Zeitraum zu leistenden Zahlungen angibt. Zahlungen werden gewöhnlich für eine Restschuld und einen Zinssatz geleistet, die bzw. der sich im Verlauf der Annuität nicht ändert. Rückgabewert Zahlenwert Aktion NPer gibt eine Zahl zurück, die die Anzahl der Perioden für eine Annuität auf Grundlage festgelegter periodischer Zahlungen und eines festgelegten Zinssatzes angibt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie möchten ein Darlehen in Höhe von 200.000 € aufnehmen, um ein Haus zu kaufen. Der Zinssatz liegt bei 7 %, und Sie können monatlich ca. 2.500 € zurückzahlen. Was für eine Laufzeit muss das Darlehen haben? NPer (0.07/12, -2500, 200000) Gibt 108,08 (auf 2 Kommastellen gerundet) Monate zurück. Das entspricht 108,08 / 12 = 9 Jahren. Angenommen, Sie nehmen kein Darlehen auf, sondern sparen 200.000 € und kaufen danach das Haus. Sie möchten monatlich 2.500 € sparen bei einem Zinssatz von 7 %, die monatlich einfließen. Wie lange müssen Sie sparen, bis Sie das Geld zusammen haben? NPer (0.07/12, -2500, 0, 200000) Crystal Reports-Anwenderhandbuch 257 8 8 Funktionen Finanzen Gibt 65.85 (auf 2 Dezimalstellen gerundet) Monate zurück. Das entspricht ungefähr 5,5 Jahren. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. NPV (Satz, Werte) Basic- und Crystal-Syntax. Argumente • • rate ist eine Zahl, die als Dezimalzahl den Diskont pro Zeitraum angibt. "Werte" ist ein Array des Number- oder Währungstyps, der die CashflowWerte angibt. Negative Werte sind Zahlungen, positive Werte sind Zahlungseingänge. Die Cashflow-Zahlungen müssen in regelmäßigen Abständen geleistet werden, beispielsweise monatlich oder jährlich. Rückgabewert Zahlenwert Aktion NPV gibt eine Zahl zurück, die den Nettowert einer Investition angibt, die auf einer Folge periodisch geleisteter Cashflow-Werte und einem Diskontsatz beruht. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, jemand bietet Ihnen an, Ihnen nach 1 Jahr 1.000 € zu zahlen, nach 2 Jahren 2.000 €, nach 3 Jahren 1.500 € und nach 4 Jahren 1.200 €. Wenn der Diskontsatz (der Time-Wert von Geld) bei 5 Prozent liegt, dann hat dieses Angebot heute folgenden Wert für Sie: Rem Basic-Syntax formula = NPV (0.05, Array (1000, 2000, 1500, 1200)) //Crystal-Syntax NPV (0.05, [1000, 2000, 1500, 1200]) Die Formel gibt 5049,44 (auf 2 Kommastellen gerundet) zurück. Somit ist dieser Plan für Sie heute 5.049,44 € wert. Dieser Wert ist niedriger als die Summe der Zahlungen, die sich auf 5.700 € beläuft, da Sie ja auf das Geld warten müssen. 258 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Die Funktionen NPV und IRR stehen in folgender Beziehung: NPV (IRR (Werte), Werte) = 0. Dies bedeutet, die interne Gewinnrate einer Folge von Cashflow-Zahlungen bildet den Diskontsatz, für den diese Folge von Cashflow-Werten den jetzigen Nettowert 0 hat. OddFPrice Basic- und Crystal-Syntax. Syntax der Argumente • OddFPrice (Zahlungsdatum, Fälligkeitsdatum, Ausgabedatum, ersterZinstermin, Satz, Ertrag, Rückzahlungswert, Häufigkeit) • OddFPrice (Zahlungsdatum, Fälligkeitsdatum, Ausgabedatum, ersterZinstermin, Satz, Ertrag, Rückzahlungswert, Häufigkeit, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • Ausgabedatum entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier ausgegeben wurde. • ersterZinstermin entspricht entweder Date oder DateTime und gibt an, wann die erste Zinszahlung für das Wertpapier erfolgt. Dieses Datum muss nach dem Zahlungsdatum und vor dem Fälligkeitsdatum liegen. Wenn das Wertpapier über vierteljährliche Zahlungen verfügt, muss der erste Zinstermin beispielsweise eine genaue Anzahl von Quartalen vor dem Fälligkeitsdatum liegen. • "Satz" ist eine nicht negative Zahl, die den Zinssatz für alle Zinsen angibt, die durch das Wertpapier erzielt werden. • "Ertrag" ist eine nicht negative Zahl, die den Ertrag des Wertpapiers angibt. • "Rückzahlungswert" ist eine Zahl bzw. Währung, die den Rückzahlungswert des Wertpapiers pro 100 € des Nennwertes angibt. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). Crystal Reports-Anwenderhandbuch 259 8 8 Funktionen Finanzen • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Aktion OddFPrice gibt den Preis eines Wertpapiers zurück, das zwar über regelmäßige Zinszahlungen, jedoch über einen abweichenden ersten Zeitraum verfügt. Der erste Zeitraum kann kürzer oder länger als die übrigen Zeiträume sein. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe wurde am 15. Oktober 1999 ausgegeben, hatte den ersten Zinstermin am 1. September 2000 und das Fälligkeitsdatum 1. September 2005. Der Zinssatz der Anleihe betrug 4,5 % und der Ertrag 5 %. Die Anleihe verfügt (nach dem ersten abweichenden Zeitraum) über halbjährliche Zinszahlungen und einen Rückzahlungskurs von 100 € (pro 100 € des Nennwertes). Es wird die 30/360-Basis zugrunde gelegt. Wenn die Anleihe am 22. Januar 2000 erworben wird, wird der Anleihepreis mit der folgenden Formel berechnet: OddFPrice (DateValue(2000,1,22), DateValue(2005,9,1), DateValue(1999,10,15), DateValue (2000,9,1), 0.045, 0.05, 100, 2, 0) Gibt 97,54 € zurück. Beachten Sie, dass diese Funktion den Preis unter Berücksichtigung des Ertrags und die Funktion OddFYield den Ertrag unter Berücksichtigung des Preises berechnet. Anmerkungen • • 260 Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Diese Funktion ist die Umkehrung der verwandten Funktion OddFYield. Crystal Reports-Anwenderhandbuch Funktionen Finanzen Siehe auch • • • • • OddFYield OddLPrice OddLYield Price Yield OddFYield Basic- und Crystal-Syntax. Syntax der Argumente • OddFYield (Zahlungsdatum, Fälligkeitsdatum, Ausgabedatum, ersterZinstermin, Satz, Preis, Rückzahlungswert, Häufigkeit) • OddFYield (Zahlungsdatum, Fälligkeitsdatum, Ausgabedatum, ersterZinstermin, Satz, Preis, Rückzahlungswert, Häufigkeit, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • Ausgabedatum entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier ausgegeben wurde. • ersterZinstermin entspricht entweder Date oder DateTime und gibt an, wann die erste Zinszahlung für das Wertpapier erfolgt. Dieses Datum muss nach dem Zahlungsdatum und vor dem Fälligkeitsdatum liegen. Wenn das Wertpapier über vierteljährliche Zahlungen verfügt, muss der erste Zinstermin beispielsweise eine genaue Anzahl von Quartalen vor dem Fälligkeitsdatum liegen. • "Satz" ist eine nicht negative Zahl, die den Zinssatz für alle Zinsen angibt, die durch das Wertpapier erzielt werden. • "Preis" ist eine nicht negative Zahl bzw. Währung, die den Kaufpreis des Wertpapiers pro 100 € des Nennwertes angibt. • "Rückzahlungswert" ist eine Zahl bzw. Währung, die den Rückzahlungswert des Wertpapiers pro 100 € des Nennwertes angibt. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). Crystal Reports-Anwenderhandbuch 261 8 8 Funktionen Finanzen • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Aktion OddFYield gibt den Ertrag eines Wertpapiers zurück, das zwar über regelmäßige Zinszahlungen, aber einen abweichenden ersten Zeitraum verfügt. Der erste Zeitraum kann kürzer oder länger als die übrigen Zeiträume sein. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe wurde am 15. Oktober 1999 ausgegeben, hatte den ersten Zinstermin am 1. September 2000 und das Fälligkeitsdatum 1. September 2005. Der Zinssatz der Anleihe betrug 4,5 % und der Preis 97,54 €. Die Anleihe verfügt (nach dem ersten abweichenden Zeitraum) über halbjährliche Zinszahlungen und einen Rückzahlungskurs von 100 € (pro 100 € des Nennwertes). Es wird die 30/360-Basis zugrunde gelegt. Wenn die Anleihe am 22. Januar 2000 erworben wird, wird der Ertrag der Anleihe mit der folgenden Formel berechnet: OddFYield(DateValue(2000,1,22), DateValue(2005,9,1), DateValue(1999,10,15), DateValue (2000,9,1), 0.045, 97.54, 100, 2, 0) Gibt 0,0500 (auf vier Dezimalstellen gerundet) zurück, was einem Ertrag von 5 % entspricht. Anmerkungen • • • 262 Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Diese Funktion ist die Umkehrung der verwandten Funktion OddFPrice. Da keine explizite Formel zur Ertragsberechnung verfügbar ist, verwendet Crystal Reports eine iterative Technik mittels der Formel für OddFPrice. Es wird ein Ertragswert geschätzt und der abweichende erste Preis berechnet. Crystal Reports-Anwenderhandbuch Funktionen Finanzen Dieser berechnete Preis wird mit dem angegebenen Preis verglichen, und es wird ein neuer Ertrag geschätzt. Dieser Vorgang wird so lange wiederholt, bis berechneter und angegebener Preis übereinstimmen. Siehe auch • • • • • OddFPrice OddLPrice OddLYield Price Yield OddLPrice Basic- und Crystal-Syntax. Syntax der Argumente • OddLPrice (Zahlungsdatum, Fälligkeitsdatum, letzterZinstermin, Satz, Ertrag, Rückzahlungswert, Häufigkeit) • OddLPrice (Zahlungsdatum, Fälligkeitsdatum, letzterZinstermin, Satz, Ertrag, Rückzahlungswert, Häufigkeit, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • letzterZinstermin entspricht entweder Date oder DateTime und gibt an, wann die letzte Zinszahlung für das Wertpapier erfolgt. Dieses Datum muss vor dem Zahlungsdatum liegen. • "Satz" ist eine nicht negative Zahl, die den Zinssatz für alle Zinsen angibt, die durch das Wertpapier erzielt werden. • "Ertrag" ist eine nicht negative Zahl, die den Ertrag des Wertpapiers angibt. • "Rückzahlungswert" ist eine Zahl bzw. Währung, die den Rückzahlungswert des Wertpapiers pro 100 € des Nennwertes angibt. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). Crystal Reports-Anwenderhandbuch 263 8 8 Funktionen Finanzen • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Aktion OddLPrice gibt den Preis eines Wertpapiers zurück, das zwar über regelmäßige Zinszahlungen, aber einen abweichenden letzten Zeitraum verfügt. Der letzte Zeitraum kann kürzer oder länger als die übrigen Zeiträume sein. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einem Zinssatz von 4,5 % und einem Ertrag von 4,15 % wird am 25. Juni 2000 fällig. Der letzte Zinstermin vor Fälligkeit war der 30. September 1999, und die Anleihe wurde am 10. Januar 2000 erworben. Bei vierteljährlichen Zinszahlungen, einem Rückzahlungskurs von 100 € und Zugrundelegung einer 30/360-Basis kann der Kaufpreis mit der folgenden Formel berechnet werden: OddLPrice(DateValue(2000,1,10), DateValue(2000,6,25), DateValue(1999,9,30), 0.045, 0.0415, 100, 4, 0) Gibt 100,13 € (auf die nächste ganze Zahl gerundet) zurück. Anmerkungen • • Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Diese Funktion ist die Umkehrung der verwandten Funktion OddLYield. Siehe auch • • • • • 264 OddFPrice OddFYield OddLYield Price Yield Crystal Reports-Anwenderhandbuch Funktionen Finanzen OddLYield Basic- und Crystal-Syntax. Syntax der Argumente • OddLYield (Zahlungsdatum, Fälligkeitsdatum, letzterZinstermin, Satz, Preis, Rückzahlungswert, Häufigkeit) • OddLYield (Zahlungsdatum, Fälligkeitsdatum, letzterZinstermin, Satz, Preis, Rückzahlungswert, Häufigkeit, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • letzterZinstermin entspricht entweder Date oder DateTime und gibt an, wann die letzte Zinszahlung für das Wertpapier erfolgt. Dieses Datum muss vor dem Zahlungsdatum liegen. • "Satz" ist eine nicht negative Zahl, die den Zinssatz für alle Zinsen angibt, die durch das Wertpapier erzielt werden. • "Preis" ist eine nicht negative Zahl bzw. Währung, die den Kaufpreis des Wertpapiers pro 100 € des Nennwertes angibt. • "Rückzahlungswert" ist eine Zahl bzw. Währung, die den Rückzahlungswert des Wertpapiers pro 100 € des Nennwertes angibt. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Crystal Reports-Anwenderhandbuch 265 8 8 Funktionen Finanzen Aktion OddLYield gibt den Ertrag eines Wertpapiers zurück, das zwar über regelmäßige Zinszahlungen, aber einen abweichenden letzten Zeitraum verfügt. Der letzte Zeitraum kann kürzer oder länger als die übrigen Zeiträume sein. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, eine Anleihe mit einem Zinssatz von 4,5 % und einem Preis von 100,13 € wurde am 25. Juni 2000 fällig. Der letzte Zinstermin vor Fälligkeit war der 30. September 1999, und die Anleihe wurde am 10. Januar 2000 erworben. Bei vierteljährlichen Zinszahlungen, einem Rückzahlungskurs von 100 € und Zugrundelegung einer 30/360-Basis kann der Kaufpreis mit der folgenden Formel berechnet werden: OddLYield(DateValue(2000,1,10), DateValue(2000,6,25), DateValue(1999,9,30), 0.045, 100.13, 100, 4, 0) Gibt 0,0416 (auf vier Dezimalstellen gerundet) zurück, was einem Ertrag von 4,16 % entspricht. Anmerkungen • • • Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Diese Funktion ist die Umkehrung der verwandten Funktion OddLPrice. Da keine explizite Formel zur Ertragsberechnung verfügbar ist, verwendet Crystal Reports eine iterative Technik mittels der Formel für OddLPrice. Es wird ein Ertragswert geschätzt und der abweichende letzte Preis berechnet. Dieser berechnete Preis wird mit dem angegebenen Preis verglichen, und es wird ein neuer Ertrag geschätzt. Dieser Vorgang wird so lange wiederholt, bis berechneter und angegebener Preis übereinstimmen. Siehe auch • • • • • 266 OddFPrice OddFYield OddLPrice Price Yield Crystal Reports-Anwenderhandbuch Funktionen Finanzen Pmt Basic- und Crystal-Syntax. Syntax der Argumente • • • Pmt (Satz, nZeiträume, aktuellerWert) Pmt (Satz, nZeiträume, aktuellerWert, zukünftigerWert) Pmt (Satz, nZeiträume, aktuellerWert, zukünftigerWert, Typ) Argumente • • "Satz" ist eine Zahl, mit der der Zinssatz pro Zeitraum angegeben wird. • presentValue ist eine Zahl oder eine Währung, die den derzeitigen Wert oder die Restschuld angibt. Dies ist der Betrag, den eine Reihe von zukünftigen Zahlungen jetzt wert ist. • "zukünftigerWert" ist eine optionale Zahl oder Währung, die den zukünftigen Wert oder Saldo angibt, den Sie nach Leistung der letzten Zahlung erreichen möchten. Wenn diese Angabe weggelassen wird, wird 0 verwendet. • "Typ" ist eine optionale Zahl, die angibt, wann Zahlungen fällig sind. Geben Sie 0 an, wenn die Zahlungen am Ende der Zahlungsperiode fällig sind, und 1, wenn sie zu Beginn des Zeitraumes fällig sind. Wenn diese Angabe weggelassen wird, wird 0 verwendet. "nZeiträume" ist eine positive Zahl, mit der die Gesamtanzahl von Zahlungsperioden in der Annuität angegeben wird. Für "Satz" und "nZeiträume" müssen dieselben Einheiten verwendet werden. Wenn z. B. in "nZeiträume" die Anzahl der Perioden in Monaten angegeben wird, dann wird in "Satz" die monatliche Zinsrate angegeben. Rückgabewert Zahlenwert Aktion Pmt gibt eine Zahl zurück, die die Zahlung für eine Annuität auf Grundlage festgelegter periodischer Zahlungen und eines festgelegten Zinssatzes angibt. Crystal Reports-Anwenderhandbuch 267 8 8 Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie möchten einen Kredit in Höhe von 250.000 € aufnehmen, zahlbar in Monatsraten über 15 Jahre bei einem Jahreszinssatz von 7 %. Die folgende Formel gibt Ihre monatliche Tilgungszahlung zurück: Beachten Sie, dass der Monatszinssatz 0,07 / 12 und die Anzahl der Monate des Darlehens 15 * 12 beträgt. Pmt (0.07 / 12, 15 * 12, 250000) Gibt den Zahlenwert -2247,07 (auf 2 Kommastellen gerundet) zurück. Dieser Wert ist negativ, da er eine Zahlung von Ihnen darstellt, während der Darlehensbetrag in Höhe von 250.000 € positiv ist, da er einen Zahlungseingang bildet. Angenommen, die Zahlungen werden zu Monatsbeginn statt am Monatsende (Standardeinstellung) geleistet. Ihre monatliche Tilgungszahlung wird folgendermaßen berechnet: Pmt (0.07 / 12, 15 * 12, 250000, 0, 1) Gibt –2234,04 (auf 2 Dezimalstellen gerundet) zurück. Beachten Sie, dass Ihre monatliche Zahlung um ca. 13 € niedriger ist als im vorherigen Beispiel, in dem die Zahlungen am Monatsende geleistet werden. Nehmen wir jetzt einmal an, dass Sie mit Sicherheit wissen, dass Sie in 15 Jahren eine Summe von 100.000 € erhalten werden, und daher das Darlehen nicht vollständig zurückbezahlt, sondern lediglich nach 15 Jahren auf 100.000 € reduziert werden muss. Beachten Sie, dass der zukünftige Betrag negativ ist, da Sie nach 15 Jahren den Betrag von 100.000 € bezahlen müssen, um die Kreditschuld zu tilgen. Ihre monatliche Tilgungszahlung wird folgendermaßen berechnet: Pmt (0.07 / 12, 15 * 12, 250000, -100000) Gibt -1931,58 (auf 2 Dezimalstellen gerundet) zurück. Anmerkungen 268 • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Um den Gesamtbetrag zu ermitteln, der während des ganzen Tilgungszeitraums gezahlt wird, multiplizieren Sie die Zahlung pro Zeitraum (den von Pmt zurückgegebenen Wert) mit der Gesamtzahl von Perioden (nPeriods). Crystal Reports-Anwenderhandbuch Funktionen Finanzen PPmt Basic- und Crystal-Syntax. Syntax der Argumente • • • PPmt (Satz, Zeitraum, nZeiträume, aktuellerWert) PPmt (Satz, Zeitraum, nZeiträume, aktuellerWert, zukünftigerWert) PPmt (Satz, Zeitraum, nZeiträume, aktuellerWert, zukünftigerWert, Typ) Argumente • • "Satz" ist eine Zahl, mit der der Zinssatz pro Zeitraum angegeben wird. • "nZeiträume" ist eine positive Zahl, mit der die Gesamtanzahl von Zahlungsperioden in der Annuität angegeben wird. Für Satz, Zeitraum und nZeiträume müssen dieselben Einheiten verwendet werden. Wenn z. B. in nPeriods die Anzahl der Perioden in Monaten angegeben wird, dann wird in rate der monatliche Zinssatz und in period ein Monat angegeben. • "aktuellerWert" ist eine Zahl oder eine Währung, die den derzeitigen oder heutigen Wert einer Reihe zukünftiger Zahlungen oder Zahlungseingänge angibt. • "zukünftigerWert" ist eine optionale Zahl oder Währung, die den zukünftigen Wert oder Saldo angibt, den Sie nach Leistung der letzten Zahlung erreichen möchten. Wenn diese Angabe weggelassen wird, wird 0 verwendet. • "Typ" ist eine optionale Zahl, die angibt, wann Zahlungen fällig sind. Geben Sie 0 an, wenn die Zahlungen am Ende der Zahlungsperiode fällig sind, und 1, wenn sie zu Beginn des Zeitraumes fällig sind. Wenn diese Angabe weggelassen wird, wird 0 verwendet. Zeitraum ist eine Zahl, mit der die Zahlungsperiode im Bereich 1 bis nZeiträume angegeben wird. Rückgabewert Zahlenwert Aktion PPmt gibt eine Zahl zurück, mit der die Tilgungszahlung für einen festgelegten Zeitraum einer Annuität auf Grundlage festgelegter periodischer Zahlungen und eines festgelegten Zinssatzes angegeben wird. Crystal Reports-Anwenderhandbuch 269 8 8 Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie möchten einen Kredit in Höhe von 250.000 € aufnehmen, zahlbar in Monatsraten über 15 Jahre bei einem Jahreszinssatz von 7 %. Die folgende Formel gibt die Höhe der Tilgungssumme zurück, die Sie bei Ihrer ersten Rückzahlung leisten. Beachten Sie, dass der Monatszinssatz 0,07 / 12 und die Anzahl der Monate des Darlehens 15 * 12 beträgt. PPmt (0.07 / 12, 1, 15 * 12, 250000) Gibt den Zahlenwert –788,74 (auf 2 Dezimalstellen gerundet) zurück. Dieser Wert ist negativ, da er eine Zahlung von Ihnen darstellt, während der Darlehensbetrag in Höhe von 250.000 € positiv ist, da er einen Zahlungseingang bildet. Die folgende Formel gibt die Höhe der Tilgungssumme zurück, die Sie bei Ihrer 121. Zahlung (nach 10 Zahlungsjahren) leisten: PPmt (0.07 / 12, 10*12 + 1, 15 * 12, 250000) Gibt -1585,09 (auf 2 Dezimalstellen gerundet) zurück. Da Sie mit Ihrer Rückzahlung vorangekommen sind, wird jetzt ein größerer Teil Ihrer monatlichen Zahlung für die Restschuld verwendet. Dies liegt daran, dass weniger Zins pro Monat anfällt, weil ein größerer Teil des Darlehens abbezahlt worden ist, wodurch ein größerer Teil Ihrer feststehenden monatlichen Zahlungen für die Restschuld selbst verwendet wird. Die folgende Formel in Basic-Syntax gibt den Darlehensbetrag an, der nach 10 Jahren durch Aufsummieren der ersten 120 monatlichen Tilgungszahlungen getilgt wurde: Rem Basic-Syntax Dim gesamt, i gesamt = 0 For i = 1 To 10 * 12 gesamt = gesamt + PPmt (0.07 / 12, i, 15 * 12, 250000) Next i formula = gesamt Gibt -136518,45 (auf 2 Dezimalstellen gerundet) zurück. Nach der 120. Zahlung haben Sie 136.518,45 € abbezahlt und schulden noch 113.481,55 €. Die Höhe Ihrer Restschuld nach 10 Jahren können Sie auch mit Hilfe von 2 Finanzfunktionen errechnen: Rem Basic-Syntax Dim Zahlung Zahlung = Pmt (0.07 / 12, 15 * 12, 250000) formula = FV (0.07 / 12, 10 * 12, Zahlung, 250000) 270 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Gibt –113481,55 (auf 2 Dezimalstellen gerundet) zurück. Somit schulden Sie nach 10 Zahlungsjahren noch 113.481,55 €. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Price Basic- und Crystal-Syntax. Syntax der Argumente • Price (Zahlungsdatum, Fälligkeitsdatum, Anleihezins, Ertrag, Rückzahlungswert, Häufigkeit) • Price (Zahlungsdatum, Fälligkeitsdatum, Anleihezins, Ertrag, Rückzahlungswert, Häufigkeit, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Anleihezins" ist eine nicht negative Zahl, die den Zinssatz für das Wertpapier angibt. • "Ertrag" ist eine nicht negative Zahl, die den Ertrag des Wertpapiers angibt. • "Rückzahlungswert" ist eine Zahl bzw. Währung, die den Rückzahlungswert des Wertpapiers pro 100 € des Nennwertes angibt. • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Crystal Reports-Anwenderhandbuch 271 8 8 Funktionen Finanzen Rückgabewert Currency-Wert Aktion "Preis" gibt den Preis eines Wertpapiers mit regelmäßigen Zinszahlungen bezogen auf 100 € des Nennwertes zurück. Die Berechnung gliedert sich in drei Teile. Der erste Term dient zur Berechnung des aktuellen Wertes des Rückzahlungskurses, der zweite zur Verarbeitung des aktuellen Wertes der Zinszahlungen und der letzte zur Subtraktion der aufgelaufenen Zinszahlungen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, am 1. März 1999 wird eine Kommunalanleihe mit Fälligkeitsdatum 1. Januar 2005 erworben. Der Zinssatz beträgt 6,7 % und der Ertrag 6,5 %. Bei der Tilgung wird der Nennwert der Anleihe bezogen auf 100 € zurückgezahlt, und der Zins wird vierteljährlich ausgezahlt. Price(DateValue(1999,3,1), DateValue(2005,1,1), 0. 067, 0.065, 100, 4, 0) Gibt 100,96 € (auf die nächste ganze Zahl gerundet) als Preis der Anleihe zurück. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • • • • • PriceDisc PriceMat Yield YieldDisc YieldMat PriceDisc Basic- und Crystal-Syntax. Syntax der Argumente • 272 PriceDisc (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz, Rückzahlungswert) Crystal Reports-Anwenderhandbuch Funktionen Finanzen • PriceDisc (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz, Rückzahlungswert, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • Diskontsatz ist eine positive Zahl, die den Diskontsatz des Wertpapiers angibt. • "Rückzahlungswert" ist eine Zahl bzw. Währung, die den Rückzahlungswert des Wertpapiers pro 100 € des Nennwertes angibt. • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Aktion PriceDisc gibt den Preis eines diskontierten Wertpapiers pro 100 € des Nennwertes zurück. Die Formel subtrahiert den Diskontbetrag vom Rückzahlungswert. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: US-Schatzwechsel werden auf Diskontbasis erworben und zum Nennwert zurückgezahlt. Angenommen, ein Schatzwechsel mit Fälligkeitsdatum 1. Oktober 1999 wird am 15. Juli 1999 erworben und hat einen Diskontsatz von 6,3 %. Unter Zugrundelegung einer Echt/360-Basis für dieses diskontierte Wertpapier wird der Preis mit der folgenden Formel ermittelt: PriceDisc(DateValue(1999,7,15), DateValue(1999,10,1), 0.063, 100, 2) Crystal Reports-Anwenderhandbuch 273 8 8 Funktionen Finanzen Gibt 98,64 € (auf die nächste ganze Zahl gerundet) als Preis des Schatzwechsels zurück. Da zwischen Zahlung und Fälligkeit 78 Tage liegen, beläuft sich der Diskontbetrag auf 100 x 0,063 x (78/360) = 1,365. Um das Ergebnis zu erhalten, wird dieser Wert vom Rückzahlungswert 100 € subtrahiert. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • • • • • Price PriceMat Yield YieldDisc YieldMat PriceMat Basic- und Crystal-Syntax. Syntax der Argumente • PriceMat (Zahlungsdatum, Fälligkeitsdatum, Ausgabedatum, Zinssatz, Ertrag) • PriceMat (Zahlungsdatum, Fälligkeitsdatum, Ausgabedatum, Zinssatz, Ertrag, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • Ausgabedatum entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier ausgegeben wurde. • Zinssatz ist eine nicht negative Zahl, die den Zinssatz für das Wertpapier angibt. • "Ertrag" ist eine nicht negative Zahl, die den Ertrag des Wertpapiers angibt. • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • 274 0 - Amerikanisch 30/360 (Standard) Crystal Reports-Anwenderhandbuch Funktionen Finanzen • • • • 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Aktion PriceMat gibt den Preis eines Wertpapiers zurück, dessen gesamte Zinsen pro 100 € des Nennwertes bei Fälligkeit gezahlt werden. Die Formel subtrahiert die beim Verkäufer aufgelaufenen Zinsen vom aktuellen Wert des bei Fälligkeit erhaltenen Betrags, und zwar auf der Grundlage des Ertrags und der Laufzeit des Wertpapiers. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Depositenzertifikat über 150.000 € erzielt bei Fälligkeit 4,3 % Zinsen und hat einen Ertrag von 4,0 %. Wenn das Zertifikat am 1. Januar 2000 ausgegeben, am 4. März 2000 gekauft und am 31. Juli 2000 fällig wurde, kann der Preis unter Verwendung der 30/360-Basis mit der folgenden Formel berechnet werden: 150000/100 * PriceMat(DateValue(2000,3,4), DateValue(2000,7,31), DateValue(2000,1,1), 0.043, 0.04) In diesem Beispiel werden 150.162,66 € (auf die nächste ganze Zahl gerundet) als Preis des Zertifikats zurückgegeben. Der Nennwert des Zertifikats muss durch 100 dividiert werden, da die Funktion den Preis pro 100 € zurückgibt. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • • • • • Price PriceDisc Yield YieldDisc YieldMat Crystal Reports-Anwenderhandbuch 275 8 8 Funktionen Finanzen PV Basic- und Crystal-Syntax. Syntax der Argumente • • • PV (Satz, nZeiträume, Bezahlung) PV (Satz, nZeiträume, Bezahlung, zukünftigerWert) PV (Satz, nZeiträume, Bezahlung, zukünftigerWert, Typ) Argumente • • "Satz" ist eine Zahl, mit der der Zinssatz pro Zeitraum angegeben wird. • "Bezahlung" ist ein Number- oder Währungsfeld, das Ihre in jedem Zeitraum zu leistenden Zahlungen angibt. • "zukünftigerWert" ist eine optionale Zahl oder Währung, die den zukünftigen Wert oder Saldo angibt, den Sie nach Leistung der letzten Zahlung erreichen möchten. Wenn diese Angabe weggelassen wird, wird 0 verwendet. • "Typ" ist eine optionale Zahl, die angibt, wann Zahlungen fällig sind. Geben Sie 0 an, wenn die Zahlungen am Ende der Zahlungsperiode fällig sind, und 1, wenn sie zu Beginn des Zeitraumes fällig sind. Wenn diese Angabe weggelassen wird, wird 0 verwendet. "nZeiträume" ist eine positive Zahl, mit der die Gesamtanzahl von Zahlungsperioden in der Annuität angegeben wird. Für "Satz" und "nZeiträume" müssen dieselben Einheiten verwendet werden. Wenn z. B. in "nZeiträume" die Anzahl der Perioden in Monaten angegeben wird, dann wird in "Satz" die monatliche Zinsrate angegeben. Rückgabewert Zahlenwert Aktion "PV" gibt eine Zahl zurück, die den momentanen Wert einer Jahreszahlung auf Grundlage festgelegter periodischer Zahlungen, die in der Zukunft zu leisten sind, und eines festgelegten Zinssatzes angibt. 276 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, Sie möchten eine Eigentumswohnung kaufen und können zweimal pro Monat 1.100 € zahlen (24 Zahlungen im Jahr). Wenn der Zinssatz des Darlehens 7 % beträgt und Sie die Eigentumswohnung in 10 Jahren abbezahlen möchten, wie hoch darf dann das Darlehen maximal sein? PV (0.07 / 24, 10 * 24, -1100) Gibt 189668 (auf die nächste ganze Zahl gerundet) zurück. Also können Sie sich die Aufnahme eines Kredits in Höhe von ungefähr 190.000 € leisten. Beachten Sie, dass das Argument "Beazhlung" negativ ist, da Sie den entsprechenden Betrag jeden Monat bezahlen. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Rate Basic- und Crystal-Syntax. Syntax der Argumente • • • • Rate (nZeiträume, Bezahlung, aktuellerWert) Rate (nZeiträume, Bezahlung, aktuellerWert, zukünftigerWert) Rate (nZeiträume, Bezahlung, aktuellerWert, zukünftigerWert, Typ) Rate (nZeiträume, Bezahlung, aktuellerWert, zukünftigerWert, Typ, Schätzung) Argumente • "nZeiträume" ist eine positive Zahl, mit der die Gesamtanzahl von Zahlungsperioden in der Annuität angegeben wird. • "Bezahlung" ist ein Number- oder Währungsfeld, das Ihre in jedem Zeitraum zu leistenden Zahlungen angibt. • "aktuellerWert" ist eine Zahl oder eine Währung, die den derzeitigen oder heutigen Wert einer Reihe zukünftiger Zahlungen oder Zahlungseingänge angibt. Crystal Reports-Anwenderhandbuch 277 8 8 Funktionen Finanzen • "zukünftigerWert" ist eine optionale Zahl oder Währung, die den zukünftigen Wert oder Saldo angibt, den Sie nach Leistung der letzten Zahlung erreichen möchten. Wenn diese Angabe weggelassen wird, wird 0 verwendet. • "Typ" ist eine optionale Zahl, die angibt, wann Zahlungen fällig sind. Geben Sie 0 an, wenn die Zahlungen am Ende der Zahlungsperiode fällig sind, und 1, wenn sie zu Beginn des Zeitraumes fällig sind. Wenn diese Angabe weggelassen wird, wird 0 verwendet. • "Schätzung" ist eine optionale Zahl, die den geschätzten Rückgabewert von Satz angibt. Wenn diese Angabe weggelassen wird, wird für "Schätzung" der Wert 0,1 (10 %) verwendet. Rückgabewert Zahlenwert Aktion rate gibt eine Zahl zurück, die den Zinssatz pro Zeitraum einer Annuität angibt. Die Einheiten des Rückgabewertes stimmen mit den Einheiten von nPeriods überein. Wenn z. B. nZeiträume in Monaten angegeben ist, dann wird in rate ein Monatszinssatz zurückgegeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Ein Elektrowarengeschäft bietet Ihnen an, ein Fernsehgerät im Wert von 1.500 € mit 70 € pro Monat über 2 Jahre zu finanzieren, ohne dass Sie eine Anzahlung leisten müssen. Ist das ein gutes Angebot? Zunächst muss ermittelt werden, welchen Zinssatz das Geschäft verlangt: Rate (2 * 12, -70, 1500) Gibt 0,00927 (auf 5 Kommastellen gerundet) zurück. Beachten Sie, dass "nZeiträume" 24 Monate sind, "Bezahlung" (-70) negativ ist, da Sie ja die monatlichen Zahlungen auszahlen, und der aktuelle Wert (1.500 €) positiv ist, da Sie diesen Wert (den Wert des Fernsehgeräts) bei Beginn der Finanzierung erhalten. Es wird ein Monatszinssatz zurückgegeben, da nZeiträume in Monaten angegeben wurde. Im nächsten Ausdruck wird der Zinssatz als Jahreszinssatz und in Prozent ausgerechnet. Rate (2 * 12, -70, 1500) * 12 * 100 Gibt 11,1 (auf 1 Dezimalstelle gerundet) zurück. Folglich verlangt das Geschäft einen effektiven Jahreszinssatz von 11,1 %. 278 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Für die Funktion Rate gibt es keine direkte Formel, und daher berechnet Crystal Reports den Wert durch Iteration. Dieser Vorgang hängt von der ursprünglichen Einschätzung des Zinssatzes ab. Wenn vom Programm eine Fehlermeldung ausgegeben wird, versuchen Sie es mit einem anderen Wert für das Argument "Schätzung", um einen Wert zu finden, der dem tatsächlichen Zinssatz eher entsprechen könnte. Received Basic- und Crystal-Syntax. Syntax der Argumente • • Received (Zahlungsdatum, Fälligkeitsdatum, Investition, Diskontsatz) Received (Zahlungsdatum, Fälligkeitsdatum, Investition, Diskontsatz, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Investition" ist eine positive Zahl oder Währung, die den investierten Betrag angibt. • "Diskontsatz" ist eine positive Zahl, die den Diskontsatz des Wertpapiers angibt. • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Currency-Wert Crystal Reports-Anwenderhandbuch 279 8 8 Funktionen Finanzen Aktion Received gibt den für ein „voll investiertes“ Wertpapier bei Fälligkeit erhaltenen Betrag zurück. Diskontierte Wertpapiere werden bei Fälligkeit normalerweise zu einem glatten Nennwert veräußert. Daher wird der Wert des Wertpapiers beim Kauf auf einen ungeraden Betrag diskontiert. Da Investoren in der Regel „voll“ bzw. glatte Beträge (z. B. 100.000 €) investieren möchten, sind spezielle Berechnungen erforderlich. Die Funktion Received berechnet einen Nennwert, so dass der diskontierte Wert, wenn der Diskontsatz für den festgelegten Zeitraum angewendet wird, mit dem investierten Betrag übereinstimmt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, 10.000 € werden ab 15. März 2000 bis zum Fälligkeitsdatum des Wertpapiers am 1. Juni 2000 zu einem Diskontsatz von 6,5 % investiert. Es wird die amerikanische 30/360-Basis zugrunde gelegt. Received (DateValue(2000,3,15),DateValue(2000,6,1),10000,0.065 ,0) Gibt 10.139,13 € als Nennwert für dieses Wertpapier zurück. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • IntRate SLN (Kosten, Restwert, Lebensdauer) Basic- und Crystal-Syntax. Argumente • "Kosten" ist eine Zahl oder eine Währung, mit der die Anfangskosten der Anlage angegeben werden. • "Restwert" ist eine Zahl oder Währung, die den Wert der Anlage am Ende ihrer Lebensdauer angibt. • Lebensdauer ist eine Zahl, mit der die Lebensdauer der Anlage angegeben wird. Sie darf nicht 0 sein. Rückgabewert Zahlenwert 280 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Aktion SLN gibt eine Zahl zurück, mit der die lineare Abschreibung einer Anlage für einen einzelnen Zeitraum angegeben wird. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Unternehmen legt einen Fuhrpark im Wert von 500.000 € an. Die Fahrzeuge haben eine Lebensdauer von 10 Jahren und einen Restwert von 60.000 €. Der jährliche Abschreibungsbetrag beträgt: SLN (500000, 60000, 10) Gibt 44000 zurück. Der jährliche Abschreibungsbetrag beträgt 44.000 €. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. SYD (Kosten, Restwert, Lebensdauer, Zeitraum) Basic- und Crystal-Syntax. Argumente • "Kosten" ist eine Zahl oder eine Währung, mit der die Anfangskosten der Anlage angegeben werden. • "Restwert" ist eine Zahl oder Währung, die den Wert der Anlage am Ende ihrer Lebensdauer angibt. • "Lebensdauer" ist eine positive Zahl, mit der die Lebensdauer der Anlage angegeben wird. • "Zeitraum" ist eine Zahl, die den Zeitraum angibt, für den die Wertminderung einer Anlage berechnet wird. Dieser Wert muss positiv und kleiner als oder gleich der Lebensdauer sein. Die Argumente Lebensdauer und Zeitraum müssen in denselben Einheiten angegeben werden. Rückgabewert Zahlenwert Aktion SYD gibt eine Zahl zurück, mit der die arithmetisch-degressive Abschreibung einer Anlage für einen einzelnen Zeitraum angegeben wird. Crystal Reports-Anwenderhandbuch 281 8 8 Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Unternehmen legt einen Fuhrpark im Wert von 500.000 € an. Die Fahrzeuge haben eine Lebensdauer von 10 Jahren und einen Restwert von 60.000 €. Sie werden folgendermaßen abgeschrieben: SYD (500000, 60000, 10, 1) Gibt 80000 zurück. Der Abschreibungsbetrag des ersten Jahres beträgt 80.000 €. SYD (500000, 60000, 10, 4) Gibt 56000 zurück. Der Abschreibungsbetrag des vierten Jahres beträgt 56.000 €. SYD (500000, 60000, 10, 10) Gibt 8000 zurück. Der Abschreibungsbetrag des letzten Jahres beträgt 8.000 €. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. TBillEq (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) Basic- und Crystal-Syntax. Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann der Schatzwechsel erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Schatzwechsels an. • "Diskontsatz" ist eine positive Zahl, die den Diskontsatz des Schatzwechsels angibt. Rückgabewert Zahlenwert 282 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Aktion TBillEq gibt ein Äquivalent in Form der Anleiherendite zurück, das gleichwertig mit dem Diskontsatz eines Schatzwechsels ist. Schatzwechsel stellen quasi ein Versprechen dar, einen festen Betrag zu einem bestimmten Datum zu zahlen. Die Wechsel werden zu einem Preis unter diesem Betrag erworben, und der ROI (Return on Investment) ergibt sich aus der Differenz zwischen Kaufpreis und Nennwert. Der Diskontsatz wird auf der Grundlage des Nennwertes und 360 Tagen pro Jahr berechnet. Anleiherenditen werden im Gegensatz dazu auf der Grundlage des Kaufpreises und eines vollen Jahres berechnet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Wenn ein Schatzwechsel mit Fälligkeitsdatum 1. Juli 2000 am 15. Februar 2000 zu einem Diskontsatz von 8,5 % gekauft wurde, lässt sich der äquivalente Ertrag mit folgender Formel ermitteln: TBillEq(DateValue(2000,2,15),DateValue(2000,7,1),0.085) Gibt 0,0891 (auf vier Dezimalstellen gerundet) zurück, was einem Zinssatz von 8,91 % entspricht. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • • • TBillYield (Zahlungsdatum, Fälligkeitsdatum, Preis) TBillPrice (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) DISC TBillPrice (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) Basic- und Crystal-Syntax. Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann der Schatzwechsel erworben wurde. Crystal Reports-Anwenderhandbuch 283 8 8 Funktionen Finanzen • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Schatzwechsels an. • "Diskontsatz" ist eine positive Zahl, die den Diskontsatz des Schatzwechsels angibt. Rückgabewert Currency-Wert Aktion TBillPrice gibt einen Currency-Wert zurück, der den aktuellen Preis pro 100 € des Nennwertes eines Schatzwechsels unter Berücksichtigung des Diskontsatzes darstellt. Der Diskontsatz entspricht einer Berechnung, die auf der Rendite und der Zeitdauer zwischen Zahlung und Fälligkeit basiert. Diese Funktion kehrt die Beziehung um, da die Rendite unter Berücksichtigung des Diskontsatzes von 100 € subtrahiert wird. Für Schatzwechsel wird eine Echt/ 360-Basis zugrunde gelegt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Wenn ein Schatzwechsel mit Fälligkeitsdatum 1. Juli 2000 am 15. Februar 2000 zu einem Diskontsatz von 8,5 % gekauft wurde, lässt sich der Kaufpreis wie folgt ermitteln: TBillPrice(DateValue(2000,2,15),DateValue(2000,7,1),0.08 5) Gibt 96,77 € (auf die nächste ganze Zahl gerundet) zurück. Anmerkungen • • Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Die Funktionen DISC und TBillPrice stehen in einem umgekehrten Verhältnis zueinander. Der Diskontsatz DISC, der den von TBillPrice zurückgegebenen Preis verwendet, ein Rückzahlungswert von 100 € sowie die Verwendung einer Basis von 2 (Echt/360) entspricht exakt dem Diskontsatz, der in der Funktion TBillPrice eingegeben wurde. Dies bedeutet r=DISC(a,b,TBillPrice(a,b,r),100), wobei a und b Datumsangaben und r den Diskontsatz darstellen. Siehe auch • • • 284 TBillEq (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) TBillYield (Zahlungsdatum, Fälligkeitsdatum, Preis) DISC Crystal Reports-Anwenderhandbuch Funktionen Finanzen TBillYield (Zahlungsdatum, Fälligkeitsdatum, Preis) Basic- und Crystal-Syntax. Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann der Schatzwechsel erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Schatzwechsels an. Die Laufzeiten von Schatzwechseln betragen in der Regel 90 Tage, 182 Tage und 52 Wochen. • Preis ist eine positive Zahl oder Währung, die den Kaufpreis eines Schatzwechsels pro 100 € des Nennwertes angibt. Rückgabewert Zahlenwert Aktion TBillYield gibt eine Zahl zurück, die die Rendite eines Schatzwechsels darstellt. Dies ist der mit einem Schatzwechsel erwirtschaftete Betrag, und zwar als Prozentsatz des Kaufpreises, der unter Zugrundelegung einer Echt/ 360-Basis auf Jahresbasis umgerechnet wurde. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Wenn ein Schatzwechsel von 10.000 € mit Fälligkeitsdatum 1. Juli 2000 am 15. Februar 2000 zu einem Preis von 9.850,00 € erworben wurde, beläuft sich die Rendite der Investition auf: TBillYield(DateValue(2000,2,15),DateValue(2000,7,1),98.50) Gibt 0,0400 (auf 4 Dezimalstellen gerundet) zurück. Der Kaufpreis von 9.850 € musste durch (100/10000) dividiert werden, um den Preis pro 100 € zu ermitteln. Die Rendite beträgt in diesem Fall 1,50 € pro 100 €, und die Investition wird für 137 Tage des 360-Tage-Jahres gehalten. Der zurückgegebene Wert lautet (1,5/98,50)/(137/360). Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • • • TBillEq (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) TBillPrice (Zahlungsdatum, Fälligkeitsdatum, Diskontsatz) DISC Crystal Reports-Anwenderhandbuch 285 8 8 Funktionen Finanzen VDB Basic- und Crystal-Syntax. Syntax der Argumente • • VDB (Kosten, Restwert, Lebensdauer, Startzeitraum, Endzeitraum) • VDB (Kosten, Restwert, Lebensdauer, Startzeitraum, Endzeitraum, KeineUmschichtung) • VDB (Kosten, Restwert, Lebensdauer, Startzeitraum, Endzeitraum, Abschreibungsfaktor, KeineUmschichtung) VDB (Kosten, Restwert, Lebensdauer, Startzeitraum, Endzeitraum, Abschreibungsfaktor) Argumente • cost ist eine Zahl oder eine Währung, mit der die Anfangskosten der Anlage angegeben werden. • salvage ist eine Zahl oder Währung, die den Wert der Anlage am Ende ihrer Lebensdauer angibt. • Lebensdauer ist eine positive Zahl, die die Zeiträume in der Lebensdauer der Anlage angibt. • Startzeitraum ist eine positive Zahl, die den Startpunkt der Berechnung für die Abschreibungssumme angibt. Der Startzeitraum wird in der Berechnung nicht berücksichtigt. • Endzeitraum ist eine Zahl, die den letzten in der Abschreibungsberechnung verwendeten Zeitraum angibt. Diese Zahl muss größer oder gleich dem Startzeitraum sein und darf die Lebensdauer der Anlage nicht überschreiten. • Abschreibungsfaktor ist eine nicht negative Zahl, die den Satz angibt, zu dem die Anlage abgeschrieben wird. Der Standardwert ist 2 und basiert auf der degressiven Doppelraten-Abschreibung. • KeineUmschichtung ist ein boolescher Wert, der festlegt, ob die Funktion zu einer linearen Abschreibung wechselt, wenn die degressive Abschreibung geringer als die lineare Methode ist. Durch den Standardwert FALSE (Falsch) wechselt VDB zur linearen Methode, während durch den Wert TRUE (Wahr) die Verwendung der degressiven Abschreibung erzwungen wird. Rückgabewert Currency-Wert 286 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Aktion VDB gibt die gesamte Abschreibung zwischen dem angegebenen Start- und Endzeitraum zurück. Falls KeineUmschichtung FALSE (Falsch) ist, ergibt die Summe der Abschreibungen über die Lebensdauer der Anlage die Differenz zwischen Kosten und Restwert. Die Umschichtung zwischen den Methoden erfolgt, wenn die restliche Abschreibungsspanne, dividiert durch die Anzahl der in der Lebensdauer verbleibenden Zeiträume, den mit der degressiven Abschreibung berechneten Wert überschreitet. Die Abschreibungsspanne entspricht dem Restwert und der kumulativen Abschreibung, die von den Anlagekosten subtrahiert werden. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Computer wird zum Preis von 1.000 € erworben, hat einen Restwert von 250 € und wird mit der degressiven Doppelraten-Methode abgeschrieben. Die Lebensdauer beträgt 10 Zeiträume (Jahre). VDB (1000,250,10,0,5,2,FALSE) Gibt 672,32 € als Abschreibung für die ersten 5 Jahre der Computerlebensdauer zurück. In dieser Situation ist der Wert identisch mit dem für KeineUmschichtung=TRUE (Wahr). VDB (1000,250,10,5,6,1,FALSE) Gibt 67,68 € (auf die nächste ganze Zahl gerundet) als Abschreibung zurück. Sie gilt ausschließlich für das sechste Jahr der Computerlebensdauer. Der mit KeineUmschichtung=FALSE (Falsch) berechnete Wert beträgt 59,05 € (gerundet). Dies veranschaulicht, dass VDB im ersten Fall zur linearen Abschreibungsmethode gewechselt hat, was bedeutet, dass in allen nachfolgenden Zeiträumen auch eine jährliche Abschreibung von 67,68 € anfällt. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • • • • DB DDB AmorLINC AmorDEGRC Crystal Reports-Anwenderhandbuch 287 8 8 Funktionen Finanzen XIRR Basic- und Crystal-Syntax. Syntax der Argumente • • XIRR (Werte, Tage) XIRR (Werte, Tage, SatzSchätzung) Argumente • values ist ein Array des Number- oder Währungstyps, der die CashflowWerte angibt. Der Array muss mindestens einen negativen Wert (Zahlung) und einen positiven Wert (Zahlungseingang) enthalten. Diese Transaktionen erfolgen an dem durch das Argument Tage festgelegten Datum. • "Tage" ist ein Array vom Typ Date oder DateTime, der das Datum der im Argument Werte festgelegten Cashflow-Zahlungen angibt. Das erste Datum entspricht dem Start der zeitgesteuerten Verarbeitung. Die Datumsangaben können in beliebiger Reihenfolge auftreten, müssen jedoch nach dem ersten Datum liegen. Der Wertearray muss dieselbe Größe wie das Datumsarray aufweisen. • "rateGuess" ist eine optionale Zahl, die den geschätzten Rückgabewert von IRR enthält. Wenn diese Angabe weggelassen wird, wird der Wert 0,1 (10 Prozent) verwendet. Rückgabewert Zahlenwert Aktion XIRR berechnet die interne Gewinnrate für eine Folge von Cashflow-Werten (Zahlungen und Zahlungseingänge). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Wagniskapitalgeschäft wurde zu folgenden Konditionen abgeschlossen. Für eine am 1. März 1999 getätigte Investition von 100.000 € wurde am 31. August 1999 eine Rendite von 60.000 € erzielt, und am 1. November 1999 stand eine Teilzahlung von 35.000 € an. Am 1. Januar 2000 erfolgte eine weitere Einlage von 50.000 € in das Wagniskapitalgeschäft. 288 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Der Abschluss erfolgte am 15. April 2000 mit einer Auszahlung von 75.000 €. Im Folgenden eine Zusammenfassung der Cashflow-Zahlungen: 1 März 1999 -$100,000 31. August 1999 $60,000 1 November 1999 $35,000 1 Januar 2000 -$50,000 15 April 2000 $75,000 Rem Basic Syntax formula = XIRR(Array(-100000,60000,35000,-50000,75000), Array(DateValue(1999,3,1),DateValue(1999,8,31),DateVa lue(1999,11,1), DateValue(2000,1,1),DateValue(2000,4,15))) //Crystal Syntax XIRR([-100000,60000,35000,-50000,75000], [DateValue(1999,3,1),DateValue(1999,8,31),DateValue(1 999,11,1), DateValue(2000,1,1),DateValue(2000,4,15)]) Gibt 0,2605 zurück, was einer internen Gewinnrate von 26,05 % entspricht. Anmerkungen • • Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. • Für die Funktion XIRR gibt es keine direkte Formel, und daher berechnet Crystal Reports den Wert durch Iteration. Dieser Vorgang hängt von der ursprünglichen Einschätzung der internen Gewinnrate ab. Wenn vom Programm eine Fehlermeldung ausgegeben wird, versuchen Sie es mit einem anderen Wert für das Argument guess, um einen Wert zu finden, der der tatsächlichen internen Gewinnrate eher entsprechen könnte. Die Funktionen XNPV und XIRR beziehen sich aufeinander, da die Verwendung der durch XIRR berechneten Gewinnrate in der Funktion XNPV zur Folge hat, dass von XNPV Null zurückgegeben wird. Dies bedeutet, dass die interne Gewinnrate dem Zins entspricht, dessen NPV (Net Present Value) Null ist. Siehe auch • • • XNPV (Satz, Werte, Tage) IRR NPV (Satz, Werte) Crystal Reports-Anwenderhandbuch 289 8 8 Funktionen Finanzen XNPV (Satz, Werte, Tage) Basic- und Crystal-Syntax. Argumente • • Satz ist eine Zahl, die den Jahresdiskontsatz angibt. • "Tage" ist ein Array vom Typ Date oder DateTime, der das Datum der im Argument Werte festgelegten Cashflow-Zahlungen angibt. Das erste Datum entspricht dem Start der zeitgesteuerten Verarbeitung. Die Datumsangaben können in beliebiger Reihenfolge auftreten, müssen jedoch nach dem ersten Datum liegen. values ist ein Array des Number- oder Währungstyps, der die CashflowWerte angibt. Der Array muss mindestens einen negativen Wert (Zahlung) und einen positiven Wert (Zahlungseingang) enthalten. Diese Transaktionen erfolgen zu dem unter Tage angegebenen Datum. Rückgabewert Currency-Wert Aktion XNPV gibt eine Zahl zurück, die den Nettowert einer Investition angibt, die auf einer Folge periodisch geleisteter Cashflow-Werte (Zahlungen und Zahlungseingänge) und einem Diskontsatz beruht. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, einer Person wurden zum 1. April 1999 sofort 1.000 € angeboten, zum 1. Juli 1999 2.500 €, zum 1. Oktober 1999 2.500 € und zum 31. Dezember 1999 5.000 €. Wenn der Diskontsatz (der Zeitwert von Geld) bei 4,5 Prozent liegt, dann hat dieses Angebot heute folgenden Wert für Sie: Rem Basic Syntax formula = XNPV(0.045,Array(1000,2500,2500,5000), Array(DateValue(1999,4,1),DateValue(1999,7,31),DateVa lue(1999,10,1), DateValue(1999,12,31))) //Crystal Syntax XNPV(0.045,[1000,2500,2500,5000], [DateValue(1999,4,1),DateValue(1999,7,31),DateValue(1 999,10,1), DateValue(1999,12,31)]) Gibt 10.746,70 € zurück, was geringer als die Summe der Zahlungen ist, da die Person auf das Geld warten muss. 290 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Anmerkungen • • Diese Funktion arbeitet genauso wie die gleichnamige Funktion in Excel. Die Funktionen XNPV und XIRR beziehen sich aufeinander, da die Verwendung der durch XIRR berechneten Gewinnrate in der Funktion XNPV zur Folge hat, dass von XNPV Null zurückgegeben wird. Dies bedeutet, dass die interne Gewinnrate dem Zins entspricht, dessen NPV (Net Present Value) Null ist. Siehe auch • • • XIRR IRR NPV (Satz, Werte) YearFrac Basic- und Crystal-Syntax. Syntax der Argumente • • YearFrac (Startdatum, Enddatum) YearFrac (Startdatum, Enddatum, Basis) Argumente • Startdatum ist ein Datums- oder DateTime-Wert für den Start eines Zeitintervalls. • Enddatum ist ein Datums- oder DateTime-Wert für das Ende eines Zeitintervalls. • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert Aktion YearFrac gibt den Bruchteil eines Jahres an, der innerhalb der Zeitspanne zwischen zwei Datumsangaben liegt. Crystal Reports-Anwenderhandbuch 291 8 8 Funktionen Finanzen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: YearFrac(DateValue(2000,1,1),DateValue(2000,4,1)) Gibt 0,25 zurück, da zwischen Anfang Januar und Anfang April drei Monate liegen. Angenommen, für sämtliche Mitarbeiter muss von ihrem ersten Arbeitstag bis zum 1. Januar 2000 eine rückwirkende Lohnerhöhung berechnet werden. Wenn in der Datenbanktabelle ein Feld namens "Startdatum" mit dem Datum enthalten ist, zu dem der Mitarbeiter seine Arbeit aufgenommen hat, kann folgende Formel verwendet werden. So wird festgestellt, wie viele Jahre und Teiljahre jedem Mitarbeiter zustehen. yearFrac({Startdatum},DateValue(2000,1,1)); Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Yield Basic- und Crystal-Syntax. Syntax der Argumente • Yield (Zahlungsdatum, Fälligkeitsdatum, Anleihezins, Preis, Rückzahlungswert, Häufigkeit) • Yield (Zahlungsdatum, Fälligkeitsdatum, Anleihezins, Preis, Rückzahlungswert, Häufigkeit, Basis) Argumente 292 • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Anleihezins" ist eine nicht negative Zahl, die den Zinssatz für das Wertpapier angibt. • "Preis" ist eine nicht negative Zahl bzw. Währung, die den Kaufpreis des Wertpapiers pro 100 € des Nennwertes angibt. • "Rückzahlungswert" ist eine Zahl bzw. Währung, die den Rückzahlungswert des Wertpapiers pro 100 € des Nennwertes angibt. Crystal Reports-Anwenderhandbuch Funktionen Finanzen • "Häufigkeit" ist eine Zahl, die die Anzahl der Zinsscheine pro Jahr angibt. Die unterstützten Werte sind 1 (jährliche Zahlungen), 2 (halbjährliche Zahlungen) und 4 (vierteljährliche Zahlungen). • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert Aktion Yield gibt den Ertrag für ein Wertpapier zurück, das periodisch Zinsen erwirtschaftet. Liegt zwischen Zahlungsdatum und Fälligkeitsdatum nur noch ein Zeitraum oder ein Teilzeitraum, laufen täglich Zinsen auf. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, am 1. März 1999 wird eine Kommunalanleihe mit Fälligkeitsdatum 1. Januar 2005 erworben. Der Zinssatz beträgt 6,5 %, und der Kaufpreis liegt bei 100,96 € pro 100 € des Nennwertes. Bei der Tilgung wird der Nennwert der Anleihe bezogen auf einen Wert von 100 € zurückgezahlt, und der Zins wird vierteljährlich auf der Grundlage einer 30/ 360-Basis ausgezahlt. Yield(DateValue(1999,3,1),DateValue(2005,1,1),0.067,100. 96,100,4,0) Gibt 0,0650 (auf vier Dezimalstellen gerundet) als Anleiherendite zurück. Beachten Sie, dass es sich hierbei um die Umkehroperation von Price handelt. Anmerkungen • • Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Wenn zwischen Zahlungs- und Fälligkeitsdatum mehrere Zinszeiträume liegen, setzt Crystal Reports unter Verwendung der Formel für Price ein Iterationsverfahren zur Preisberechnung ein. Es wird ein Ertragswert geschätzt und der Preis berechnet. Crystal Reports-Anwenderhandbuch 293 8 8 Funktionen Finanzen Der berechnete Preis wird mit dem angegebenen Preis verglichen und daraufhin ein neuer Ertrag geschätzt. Dieser Vorgang wird so lange wiederholt, bis berechneter und angegebener Preis übereinstimmen. Siehe auch • • • • • Price PriceDisc PriceMat YieldDisc YieldMat YieldDisc Basic- und Crystal-Syntax. Syntax der Argumente • • YieldDisc (Zahlungsdatum, Fälligkeitsdatum, Preis, Rückzahlungswert) YieldDisc (Zahlungsdatum, Fälligkeitsdatum, Preis, Rückzahlungswert, Basis) Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • "Preis" ist eine nicht negative Zahl bzw. Währung, die den Kaufpreis des Wertpapiers pro 100 € des Nennwertes angibt. • "Rückzahlungswert" ist eine Zahl bzw. Währung, die den Rückzahlungswert des Wertpapiers pro 100 € des Nennwertes angibt. • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert 294 Crystal Reports-Anwenderhandbuch Funktionen Finanzen Aktion YieldDisc gibt den Ertrag eines diskontierten Wertpapiers zurück. Durch die Formel wird die Differenz zwischen Kauf- und Rückzahlungskurs durch den Kaufpreis dividiert. Dieser Quotient wird unter Verwendung der angegebenen Basis in einen Jahresrate umgerechnet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: US-Schatzwechsel werden auf Diskontbasis erworben und zum Nennwert zurückgezahlt. Angenommen, ein Schatzwechsel mit Fälligkeitsdatum 1. Oktober 1999 wird am 15. Juli 1999 erworben und hat einen Diskontpreis von 98,64 €. Bei Zugrundelegung einer Echt/360-Basis für dieses diskontierte Wertpapier wird der Ertrag mit Hilfe der folgenden Formel ermittelt: YieldDisc (DateValue(1999,7,15),DateValue(1999,10,1),98.64,100, 2) Gibt 0,0636 (auf vier Dezimalstellen gerundet) als Ertrag des Schatzwechsels zurück. Anmerkungen • • Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Diese Funktion steht in enger Beziehung zur Funktion PriceDisc. Siehe auch • • • • • Price PriceDisc PriceMat Yield YieldMat YieldMat Basic- und Crystal-Syntax. Syntax der Argumente • YieldMat (Zahlungsdatum, Fälligkeitsdatum, Ausgabedatum, Zinssatz, Preis) • YieldMat (Zahlungsdatum, Fälligkeitsdatum, Ausgabedatum, Zinssatz, Preis, Basis) Crystal Reports-Anwenderhandbuch 295 8 8 Funktionen Finanzen Argumente • "Zahlungsdatum" entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier erworben wurde. • "Fälligkeitsdatum" entspricht entweder Date oder DateTime nach dem Zahlungsdatum und gibt die Fälligkeit des Wertpapiers an. • Ausgabedatum entspricht entweder Date oder DateTime und gibt an, wann das Wertpapier ausgegeben wurde. • Zinssatz ist eine nicht negative Zahl, die den Zinssatz für das Wertpapier angibt. • "Preis" ist eine nicht negative Zahl bzw. Währung, die den Kaufpreis des Wertpapiers pro 100 € des Nennwertes angibt. • "Basis" ist eine optionale Zahl, die das zu verwendende Tagesbasissystem angibt. Folgende Typen werden unterstützt: • • • • • 0 - Amerikanisch 30/360 (Standard) 1 - Echt/Echt 2 - Echt/360 3 - Echt/365 4 - Europäisch 30/360 Rückgabewert Zahlenwert Aktion YieldMat gibt den Ertrag für ein Wertpapier zurück, das Zinsen zum Fälligkeitsdatum erwirtschaftet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Depositenzertifikat über 150.000 € mit einem Zinssatz von 4,3 % hat bei Fälligkeit einen Preis von 150.162,66 €. Wenn das Zertifikat am 1. Januar 2000 ausgegeben, am 4. März 2000 gekauft und am 31. Juli 2000 fällig wurde, kann der Ertrag unter Verwendung der 30/360-Basis mit der folgenden Formel berechnet werden: YieldMat (DateValue(2000,3,4), DateValue(2000,7,31), DateValue(2000,1,1), 0.043, 150162.66/150000*100) Gibt 0,0400 (auf vier Dezimalstellen gerundet) als Ertrag des Zertifikats zurück. Der Preis muss pro 100 € des Nennwertes festgelegt werden. Beachten Sie, dass es sich hierbei um die Umkehroperation von PriceMat handelt. 296 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Excel. Siehe auch • • • • • Price PriceDisc PriceMat Yield YieldDisc Zeichenfolgen Zeichenfolgefunktionen verwenden Sie für die Auswertung, Bearbeitung und Konvertierung von Textzeichenfolgen. Len (Zchnflge) Length (Zchnflge) Trim (Zchnflge) LTrim (Zchnflge) TrimLeft (Zchnflge) RTrim (Zchnflge) TrimRight (Zchnflge) UCase (Zchnflge) UpperCase (Zchnflge) LCase (Zchnflge) LowerCase (Zchnflge) ProperCase(Zchnflge) StrReverse (Zchnflge) IsNumeric (Zchnflge) NumericText (Zchnflge) ToNumber ToText ToWords ReplicateString (Zchnflge, AnzKopien) Space (Ganzzahl) Crystal Reports-Anwenderhandbuch 297 8 8 Funktionen Zeichenfolgen InStr InStrRev StrCmp Mid Left (Zchnflge, Länge) Right (Zchnflge, Länge) Val (Zchnflge) ChrW (x) AscW (Zchnflge) Filter Replace Join Split Roman URLEncode URLDecode Len (Zchnflge) Len und Length (Zchnflge) sind gleichwertige Funktionen. Len wird in der Basic-Syntax bevorzugt, Length dagegen in der Crystal-Syntax. Argument • Zchnflge ist eine Textzeichenfolge. Rückgabewert Ganze Zahl Aktion Len gibt als Zahlenwert die Länge der angegebenen Zeichenfolge zurück. Hinweis: Textzeichenfolgen sind in Anführungszeichen zu fassen. Das Programm berücksichtigt bei der Zählung alle Leerzeichen. Typische Verwendung Verwenden Sie diese Funktion, wenn Sie eine Aktion, einen Vergleich oder eine Berechnung durchführen müssen, die von der Länge einer Textzeichenfolge abhängt. 298 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Len("Beträge") Gibt 7 zurück. Len("bei Zeichen") Gibt 11 zurück. Der Leerschritt zwischen „bei“ und „Zeichen“ wird als Zeichen gewertet. Len(" Center ") Gibt 10 zurück. Auf jeder Seite des Wortes „Center“ stehen 2 Leerzeichen. Len(ToText({Aufträge.Auftragssumme})) Gibt 9 zurück, wenn {Aufträge.Auftragssumme} 14233,08 enthält, und ToText ({Aufträge.Auftragssumme}) gibt die Zeichenfolge „14.233,08“ zurück. In diesem Beispiel wurden Punkt und Komma im Zahlenformat für das Formelfeld als Tausendertrennzeichen bzw. Dezimalzeichen festgelegt. Len(ToText({Aufträge.Auftragssumme}, 2, "", ".")) Gibt 8 zurück, wenn {Aufträge.Auftragssumme} = 14233,08, und ToText ({Aufträge.Auftragssumme}, 2, "", ".") gibt die Zeichenfolge „14233,08“ zurück. In diesem Beispiel wurden NULL-Zeichen (kein Zeichen) und Punkt im Zahlenformat für das Formelfeld als Tausendertrennzeichen bzw. Dezimalzeichen festgelegt. Len({Kunde.Kundenname}) Die Länge der Textzeichenfolge, die als Wert in {Kunde.Kundenname} gespeichert ist. Die folgenden Beispiele gelten für die Basic-Syntax: {Kunde.Kundenname} (Len({Kunde.Kundenname})-2) Gibt das drittletzte Zeichen des jeweiligen Kundennamens zurück. Damit können Sie auch aus einer Zeichenfolge eine Teilzeichenfolge extrahieren, die vom Ende der Zeichenfolge aus stets an derselben Stelle beginnt. Im folgenden Beispiel enthält eine Adresszeile das Bundesland und die Postleitzahl. Die vollen Namen der Bundesländer haben unterschiedliche Längen, Postleitzahlen haben jedoch eine feste Anzahl an Zeichen. Das erste Zeichen der Postleitzahl ist, vom letzten Zeichen der Zeichenfolge aus gezählt, immer das siebte Zeichen. Die Formel ermittelt die Länge der Adresszeile, zieht davon 7 ab und findet anhand des Ergebnisses das erste Zeichen der Postleitzahl in der Adresszeile. Crystal Reports-Anwenderhandbuch 299 8 8 Funktionen Zeichenfolgen Dim AdressZeile As String Dim AdressLänge As Number AnschriftZeile = "British Columbia V6X 3W2" AdressLänge = Len (AnschriftZeile) formula = AdressZeile (AdressLänge-7+1 To AdressLänge) Gibt die Zeichenfolge „V6X 3W2“ zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Length (Zchnflge) Length und Len (Zchnflge) sind gleichwertige Funktionen. Length wird in der Crystal-Syntax bevorzugt, Len dagegen in der Basic-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge. Rückgabewert Ganze Zahl Aktion Length gibt die Anzahl der Zeichen einer Textzeichenfolge zurück, die Sie entweder in die Formel eingegeben haben oder die als Wert in einem Datenfeld gespeichert ist. Hinweis: Textzeichenfolgen müssen in einfachen oder doppelten Anführungszeichen (' ' oder " ") stehen. Das Programm berücksichtigt bei der Zählung alle Leerzeichen. Typische Verwendungen Verwenden Sie diese Funktion, wenn Sie eine Aktion, einen Vergleich oder eine Berechnung durchführen müssen, die von der Länge einer Textzeichenfolge abhängt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Length("Beträge") Gibt 7 zurück. Length(“bei_Zeichen”) Gibt 11 zurück. 300 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Length("__Center__") Gibt 10 zurück. Length(ToText({Aufträge.Auftragssumme})) Gibt 9 zurück, wenn {Aufträge.Auftragssumme} 14233,08 enthält, und ToText ({Aufträge.Auftragssumme}) gibt die Zeichenfolge „14.233,08“ zurück. In diesem Beispiel wurden Punkt und Komma im Zahlenformat für das Formelfeld als Tausendertrennzeichen bzw. Dezimalzeichen festgelegt. Length(ToText({Aufträge.Auftragssumme}, 2, "", ".")) Gibt 8 zurück, wenn {Aufträge.Auftragssumme} = 14233,08, und ToText ({Aufträge.Auftragssumme}, 2, "", ".") gibt die Zeichenfolge „14233,08“ zurück. In diesem Beispiel wurden NULL-Zeichen (kein Zeichen) und Punkt im Zahlenformat für das Formelfeld als Tausendertrennzeichen bzw. Dezimalzeichen festgelegt. Length("BOB") Gibt 3 zurück. Length("SMITH") Gibt 5 zurück. Length("BOB SMITH") Gibt 9 zurück. (Das Leerzeichen zwischen BOB und SMITH wird als ein Zeichen gezählt.) Length({Kunde.Kundenname}) Die Länge der Textzeichenfolge, die als Wert in {Kunde.Kundenname} gespeichert ist. Die folgenden Beispiele gelten für die Crystal-Syntax: {Kunde.Kundenname} [Length({Kunde.Kundenname})-2] Gibt das drittletzte Zeichen des jeweiligen Kundennamens zurück. Damit können Sie auch aus einer Zeichenfolge eine Teilzeichenfolge extrahieren, die vom Ende der Zeichenfolge aus stets an derselben Stelle beginnt. Im folgenden Beispiel enthält eine Adresszeile das Bundesland und die Postleitzahl. Die vollen Namen der Bundesländer haben unterschiedliche Längen, das erste Zeichen der Postleitzahl ist jedoch, vom letzten Zeichen aus gezählt, immer das siebte Zeichen. Die Formel ermittelt die Länge der Adresszeile, zieht davon 7 ab und findet anhand des Ergebnisses das erste Zeichen der Postleitzahl in der Adresszeile. Local StringVar AnschriftZeile; Local NumberVar AnschriftLänge; AnschriftZeile = "British Columbia V6X 3W2" AnschriftLänge := Length (AnschriftZeile); AnschriftZeile [AnschriftLänge-7+1 to AnschriftLänge] Crystal Reports-Anwenderhandbuch 301 8 8 Funktionen Zeichenfolgen Trim (Zchnflge) Basic- und Crystal-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert Aktion Die Funktion Trim entfernt führende und nachfolgende Leerzeichen aus der als Argument übergebenen Zeichenfolge. Typische Verwendungen Diese Funktion können Sie immer dann verwenden, wenn ein Textobjekt führende und/oder nachfolgende Leerzeichen enthält, die bei der Ausrichtung von Textzeichenfolgen, bei einer Zeichenzählung oder bei einer Berechnung (wenn die Zeichenfolge z.B. in eine Zahl konvertiert werden soll) stören. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Trim(" abcde ") Gibt „abcde“ zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. LTrim (Zchnflge) LTrim und TrimLeft (Zchnflge) sind gleichwertige Funktionen. LTrim wird in der Basic-Syntax bevorzugt, TrimLeft dagegen in der Crystal-Syntax. Argument • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert 302 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Aktion LTrim entfernt alle Leerzeichen links neben der angegebenen Zeichenfolge und gibt die Zeichenfolge zurück. Typische Verwendungen • Diese Funktion können Sie immer dann verwenden, wenn ein Textobjekt führende Leerzeichen enthält, die bei der Ausrichtung von Textzeichenfolgen, bei einer Zeichenzählung oder bei einer Berechnung (wenn die Zeichenfolge z. B. in eine Zahl konvertiert werden soll) stören. • Außerdem können Sie diese Funktion immer dann verwenden, wenn Sie bündig ausgerichtete Textzeichenfolgen miteinander kombinieren (verketten) und zwischen den Zeichenfolgen einen korrekten Abstand beibehalten möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: LTrim(" Al/4520/B12") Gibt "A1/4520/B12" zurück. LTrim(" 200") Gibt „200“ zurück, wenn die Zeichenfolge „ 200“ durch führende Leerzeichen rechtsbündig ausgerichtet ist. Angenommen, Sie haben die beiden rechtsbündigen Datenbankfelder {Tabelle.LEBENSMITTEL1} und {Tabelle.LEBENSMITTEL2}. Jedes Feld kann bis zu 15 Zeichen enthalten. {Tabelle.LEBENSMITTEL1} enthält das Wort Brot, und {Tabelle.LEBENSMITTEL2} enthält das Wort Butter. Wenn Sie diese Wörter drucken würden, würden sie wie folgt angezeigt: " Brot" " Butter" Für jedes Feld mit 15 Zeichen enthält die Datenbank das rechtsbündig ausgerichteten Feld "Wert" sowie so viele Leerzeichen, dass das Feld ausgefüllt ist. Wenn Sie diese Wörter ohne die führenden Leerzeichen verwenden möchten (um z.B. den Ausdruck "Brot und Butter" zu erstellen), können Sie die Funktion LTrim wie folgt verwenden: LTrim({Tabelle.LEBENSMITTEL1}) + " und " + LTrim({Tabelle.LEBENSMITTEL2}) Gibt „Brot und Butter“ zurück. Die Leerzeichen, die zusammen mit dem Wort und vor bzw. nach diesem in Anführungszeichen stehen, sorgen dafür, dass die drei Wörter des sich ergebenden Satzes den richtigen Abstand voneinander haben. Crystal Reports-Anwenderhandbuch 303 8 8 Funktionen Zeichenfolgen Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Siehe auch • • Trim (Zchnflge) RTrim (Zchnflge) TrimLeft (Zchnflge) TrimLeft und LTrim (Zchnflge) sind gleichwertige Funktionen. TrimLeft wird in der Crystal-Syntax bevorzugt, LTrim dagegen in der Basic-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert Aktion TrimLeft entfernt alle Leerzeichen, die sich vor einer Zeichenfolge oder einem Datenfeld (links davon) befinden, dessen Werte als rechtsbündige Zeichenfolgen in einer Datenbank gespeichert sind. Typische Verwendungen • Diese Funktion können Sie immer dann verwenden, wenn ein Textobjekt führende Leerzeichen enthält, die bei der Ausrichtung von Textzeichenfolgen, bei einer Zeichenzählung oder bei einer Berechnung (wenn die Zeichenfolge z. B. in eine Zahl konvertiert werden soll) stören. • Außerdem können Sie diese Funktion immer dann verwenden, wenn Sie bündig ausgerichtete Textzeichenfolgen miteinander kombinieren (verketten) und zwischen den Zeichenfolgen einen korrekten Abstand beibehalten möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: TrimLeft(" Al/4520/B12") Gibt "A1/4520/B12" zurück. TrimLeft(" 200") Gibt „200“ zurück, wenn die Zeichenfolge „200“ durch führende Leerzeichen rechtsbündig ausgerichtet ist. 304 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Angenommen, Sie haben die beiden rechtsbündigen Datenbankfelder {Tabelle.LEBENSMITTEL1} und {Tabelle.LEBENSMITTEL2}. Jedes Feld kann bis zu 15 Zeichen enthalten. {Tabelle.LEBENSMITTEL1} enthält das Wort Brot, und {Tabelle.LEBENSMITTEL2} enthält das Wort Butter. Wenn Sie diese Wörter drucken würden, würden sie wie folgt angezeigt: " Brot" " Butter" Für jedes Feld mit 15 Zeichen enthält die Datenbank das rechtsbündig ausgerichteten Feld "Wert" sowie so viele Leerzeichen, dass das Feld ausgefüllt ist. Wenn Sie diese Wörter ohne die führenden Leerzeichen verwenden möchten (um z.B. den Ausdruck "Brot und Butter" zu erstellen), können Sie die Funktion TrimLeft wie folgt verwenden: TrimLeft({Tabelle.LEBENSMITTEL1}) + " und " + TrimLeft({Tabelle.LEBENSMITTEL2}) Gibt „Brot und Butter“ zurück. Die Leerzeichen, die zusammen mit dem Wort und vor bzw. nach diesem in Anführungszeichen stehen, sorgen dafür, dass die drei Wörter des sich ergebenden Satzes den richtigen Abstand voneinander haben. Siehe auch • • Trim (Zchnflge) TrimRight (Zchnflge) RTrim (Zchnflge) RTrim und TrimRight (Zchnflge) sind gleichwertige Funktionen. RTrim wird in der Basic-Syntax bevorzugt, TrimRight dagegen in der Crystal-Syntax. Argument • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert Aktion RTrim entfernt alle Leerzeichen rechts neben der angegebenen Zeichenfolge und gibt die Zeichenfolge zurück. Crystal Reports-Anwenderhandbuch 305 8 8 Funktionen Zeichenfolgen Typische Verwendungen • Diese Funktion können Sie immer dann verwenden, wenn ein Textobjekt nachfolgende Leerzeichen enthält, die bei der Ausrichtung von Textzeichenfolgen, bei einer Zeichenzählung oder bei einer Berechnung (wenn die Zeichenfolge z. B. in eine Zahl konvertiert werden soll) stören. • Außerdem können Sie diese Funktion immer dann verwenden, wenn Sie bündig ausgerichtete Textzeichenfolgen miteinander kombinieren (verketten) und zwischen den Zeichenfolgen einen korrekten Abstand beibehalten möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: RTrim("Al/4520/B12 ") Gibt „A1/4520/B12“ zurück. RTrim({Datei.VERWEIS}) Gibt „Bal Fwd.“ zurück, wenn {Datei.VERWEIS} die linksbündig ausgerichtete Textzeichenfolge "Bal Fwd. " enthält. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Siehe auch • • Trim (Zchnflge) LTrim (Zchnflge) TrimRight (Zchnflge) TrimRight und RTrim (Zchnflge) sind gleichwertige Funktionen. TrimRight wird in der Crystal-Syntax bevorzugt, RTrim dagegen in der Basic-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert Aktion TrimRight entfernt alle Leerzeichen, die sich hinter einer Zeichenfolge oder einem Datenfeld (rechts davon) befinden, dessen Werte als linksbündige Zeichenfolgen in einer Datenbank gespeichert sind. 306 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Typische Verwendungen • Diese Funktion können Sie immer dann verwenden, wenn ein Textobjekt nachfolgende Leerzeichen enthält, die bei der Ausrichtung von Textzeichenfolgen, bei einer Zeichenzählung oder bei einer Berechnung (wenn die Zeichenfolge z. B. in eine Zahl konvertiert werden soll) stören. • Außerdem können Sie diese Funktion immer dann verwenden, wenn Sie bündig ausgerichtete Textzeichenfolgen miteinander kombinieren (verketten) und zwischen den Zeichenfolgen einen korrekten Abstand beibehalten möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: TrimRight("Al/4520/B12 ") Gibt „A1/4520/B12“ zurück. TrimRight({Datei.VERWEIS}) Gibt „Bal Fwd.“ zurück, wenn die Textzeichenfolge "Bal Fwd. linksbündig in dem Feld steht. " Siehe auch • • Trim (Zchnflge) TrimLeft (Zchnflge) UCase (Zchnflge) UCase und UpperCase (Zchnflge) sind gleichwertige Funktionen. UCase wird in der Basic-Syntax bevorzugt, UpperCase dagegen in der Crystal-Syntax. Argument • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert Aktion UCase wandelt die angegebene Zeichenfolge komplett in Großbuchstaben um und gibt sie wieder zurück. Typische Verwendung Diese Funktion ist besonders nützlich, wenn ein Feld Groß- und Kleinbuchstaben enthält, die zur Vereinheitlichung alle in Großbuchstaben umgewandelt werden sollen. Crystal Reports-Anwenderhandbuch 307 8 8 Funktionen Zeichenfolgen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: UCase("Beschreibung") Gibt "BESCHREIBUNG" zurück. UCase({Kunde.VORNAME}) Gibt „WOLFRAM“ zurück, wenn in {Kunde.VORNAME} „Wolfram“ enthalten ist. UCase("Wolfram Schwarz") Gibt „WOLFRAM SCHWARZ“ zurück. UCase("abc12345") Gibt „ABC12345“ zurück. UpperCase("BrOt " + "UND " + "bUtTeR") Gibt „BROT UND BUTTER“ zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Siehe auch • LCase (Zchnflge) UpperCase (Zchnflge) UpperCase und UCase (Zchnflge) sind gleichwertige Funktionen. UpperCase wird in der Crystal-Syntax bevorzugt, UCase dagegen in der Basic-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert Aktion UpperCase gibt die Textzeichenfolge oder den Textwert im Datenfeld in Großbuchstaben zurück. Typische Verwendungen Diese Funktion ist besonders nützlich, wenn ein Feld Groß- und Kleinbuchstaben enthält, die zur Vereinheitlichung alle in Großbuchstaben umgewandelt werden sollen. 308 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: UpperCase("Beschreibung") Gibt „BESCHREIBUNG“ zurück. UpperCase({Kunde.VORNAME}) Gibt „WOLFRAM“ zurück, wenn in {Kunde.VORNAME} „Wolfram“ enthalten ist. UpperCase("Wolfram Schwarz") Gibt "WOLFRAM SCHWARZ" zurück. UpperCase("abc12345") Gibt „ABC12345“ zurück. UpperCase("BrOt " + "UND " + "bUtTeR") Gibt „BROT UND BUTTER“ zurück. Siehe auch • LowerCase (Zchnflge) LCase (Zchnflge) LCase und LowerCase (Zchnflge) sind gleichwertige Funktionen. LCase wird in der Basic-Syntax bevorzugt, LowerCase dagegen in der Crystal-Syntax. Argument • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert Aktion LCase wandelt die angegebene Zeichenfolge komplett in Kleinbuchstaben um und gibt sie wieder zurück. Typische Verwendung Diese Funktion kann z.B. eingesetzt werden, wenn ein Feld Groß- und Kleinbuchstaben enthält und Sie aus Konsistenzgründen alle Werte in Kleinbuchstaben umwandeln möchten. Crystal Reports-Anwenderhandbuch 309 8 8 Funktionen Zeichenfolgen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: LCase ("Beschreibung") Gibt „beschreibung“ zurück. LCase ({Kunde.VORNAME}) Gibt „wolfram“ zurück, wenn in {Kunde.VORNAME} „Wolfram“ enthalten ist. LCase ("Wolfram Schwarz") Gibt „wolfram schwarz“ zurück. LCase ("ABC12345") Gibt „abc12345“ zurück. LCase("BrOt " + "UND " + "bUtTeR") Gibt „Brot und Butter“ zurück. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Zahlen, die zum Text gehören, sind von der Funktion LCase nicht betroffen. Siehe auch • UCase (Zchnflge) LowerCase (Zchnflge) LowerCase und LCase (Zchnflge) sind gleichwertige Funktionen. LowerCase wird in der Crystal-Syntax bevorzugt, LCase dagegen in der Basic-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert Aktion LowerCase gibt den angegebenen Textwert in Kleinbuchstaben zurück. 310 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Typische Verwendungen Diese Funktion kann z.B. eingesetzt werden, wenn ein Feld Groß- und Kleinbuchstaben enthält und Sie aus Konsistenzgründen alle Werte in Kleinbuchstaben umwandeln möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: LowerCase("Beschreibung") Gibt „beschreibung“ zurück. LowerCase({Kunde.VORNAME}) Gibt „wolfram“ zurück, wenn in {Kunde.VORNAME} „Wolfram“ enthalten ist. LowerCase("Wolfram Schwarz") Gibt „wolfram schwarz“ zurück. LowerCase("ABC12345") Gibt „abc12345“ zurück. LowerCase("BrOt " + "UND " + "bUtTeR") Gibt „Brot und Butter“ zurück. Anmerkungen Zahlen, die zum Text gehören, sind von der Funktion LowerCase nicht betroffen. Siehe auch • UpperCase (Zchnflge) ProperCase(Zchnflge) Basic- und Crystal-Syntax. Argument • Zchnflge ist eine Textzeichenfolge. Rückgabewert String-Wert Crystal Reports-Anwenderhandbuch 311 8 8 Funktionen Zeichenfolgen Aktion ProperCase wandelt den ersten Buchstaben jedes Wortes in der Zeichenfolge in Großbuchstaben um und konvertiert alle übrigen Buchstaben in Kleinbuchstaben. Außerdem wird jeder Buchstabe groß geschrieben, der auf ein nicht alphanumerisches Zeichen folgt. Tipp: Diese Funktion ist besonders hilfreich, um die Namen von Personen mit der korrekten Groß-/Kleinschreibung zu versehen, wenn sie beispielsweise ausschließlich in Großbuchstaben in einer Datenbank gespeichert sind. Beispiele ProperCase ("LINDA FONG") In diesem Beispiel wird „Linda Fong“ zurückgegeben. ProperCase ("123Michael's") In diesem Beispiel wird „123Michael'S“ zurückgegeben. Anmerkungen Diese Funktion ist vergleichbar mit der Excel-Funktion für Eigennamen. StrReverse (Zchnflge) Basic- und Crystal-Syntax. Argument Zchnflge ist eine Zeichenfolge, deren Zeichen umgekehrt werden sollen. Rückgabewert String-Wert Aktion StrReverse gibt eine Zeichenfolge zurück, in der die Reihenfolge der Zeichen aus inputString umgedreht wurde. Wenn inputString eine Zeichenfolge mit der Länge Null ("") ist, wird auch eine Zeichenfolge mit der Länge Null zurückgegeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: StrReverse("abc") Gibt „cba“ zurück. 312 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. IsNumeric (Zchnflge) IsNumeric und NumericText (Zchnflge) sind gleichwertige Funktionen. IsNumeric wird in der Basic-Syntax bevorzugt, NumericText dagegen in der Crystal-Syntax. Argument • Zchnflge ist eine Textzeichenfolge. Rückgabewert Boolescher Wert (Wahr oder Falsch) Aktion IsNumeric gibt True zurück, wenn das angegebene String-Argument in eine gültige Zahl umgewandelt werden kann, und gibt andernfalls False zurück. Typische Verwendung Wenn Sie Zahlen (z. B. Gewichte) in einem Textobjekt speichern, können Sie mit IsNumeric den Wert jedes Datensatzes prüfen, um sicherzugehen, dass Sie den Wert mit ToNumber oder CDbl umwandeln können. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: IsNumeric({Datei.VERWEIS}) Gibt FALSE zurück, wenn {Datei.VERWEIS} = „ABCDEFG“. IsNumeric({Datei.KENNUNG}) Gibt TRUE zurück, wenn {Datei.KENNUNG} = „12345“. IsNumeric({Datei.KENNUNG}) Gibt TRUE zurück, wenn {Datei.KENNUNG} = „12345443“. IsNumeric({Datei.KENNUNG}) Gibt FALSE zurück, wenn {Datei.KENNUNG} = „12345-443“. IsNumeric ({Datei.KENNUNG} [1 to 5]) Gibt TRUE zurück, wenn {Datei.KENNUNG} = „12345-443“. IsNumeric ({Datei.KENNUNG} (6)) Gibt FALSE zurück, wenn {Datei.KENNUNG} = „12345-443“. Crystal Reports-Anwenderhandbuch 313 8 8 Funktionen Zeichenfolgen IsNumeric ({Datei.KENNUNG} (7 to 9)) Gibt TRUE zurück, wenn {Datei.KENNUNG} = „12345-443“. IsNumeric({Datei.KENNUNG}) Gibt FALSE zurück, wenn {Datei.KENNUNG} = „12345T“. Hinweis: Sie können diese Funktion in Verbindung mit ToNumber oder CStr verwenden, um zu prüfen, ob im Feld VERWEIS eine Zahl steht. Anschließend geben Sie die Zeichenfolge als Zahl oder als 0 aus, wenn die Textzeichenfolge keine Zahl ist. Das folgende Beispiel gilt für die Basic-Syntax: If IsNumeric({Datei.KENNUNG}) Then formula = ToNumber({Datei.KENNUNG}) Else formula = 0 End If NumericText (Zchnflge) NumericText und IsNumeric (Zchnflge) sind gleichwertige Funktionen. NumericText wird in der Crystal-Syntax bevorzugt, IsNumeric dagegen in der Basic-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge. Rückgabewert Boolescher Wert Aktion NumericText prüft, ob der Inhalt eines Textobjekts eine Zahl ist. • Wenn der gesamte Inhalt des Feldes eine Zahl ist oder wenn die Zeichen, die über den Operator Index Index in Arrays und Zeichenfolgen gelesen wurden, als Ganzes eine Zahl ergeben, gibt der Ausdruck den Wert TRUE zurück. • Wenn ein Teil des Feldinhalts oder der gelesenen Zeichen keine Zahl ist, gibt die Funktion den Wert FALSE zurück. Typische Verwendungen Wenn Sie Zahlen (z. B. Gewichte) in einem Textobjekt speichern, können Sie mit NumericText den Wert jedes Datensatzes prüfen, um sicherzugehen, dass Sie den Wert mit ToNumber umwandeln können. 314 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: NumericText({Datei.VERWEIS}) Gibt FALSE zurück, wenn {Datei.VERWEIS} = „ABCDEFG“. NumericText({Datei.KENNUNG}) Gibt TRUE zurück, wenn {Datei.KENNUNG} = „12345“. NumericText({Datei.KENNUNG}) Gibt TRUE zurück, wenn {Datei.KENNUNG} = „12345443“. NumericText({Datei.KENNUNG}) Gibt FALSE zurück, wenn {Datei.KENNUNG} = „12345-443“. NumericText ({Datei.KENNUNG} [1 to 5]) Gibt TRUE zurück, wenn {Datei.KENNUNG} = „12345-443“. NumericText ({Datei.KENNUNG} [6]) Gibt FALSE zurück, wenn {Datei.KENNUNG} = „12345-443“. NumericText ({Datei.KENNUNG} [7 to 9]) Gibt TRUE zurück, wenn {Datei.KENNUNG} = „12345-443“. NumericText({Datei.KENNUNG}) Gibt FALSE zurück, wenn {Datei.KENNUNG} = „12345T“. Hinweis: Sie können diese Funktion in Verbindung mit ToNumber verwenden, um zu prüfen, ob im Feld VERWEIS eine Zahl enthalten ist. Anschließend geben Sie die Zeichenfolge als Zahl oder als 0 aus, wenn die Textzeichenfolge keine Zahl ist. Das folgende Beispiel gilt für die Crystal-Syntax: If NumericText({Datei.VERWEIS}) Then ToNumber({Datei.VERWEIS}) Else 0; ToNumber Basic- und Crystal-Syntax. ToNumber und CDbl sind gleichwertige Funktionen. Syntax der Argumente • • • ToNumber (numerisch) ToNumber (Zeichenfolge) ToNumber (boolesch) Crystal Reports-Anwenderhandbuch 315 8 8 Funktionen Zeichenfolgen Argumente • • • numerisch ist eine Zahl oder der Wert einer Währung. Zeichenfolge ist eine Textzeichenfolge, die numerischen Text enthält. Boolesch ist ein logischer Wert, den Sie als Zahl behandeln sollten. Rückgabewert Bruchzahl Aktion Die Funktion ToNumber konvertiert Zahlen, Währungen, Zeichenfolgen und boolesche Werte in Zahlen. In einer Datenbank werden einige Zahlen in numerischen Feldern gespeichert, während andere als Text in Zeichenfeldern gespeichert werden. Die Festlegung, welche Felder numerische Felder und welche Felder Textfelder sind, treffen Sie beim Einrichten der Datenbank. Zahlen, mit denen Sie möglicherweise Berechnungen vornehmen (Bauteilkosten, Bestellmenge usw.), werden normalerweise in numerischen Feldern gespeichert. Zahlen, die Sie vermutlich nicht für Berechnungen benötigen (Kundennummern, Telefonnummern usw.) werden normalerweise in Textobjekten gespeichert. Mit ToNumber können Sie eine als Text gespeicherte Zahl in eine Zahl umwandeln, die für Berechnungen verwendbar ist. Mit dem booleschen Argument können Sie SQL_BIT-Datenwerte als Zahlen behandeln. Typische Verwendungen Sie können diese Funktion beispielsweise verwenden, wenn Ihre Artikelnummern codierte Produktinformationen enthalten, die Sie in Berechnungen verwenden möchten. Eine typische Verwendung wäre die Konvertierung von Currency- oder Zeichenfolgewerten, die numerische Zeichen enthalten, in Zahlenwerte. 316 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ToNumber({Aufträge.Auftragssumme}) Gibt einen Zahlenwert zurück, der das Währungsfeld {Aufträge.Auftragssumme} enthält. ToNumber("123.45") Gibt 123,45 zurück. ToNumber({Datei.VERWEIS}) Gibt 200,00 zurück, wenn Folgendes zutrifft: Im Feld {Datei.VERWEIS} steht die Textzeichenfolge „200“. ToNumber({Datei.KONTONUMMER}/2) Gibt 22144 zurück, wenn {Datei.KONTONUMMER} = 44288. ToNumber({Kunde.PLZ}) < 33333 Gibt TRUE zurück, wenn Folgendes zutrifft: {Kunde.PLZ} = „21385“. Anmerkungen Bevor Sie die Funktion ToNumber verwenden, sollten Sie den jeweiligen Wert erst mit der Funktion NumericText prüfen. NumericText gibt nur dann den Wert TRUE zurück, wenn der Wert der Zeichenfolge fehlerfrei in eine Zahl umgewandelt werden kann. Versuchen Sie dagegen, einen Wert in eine Zahl umzuwandeln, der keine Zahl ist, verursacht die Formel in Ihrem Bericht einen Fehler. Das folgende Beispiel zeigt, wie die Funktionen NumericText und ToNumber zusammen in der Crystal-Syntax verwendet werden können: If NumericText ({Datei.FELD}) Then ToNumber ({Datei.FELD}) Else 0 Crystal Reports-Anwenderhandbuch 317 8 8 Funktionen Zeichenfolgen ToText Basic- und Crystal-Syntax. ToText und CStr sind gleichwertige Funktionen. Syntax der Argumente • • • • • ToText(x) ToText (x, y) ToText (x, y, z) ToText (x, y, z, w) ToText (x, y, z, w, q) Argumente 318 Konvertieren. . . Beschreibung Boolesche Werte • Number- und Currency-Werte • x ist ein boolescher Wert, der in eine Zeichenfolge umgewandelt wird, entweder Wahr oder Falsch. x ist ein Number- oder Currency-Wert, der in eine Zeichenfolge umgewandelt werden soll. Der Wert kann ganzzahlig oder eine Dezimalzahl sein. • y ist eine ganze Zahl, die die Anzahl der Dezimalstellen angibt, die der Wert von x erhalten soll. (Dieses Argument ist optional.) • z ist eine aus einem Zeichen bestehende Textzeichenfolge, die das Zeichen angibt, mit dem Tausenderwerte in x getrennt werden. Standardzeichen ist das Zeichen, das in der Windows-Systemsteuerung in Ländereinstellungen angegeben ist. (Dieses Argument ist optional.) • w ist eine aus einem Zeichen bestehende Textzeichenfolge, die das Zeichen angibt, das als Dezimaltrennzeichen in x verwendet wird. Standardzeichen ist das Zeichen, das in der Windows-Systemsteuerung in Ländereinstellungen angegeben ist. (Dieses Argument ist optional.) Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Konvertieren. . . Beschreibung Number- und Currency-Werte (Formatierung) • x ist ein Number- oder Currency-Wert, der in eine Zeichenfolge umgewandelt werden soll. Der Wert kann ganzzahlig oder eine Dezimalzahl sein. • y ist eine Textzeichenfolge, die das Anzeigeformat für den Wert von x festlegt. Unter Formatzeichenfolgen finden Sie weitere Informationen über die Erstellung einer Formatzeichenfolge. • z ist eine ganze Zahl, die die Anzahl der Dezimalstellen angibt, die der Wert von x erhalten soll. (Dieses Argument ist optional.) • w ist eine aus einem Zeichen bestehende Textzeichenfolge, die das Zeichen angibt, mit dem Tausenderwerte in x getrennt werden. Standardzeichen ist das Zeichen, das in der Windows-Systemsteuerung in Ländereinstellungen angegeben ist. (Dieses Argument ist optional.) • q ist eine aus einem Zeichen bestehende Textzeichenfolge, die das Zeichen angibt, das als Dezimaltrennzeichen in x benutzt wird. Standardzeichen ist das Zeichen, das in der Windows-Systemsteuerung in Ländereinstellungen angegeben ist. (Dieses Argument ist optional.) x ist ein Date-Wert, der in eine Textzeichenfolge umgewandelt wird. Date-Werte • • y ist eine Textzeichenfolge, die definiert, wie der Wert von x formatiert werden soll. Unter Formatzeichenfolgen für Date-, Time- und DateTime-Werte erhalten Sie weitere Informationen über die Erstellung dieser Formatzeichenfolge. (Dieses Argument ist optional.) Crystal Reports-Anwenderhandbuch 319 8 8 Funktionen Zeichenfolgen Konvertieren. . . Beschreibung Time-Werte • x ist ein Time-Wert, der in eine Textzeichenfolge umgewandelt wird. • y ist eine Textzeichenfolge, die definiert, wie der Wert von x formatiert werden soll. Unter Formatzeichenfolgen für Date-, Time- und DateTime-Werte erhalten Sie weitere Informationen über die Erstellung dieser Formatzeichenfolge. (Dieses Argument ist optional.) • z ist eine Textzeichenfolge, die als Bezeichnung für AM (Morgenstunden, 0-12 Uhr Mittag) verwendet werden soll. (Dieses Argument ist optional.) • w ist eine Textzeichenfolge, die als Bezeichnung für PM (Nachmittag, 12-24 Uhr) verwendet wird. (Dieses Argument ist optional.) x ist ein DateTime-Wert, der in eine Textzeichenfolge umgewandelt wird. DateTime-Werte • • y ist eine Textzeichenfolge, die festlegt, wie die resultierende Textzeichenfolge formatiert wird. Siehe Formatzeichenfolgen für Date-, Time- und DateTime-Werte Informationen über die Erstellung einer Formatzeichenfolge. (Dieses Argument ist optional.) • z ist eine Textzeichenfolge, die als Bezeichnung für AM (Morgenstunden, 0-12 Uhr Mittag) verwendet werden soll. (Dieses Argument ist optional.) • w ist eine Textzeichenfolge, die als Bezeichnung für PM (Nachmittag, 12-24 Uhr) verwendet wird. (Dieses Argument ist optional.) Rückgabewert Textzeichenfolge Aktion Die Funktion ToText wandelt boolesche, Zahlen-, Währungs-, Datums-, Uhrzeit- und Datums-/Uhrzeitwerte in Textzeichenfolgen um. 320 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Typische Verwendungen Verwenden Sie diese Funktion, um einen booleschen, Zahlen-, Währungs-, Datums-, Uhrzeit oder Datums-/Uhrzeitwert in Ihrem Bericht (Serienbriefe, Kommentare usw.) in eine Textzeichenfolge umzuwandeln. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ToText({Aufträge.GELIEFERT}) Gibt True zurück, wenn Folgendes zutrifft: ({Aufträge.GELIEFERT}) = True. ToText(123.45) Gibt 123,45 zurück. ToText(12345.6749,2) Gibt 1234,67 zurück. ToText(12345.6750,2) Gibt 12345,68 zurück. ToText(12345.4999,0) Gibt 12345 zurück. ToText(12345.5000,0) Gibt 12346 zurück. ToText({Datei.VOLUMEN} * {Datei.MENGE}) Gibt 44,890.20 zurück, wenn Folgendes zutrifft: {Datei.VOLUMEN} = 24,45 und {Datei.MENGE} = 1836. ToText ist nützlich, wenn Sie einen Satz aufbauen möchten, indem Sie eine umgewandelte Zahl mit anderen Textzeichenfolgen kombinieren (verketten). "Der Grundpreis des Artikels " + {Tabelle.ARTIKELNUMMER} + " ist " + ToText({Tabelle.GRUNDPREIS}) + " ." Diese Formel druckt den Satz „Der Grundpreis des Artikels A1/4520/B12 ist 50,00 €.“, wenn die ARTIKELNUMMER gleich A1/4520/B12 und der GRUNDPREIS gleich 50,00 ist, wobei der GRUNDPREIS in Text umgewandelt und mit 2 Dezimalstellen formatiert wird. Die folgenden Beispiele gelten für die Crystal-Syntax: ToText(CDate(1996, 11, 1), "yy MMM dd, dddd") Gibt 96 Nov 01, Freitag zurück. ToText(DateTime(1995,10,12,3,30,11),"HH:mm, yy MMMM ddd") Gibt "03:30, 95 Oktober Mon" zurück. ToText(Time(12, 10, 10), "HH*mm*ss tt", "amStr", "pmStr") Gibt "12*10*10 pmStr" zurück. Crystal Reports-Anwenderhandbuch 321 8 8 Funktionen Zeichenfolgen Anmerkungen Die Syntaxformen der Funktion ToText, bei denen nur ein einziges Argument verwendet wird, funktionieren genau wie die gleichnamigen Funktionen von Visual Basic. Konvertieren boolescher Werte • Wenn die Funktion ToText mit booleschen Werten verwendet wird, ist sie hauptsächlich geeignet, um einen booleschen Wert mit anderem Text zu kombinieren (verketten). In allen anderen Fällen kann ein boolesches Feld so formatiert werden, dass es in Ihrem Bericht als True (Wahr) oder False (Falsch) angezeigt wird. Dazu müssen Sie lediglich im Format-Editor in dem Register Boolesch das Format ändern. Konvertieren von rationalen Zahlen und Currency-Werten • Ist die Anzahl der Dezimalstellen angegeben, kürzt diese Funktion die Zahl nicht, wenn sie in Text umgewandelt wird, sondern rundet die Zahl entsprechend der angegebenen Dezimalstellen. Weitere Informationen hierzu finden Sie unter Round. Konvertieren von Date-, Time- und DateTime-Werten: 322 • Mit Ausnahme der Zeichen, mit denen Datumsangaben oder Zeiten formatiert werden, können in einer Formatzeichenfolge alle Zeichen verwendet werden. Sie könnten beispielsweise die Elemente eines Datums (Tag, Monat und Jahr) durch Schrägstriche voneinander trennen (wie in „30/12/95“) oder die Elemente einer Uhrzeit (Stunden, Minuten und Sekunden) durch Doppelpunkte (wie in „12:30:10“). • Möchten Sie die obigen Zeichen in einer Formatzeichenfolge verwenden, müssen die Zeichen in Anführungszeichen stehen. Hier ein Beispiel: ToText(CDateTime(1995,10,12,13,20,22), „dd/MM/yy hh 'Std' mm 'Min' ss 'Sek' “, 'AM', 'PM') gibt Folgendes zurück: „12/10/95 13 Std 20 Min 22 Sek“ Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Übergeben optionaler Argumente: • Viele Argumente der Funktion ToText sind als optional angegeben. Allerdings können Sie auf die Angabe eines Argumentes nur verzichten, wenn alle ihm folgenden Argumente ebenfalls fehlen. Anders formuliert: Sie können für das Argument w nur dann einen Wert angeben, wenn Sie auch Werte für die Argumente y und z angegeben haben. Es können beliebig viele optionale Argumente fehlen, solange auf die fehlenden Argumente kein Argument mit Wert folgt. Die folgenden Kombinationen sind zulässig, wenn Sie Argumente für die Funktion ToText angeben: • • • • • • ToText(x) ToText (x, y) ToText (x, y, z) ToText (x, y, z, w) ToText (x, y, z, w, q) Wenn Sie in der Formatzeichenfolge einer Uhrzeit die Formatzeichen „t“ oder „tt“ verwenden, werden Standardzeichenfolgen bereitgestellt, um die AM-Stunden (Vormittag) und PM-Stunden (Nachmittag) zu kennzeichnen. „t“ bewirkt, dass nur ein Zeichen („a“ oder „p“) angezeigt wird, während „tt“ bewirkt, dass die gesamte Zeichenfolge („am“ oder „pm“) angezeigt wird. Sie können eigene Zeichenfolgen übergeben, die als AM-/PM-Zeichenfolgen verwendet werden sollen. Im Abschnitt Argumente weiter oben finden Sie die Argumente zur Konvertierung von Time- und DateTime-Werten mit Hilfe der Funktion ToText. Wenn Sie eigene AM-/PM-Zeichenfolgen übergeben, haben die Formatzeichen „t“ und „tt“ die gleichen Auswirkungen auf diese Zeichenfolgen (sie ergeben Zeichenfolgen aus nur je einem Zeichen bzw. Zeichenfolgen aus allen Zeichen). Crystal Reports-Anwenderhandbuch 323 8 8 Funktionen Zeichenfolgen Formatzeichenfolgen In den Funktionen ToText und CStr kann mittels Formatzeichenfolgen festgelegt werden, wie ein als Argument x übergebener Wert (rationale Zahl, Currency-, Date-, Time- oder DateTime-Wert) angezeigt wird, nachdem er in eine Zeichenfolge umgewandelt wurde. In diesem Abschnitt wird beschrieben, wie Formatzeichenfolgen für die verschiedenen Datentypen erstellt werden. Formatzeichenfolgen für rationale Zahlen und Currency-Werte: Folgende Zeichen werden verwendet, um Formatzeichenfolgen für rationale Zahlen und Currency-Werte zu erstellen: Zeichen Beschreibung Kommentare/Beispiele # Entspricht einer Ziffer oder einem Leerzeichen. Wenn die ursprüngliche Zahl konvertiert wird, werden #Zeichen ignoriert, es sei denn, die Anzahl der #-Zeichen in der Formatzeichenfolge ist größer als die Anzahl der signifikanten Ziffern des ursprünglichen Wertes. Ist dies der Fall, wird für jedes zusätzliche #-Zeichen ein Leerzeichen an die Zeichenfolge angefügt. Der ursprüngliche Wert sei z. B. 125,34: • Die Formatzeichenfolge # ergibt die Zeichenfolge 125 (die Anzahl der signifikanten Ziffern ist größer als die Anzahl der #-Zeichen), 324 Crystal Reports-Anwenderhandbuch • die Formatzeichenfolge ###.## ergibt die Zeichenfolge 125,34 (die Anzahl der signifikanten Ziffern ist gleich der Anzahl der #-Zeichen), und • die Formatzeichenfolge ####.### ergibt die Zeichenfolge 125,34 (die Anzahl der signifikanten Ziffern ist kleiner als die Anzahl der #Zeichen). Funktionen Zeichenfolgen Zeichen Beschreibung Kommentare/Beispiele 0 Entspricht einer Ziffer oder einer Der ursprüngliche Wert sei z. B. 125,34: Null (0). • Die Formatzeichenfolge 0 ergibt die Wenn die ursprüngliche Zahl Zeichenfolge 125 (die Anzahl der konvertiert wird, werden Nullen signifikanten Ziffern ist größer als die (0) ignoriert, es sei denn, die Anzahl der Nullen), Anzahl der Nullen (0) in der • die Formatzeichenfolge 000,00 Formatzeichenfolge ist größer ergibt die Zeichenfolge 125,34 (die als die Anzahl der signifikanten Anzahl der signifikanten Ziffern ist Ziffern des ursprünglichen gleich der Anzahl der Nullen), und Wertes. Ist dies der Fall, wird für jede zusätzliche Null (0) eine • die Formatzeichenfolge 0000,000 Null (0) an die Zeichenfolge ergibt die Zeichenfolge 0125,340 angefügt. (die Anzahl der signifikanten Ziffern ist kleiner als die Anzahl der Nullen). #-Zeichen und Nullen (0) können in einer Formatzeichenfolge kombiniert werden. Der ursprüngliche Wert sei z. B. 125,34: • Die Formatzeichenfolge ####,0000 ergibt die Zeichenfolge 125,3400. • • Komma (,) Ein Komma (,) Ein Dezimalpunkt (.) gibt an, wo ein Dezimaltrennzeichen stehen soll. Das Zeichen, das tatsächlich in der Ergebniszeichenfolge als Dezimaltrennzeichen steht, kann geändert werden. Gibt an, wo ein Tausendertrennzeichen steht. Das Zeichen, das in der Ergebniszeichenfolge als Tausendertrennzeichen steht, kann geändert werden. Dezimalpunkt (.) Gibt an, wo ein Dezimaltrennzeichen stehen soll. Das Zeichen, das tatsächlich in der Ergebniszeichenfolge als Dezimaltrennzeichen steht, kann geändert werden. Crystal Reports-Anwenderhandbuch 325 8 8 Funktionen Zeichenfolgen So können sich Formatzeichenfolgen auf Werte auswirken In der folgenden Tabelle wird gezeigt, wie sich Formatzeichenfolgen auf rationale Zahlen sowie Currency-Werte auswirken, die von der Funktion ToText konvertiert wurden. In dieser Tabelle entspricht ein Unterstrich (_) einem Leerzeichen in der Ergebniszeichenfolge: Ursprünglicher Wert Formatzeichenfol Ergebniszeichenf ge olge 16.13 # 16 16.13 0 16 16.13 ## 16 16.13 00 16 16.13 ### _16 16.13 000 016 16.13 #.#### 16.13_ 16.13 0.0000 16.1300 16125.00 ###,###.# _16,125.0 16125.00 000,000.0 016,125.0 16125.00 000000.0 016125.0 Formatzeichenfolgen für Date-, Time- und DateTime-Werte Folgende Zeichen werden verwendet, um Formatzeichenfolgen für Date-, Time- und DateTime-Werte zu erstellen: 326 Zeichen Anmerkungen d - Tag des Monats ohne führende Null (0) bei einer einzelnen Ziffer dd - Tag des Monats mit führender Null (0) bei einer einzelnen Ziffer ddd - Wochentag als eine Abkürzung aus 2 Buchstaben dddd - vollständiger Name des Wochentags M - Monat ohne führende Null (0) bei einer einzelnen Ziffer MM - Monat mit führender Null (0) bei einer einzelnen Ziffer Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Zeichen Anmerkungen MMM - Abkürzung des Monats aus drei Buchstaben MMMM - vollständiger Monatsname yy - die zwei letzten Ziffern der Jahreszahl yyyy - volle Jahreszahl h - Stunden ohne führende Null (0) bei einer einzelnen Ziffer (12 Stunden) hh - Stunden ohne führende Null (0) bei einer einzelnen Ziffer (12 Stunden) H - Stunden ohne führende Null (0) bei einer einzelnen Ziffer (24 Stunden) HH - Stunden mit führender Null (0) bei einer einzelnen Ziffer (24 Stunden) m - Minuten ohne führende Null (0) bei einer einzelnen Ziffer mm - Minuten mit führender Null (0) bei einer einzelnen Ziffer s - Sekunden ohne führende Null (0) bei einer einzelnen Ziffer ss - Sekunden mit führender Null (0) bei einer einzelnen Ziffer t, tt - einzelnes Zeichen oder mehrere Zeichen a.m./p.m. Zeichenfolge In der folgenden Tabelle wird gezeigt, wie sich Formatzeichenfolgen auf verschiedene Date-, Time- und DateTime-Werte auswirken, die von der Funktion ToText oder CStr konvertiert wurden. Date-, Time- oder DateTime-Wert Formatzeichenfolge Ergebniszeichenfolge CDate(1996, 11, 1) yy MMM dd, dddd 96 Nov 01, Freitag CTime(12, 10, 10) HH*mm*ss tt 12*10*10 CDateTime(1995, 10, 12, 3, 30, 11) HH:mm, yy MMMM ddd 03:30, 96 Oktober Mon CTime(13, 20, 22) hh 'Std' mm 'Min' ss 'Sek' tt 01 Std 20 Min 22 Sek CDate(1998, 3, 17) M/dd/yy 3/17/98 Crystal Reports-Anwenderhandbuch 327 8 8 Funktionen Zeichenfolgen Konvertieren boolescher Werte Wenn die Funktion ToText mit booleschen Werten verwendet wird, ist sie hauptsächlich geeignet, um einen booleschen Wert mit anderem Text zu kombinieren (verketten). In allen anderen Fällen kann ein boolesches Feld so formatiert werden, dass es in Ihrem Bericht als True (Wahr) oder False (Falsch) angezeigt wird. Dazu müssen Sie lediglich im Dialogfeld „FormatEditor“ im Register „Boolesch“ das Format ändern. Konvertieren von rationalen Zahlen und Currency-Werten Ist die Anzahl der Dezimalstellen angegeben, kürzt diese Funktion die Zahl nicht, wenn sie in Text umgewandelt wird, sondern rundet die Zahl entsprechend der angegebenen Dezimalstellen. Weitere Informationen hierzu finden Sie unter Round. Konvertieren von Date-, Time- und DateTime-Werten Mit Ausnahme der Zeichen, mit denen Datumsangaben oder Zeiten formatiert werden, können in einer Formatzeichenfolge alle Zeichen verwendet werden. Sie könnten beispielsweise die Elemente eines Datums (Tag, Monat und Jahr) durch Schrägstriche voneinander trennen (wie in „30/12/95“) oder die Elemente einer Uhrzeit (Stunden, Minuten und Sekunden) durch Doppelpunkte (wie in „12:30:10“). Möchten Sie die obigen Zeichen in einer Formatzeichenfolge verwenden, müssen die Zeichen in Anführungszeichen stehen. Hier ein Beispiel: ToText(DateTime(1995,10,12,13,20,22), "dd/MM/yy hh 'Std' mm 'Min' ss 'Sek' ", 'AM', 'PM') gibt Folgendes zurück: "12/ 10/95 13 Std 20 Min 22 Sek" Übergeben optionaler Argumente • 328 Viele Argumente der Funktion ToText sind als optional angegeben. Allerdings können Sie auf die Angabe eines Argumentes nur verzichten, wenn alle ihm folgenden Argumente ebenfalls fehlen. Anders formuliert: Sie können für das Argument w nur dann einen Wert angeben, wenn Sie auch Werte für die Argumente y und z angegeben haben. Es können beliebig viele optionale Argumente fehlen, solange auf die fehlenden Argumente kein Argument mit Wert folgt. Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Die folgenden Kombinationen sind zulässig, wenn Sie Argumente für die Funktion ToText angeben: • • • • • • ToText(x) ToText (x, y) ToText (x, y, z) ToText (x, y, z, w) ToText (x, y, z, w, q) Wenn Sie in der Formatzeichenfolge einer Uhrzeit die Formatzeichen „t“ oder „tt“ verwenden, werden Standardzeichenfolgen bereitgestellt, um die AM-Stunden (Vormittag) und PM-Stunden (Nachmittag) zu kennzeichnen. „t“ bewirkt, dass nur ein Zeichen („a“ oder „p“) angezeigt wird, während „tt“ bewirkt, dass die gesamte Zeichenfolge („am“ oder „pm“) angezeigt wird. Sie können eigene Zeichenfolgen übergeben, die als AM-/PM-Zeichenfolgen verwendet werden sollen. Weitere Informationen finden Sie in der Beschreibung der Argumente zum Konvertieren von Time- und DateTime-Werten mit der Funktion ToText im Abschnitt Argumente der ToText.) Wenn Sie eigene AM-/PM-Zeichenfolgen übergeben, haben die Formatzeichen „t“ und „tt“ die gleichen Auswirkungen auf diese Zeichenfolgen (sie ergeben Zeichenfolgen aus nur je einem Zeichen bzw. Zeichenfolgen aus allen Zeichen). Die Formatzeichen „t“ und „tt“ sind optional und nur dann erforderlich, wenn die standardmäßigen AM-/PMZeichenfolgen benötigt werden. Siehe auch • CStr ToWords Basic- und Crystal-Syntax. Syntax der Argumente • • • ToWords(x) ToWords (x, DezStellen) ToWords (x, DezStellen, Formulartyp) Crystal Reports-Anwenderhandbuch 329 8 8 Funktionen Zeichenfolgen Argumente • x ist ein Zahlen- oder Währungswert, der in Wörter umgewandelt werden soll. • DezStellen ist eine ganze Zahl, die angibt, wie viele Dezimalstellen bei der Konvertierung berücksichtigt werden sollen. (Dieses Argument ist optional.) • Formulartyp gibt den Typ von Formular x an. Dieses Argument wird nur für asiatische Sprachen verwendet, insbesondere Japanisch, Koreanisch, Chinesisch (vereinfacht) und Chinesisch (traditionell). Bei Englisch oder anderen nicht asiatischen Sprachen wird es ignoriert. Formulartyp 0 Klassisches Formular, auch Prüfformular genannt. Formulartyp 1 Tagesformular Formulartyp 2 Informelles Formular Hinweis: • Das Tagesformular hat dieselbe Struktur wie das klassische Formular, außer dass ein anderer Zeichensatz für Ziffern verwendet wird. Da in Koreanisch lediglich ein Zeichensatz für Ziffern existiert, sind Tagesformular und klassisches Formular in dieser Sprache identisch. Der im Tagesformular verwendete Stil ist mit Artikeln vergleichbar. • Das informelle Formular wird zum Erfassen von Telefonnummern, Adressen usw. verwendet. Rückgabewert Textzeichenfolge Aktion Mit Hilfe dieser Funktion können Sie den Wert eines Number- oder Währungsfeldes oder das Ergebnis einer numerischen Berechnung in Wörter umwandeln, die sich dann als Text verwenden lassen. Die Möglichkeit, die Anzahl der Dezimalstellen anzupassen, erweist sich dann als hilfreich, wenn die Zahl das Ergebnis einer Berechnung ist, die mehr Dezimalstellen produziert als erwünscht. Typische Verwendungen Sie können diese Funktion beispielsweise verwenden, um auf Schecks Beträge in Worten zu drucken. 330 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ToWords(12345) Gibt "zwölftausenddreihundertfünfundvierzig und xx/100" zurück. ToWords(12345.6749,2) Gibt "zwölftausenddreihundertfünfundvierzig und 67/100" zurück. ToWords(12345.4999,0) Gibt "zwölftausenddreihundertvierundvierzig" zurück. ToWords(12345.5000,0) Gibt "zwölftausenddreihundertsechsundvierzig" zurück. ToWords(-12345) Gibt "minuszwölftausenddreihundertfünfundvierzig und xx/100" zurück. ToWords(12.3499) Gibt "zwölf und 35/100" zurück. ToWords({Aufträge.Auftragssumme}) Gibt "zweitausendsechzehn und 84/100" zurück, wenn Folgendes zutrifft: {Aufträge.Auftragssumme} = 2016,84. ToWords((({Datei.MENGE1} + {Datei.MENGE2} + {Datei.MENGE3}) * {Datei.PREIS}) * 1.075) Gibt "einhundertzwei und 13/100" zurück. ToWords((({Datei.MENGE1} + {Datei.MENGE2} + {Datei.MENGE3}) * {Datei.PREIS}) * 1.075,0) Gibt "einhundertzwei" zurück, wenn Folgendes zutrifft: {Datei.MENGE1} = 1, {Datei.MENGE2} = 82, {Datei.MENGE3} = 12 und {Datei.PREIS} = 1,00 (summiert die drei Mengen, multipliziert das Ergebnis mit dem Preis und fügt 7,5 % Mehrwertsteuer hinzu). Hier ist die numerische Antwort 102,125, die vor der Ausgabe in Wörtern auf 102,13 (mit zwei Standarddezimalstellen) gerundet wird. Anmerkungen • Diese Funktion arbeitet mit der Zahl als Ganzes, statt sie als Folge individueller Ziffern zu behandeln. Das heißt, 123 wird als die Zahl einhundertdreiundzwanzig statt der einzelnen Ziffern eins, zwei und drei behandelt. • • Negative Zahlen beginnen mit dem Wort „minus“. Werte von Währungsfeldern und Zahlenfeldern werden auf dieselbe Weise behandelt und führen zu identischen Ergebnissen. Crystal Reports-Anwenderhandbuch 331 8 8 Funktionen Zeichenfolgen • Da ein ausgeschriebener Wert viel länger ist als die ursprüngliche Zahl, müssen Sie das Anzeigefeld entsprechend verbreitern, damit die neue Feldlänge berücksichtigt wird. ReplicateString (Zchnflge, AnzKopien) Basic- und Crystal-Syntax. Argumente • • Zchnflge ist die Textzeichenfolge, die wiederholt werden soll. AnzKopien ist eine ganze Zahl, die angibt, wie oft Zchnflge wiederholt werden soll. Rückgabewert Textzeichenfolge Aktion Wiederholt die in Zchnflge angegebene Zeichenfolge so oft, wie AnzKopien angibt. Typische Verwendungen Mit dieser Funktion können Sie bei Bedarf eine aus wiederholten Zeichen bestehende Zeile einfügen. Typische Einsatzgebiete sind: • • • • Markieren von kritischen Daten in Ihrem Bericht, Erstellen von einfachen Balkendiagrammen, Unterteilen eines Berichts in mehrere sichtbare Bereiche und Markieren von Gesamtergebnissen, Teilergebnissen und anderen Daten eines Gruppenergebnisses. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Datei.UMSATZ} < {Datei.ANGEBOT} Then ReplicateString("*",10) Else "" Druckt als Markierung zehnmal das Zeichen *. {Datei.NAME}+ " " + ReplicateString("*"), {Datei.ERGEBNIS}) Druckt ein einfaches Balkendiagramm, das Testergebnisse anzeigt. Die Formel druckt für jeden Punkt eines Testergebnisses (der Wert im Feld {Datei.ERGEBNIS}) ein Sternchen. 332 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Angenommen, es liegen folgende Daten vor: Name Punktzahl Schmidt 23 Strauss 17 Braun 21 Johnson 13 Reynolds 25 Die Formel produziert folgendes Ergebnis: Name @Punktzahl Schmidt *********************** Strauss ****************** Braun ********************** Johnson *************** Reynolds ***************************** Space (Ganzzahl) Basic- und Crystal-Syntax. Argumente • Ganzzahl ist eine ganze Zahl, die die Anzahl der Leerzeichen angibt. Rückgabewert Textzeichenfolge (ein oder mehrere Leerzeichen) Aktion Die Funktion Space gibt eine bestimmte Anzahl von Leerzeichen zurück. Typische Verwendungen Mit der Funktion Space können Sie problemlos eine bestimmte Anzahl von Leerzeichen zu einer Textzeichenfolge hinzufügen. Crystal Reports-Anwenderhandbuch 333 8 8 Funktionen Zeichenfolgen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Space(2) Rückgabewert " " Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. InStr Basic- und Crystal-Syntax. Syntax der Argumente • • • • InStr (Zchnflge1, Zchnflge2) InStr (Start, Zchnflge1, Zchnflge2) InStr (Zchnflge1, Zchnflge2, Vergleich) InStr (Start, Zchnflge1, Zchnflge2, Vergleich) Argumente • Start ist das Zeichen in Zchnflge1, bei dem die Suche beginnen soll. Dies ist ein mit 1 beginnender Index. (Dieses Argument ist optional.) • • • Zchnflge1 ist die zu durchsuchende Zeichenfolge. Zchnflge2 ist die in Zchnflge1 gesuchte Zeichenfolge. Vergleich ist ein optionaler Zahlenwert, der angibt, welcher Zeichenfolgenvergleich verwendet werden soll. Bei 0 wird der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung durchgeführt und bei 1 mit Berücksichtigung der Groß-/Kleinschreibung. Ohne dieses Argument wird der Vergleich unter Berücksichtigung der Groß-/Kleinschreibung durchgeführt. Rückgabewert Ganze Zahl Aktion Die Funktion InStr gibt die Position zurück, ab der eine Zeichenfolge zum ersten Mal innerhalb einer anderen Zeichenfolge angetroffen wird. Diese Position ist ein mit 1 beginnender Index der Zeichen in Zchnflge1. Wenn Zeichenfolge2 nicht innerhalb von Zeichenfolge1 gefunden wird, gibt die Funktion Instr 0 zurück. 334 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Das Argument Start legt die Anfangsposition für die Suche fest. Wenn das Argument Vergleich nicht verwendet wird, erfolgt der Zeichenfolgenvergleich unter Berücksichtigung der Groß-/Kleinschreibung. Typische Verwendungen Mit dieser Funktion können Sie ermitteln, ob eine Zeichenfolge eine von Ihnen gesuchte Zeichenfolge enthält. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: InStr("abcdefg", "bcd") Gibt 2 zurück. InStr(3, "abcdefg", "cde") Gibt 3 zurück. InStr(“KarenJudith”,”karen”,1) Gibt 1 zurück. Beachten Sie, dass der Vergleich nicht unter Berücksichtigung der Groß-/Kleinschreibung durchgeführt wurde, da das Argument "Vergleich" den Wert 1 hat. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Diese Funktion verfügt im Hinblick auf das Argument Start über zwei Versionen. Bei der ersten Version wird das Argument Start verwendet, bei der zweiten nicht. Wenn das Argument Start nicht verwendet wird, durchsucht InStr die gesamte Zeichenfolge Zchnflge1 daraufhin, ob sie Zchnflge2 enthält. Wird das Argument "Start" verwendet, beginnt InStr mit der Suche bei dem Zeichen von Zchnflge2, das durch dieses Argument angegeben ist. InStrRev Basic- und Crystal-Syntax. Syntax der Argumente • • • InStrRev (Eingabezeichenfolge, Findzeichenfolge) InStrRev (Eingabezeichenfolge, Findzeichenfolge, Startposition) InStrRev (Eingabezeichenfolge, Findzeichenfolge, Startposition, Vergleich) Crystal Reports-Anwenderhandbuch 335 8 8 Funktionen Zeichenfolgen Argumente • • • „Eingabezeichenfolge“ ist die zu durchsuchende Zeichenfolge. • Vergleich ist ein optionaler Zahlenwert, der angibt, welche Art von Vergleich beim Auswerten von Teilzeichenfolgen verwendet werden soll: „Findzeichenfolge“ ist die in „Zchnflge1“ gesuchte Zeichenfolge. „startPosition“ ist ein optionaler numerischer Ausdruck, der die Startposition für jede Suche festlegt. Wenn diese Angabe weggelassen wird, wird -1 verwendet, was bedeutet, dass die Suche an der Position des letzten Zeichens beginnt. • • 0 berücksichtigt beim Vergleich die Groß-/Kleinschreibung. 1 ignoriert beim Vergleich die Groß-/Kleinschreibung. Wenn diese Angabe weggelassen wird, wird beim Vergleichen zwischen Groß- und Kleinschreibung unterschieden. Rückgabewert Zahlenwert, der die Position der Suchzeichenfolge in der durchsuchten Zeichenfolge angibt. Das erste Zeichen von „Eingabezeichenfolge“ (von vorne) ist 1. Aktion InStrRev gibt die Position des ersten Auftretens einer Zeichenfolge in einer anderen Zeichenfolge aus. Die Suche wird in umgekehrter Richtung von der angegebenen Startposition aus durchgeführt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: InStrRev ("abcdefgbchijk", "bc") Gibt 8 zurück, wenn die Suche vom Ende der Zeichenfolge aus in umgekehrter Richtung verläuft. InStrRev ("abcdefgbchijk", "bc", -1) Gibt 8 zurück, wenn die Suche vom Ende der Zeichenfolge aus in umgekehrter Richtung verläuft. InStrRev ("abcdefgbchijk", "bc", 2) Gibt 0 zurück, da nichts gefunden wurde. Die Suche beginnt ab dem „b“ in „ab“ in umgekehrter Richtung. InStrRev ("abcdefgbchijk", "bc", 3) Gibt 2 zurück. Die Suche beginnt ab dem „c“ in „abc“ in umgekehrter Richtung. 336 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen InStrRev ("abcdefgbchijk", "bc", 10) Gibt 8 zurück. Die Suche beginnt ab dem h in abcdefgbch in umgekehrter Richtung, und das erste Auftreten von bc wird an der achten Stelle ab dem Beginn der Eingabezeichenfolge gefunden. InStrRev ("abcdefgbchijk", "BC", -1, 1) Gibt 8 zurück. Die Suche beginnt am Ende der Zeichenfolge in umgekehrter Richtung, und das erste Auftreten der Suchzeichenfolge „BC“ wird an achter Stelle ab dem Beginn der durchsuchten Zeichenfolge gefunden, da festgelegt wurde, nicht zwischen Groß- und Kleinschreibung zu unterscheiden. InStrRev ("aBCdefgbchijk", "BC", -1, 0) Gibt 2 zurück. Die Suche beginnt ab dem Ende der Zeichenfolge in umgekehrter Richtung, und das erste Auftreten der Suchzeichenfolge „BC“ wird an der zweiten Stelle ab dem Beginn des durchsuchten Eingabetexts gefunden. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. StrCmp Basic- und Crystal-Syntax. Syntax der Argumente • • StrCmp (Zchnflge1, Zchnflge2) StrCmp (Zchnflge1, Zchnflge2, Vergleich) Argumente • • • Zchnflge1 ist die erste zu vergleichende Textzeichenfolge. Zchnflge2 ist die zweite zu vergleichende Textzeichenfolge. Vergleich ist ein optionaler Zahlwert, der angibt, welche Art von Zeichenfolgenvergleich durchgeführt werden soll: • • 0 berücksichtigt beim Vergleich die Groß-/Kleinschreibung. 1 ignoriert beim Vergleich die Groß-/Kleinschreibung. Wenn diese Angabe weggelassen wird, wird beim Vergleichen zwischen Groß- und Kleinschreibung unterschieden. Crystal Reports-Anwenderhandbuch 337 8 8 Funktionen Zeichenfolgen Rückgabewert Ganze Zahl, wobei: • • • -1 = Kleiner als 0 = Gleich 1 = Größer als Aktion Die Funktion StrCmp vergleicht zwei Zeichenfolgen. Typische Verwendung Mit dieser Funktion können Sie ermitteln, ob zwei Zeichenfolgen identisch sind. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: StrCmp("abcd", "aa") Rückgabewerte = 1. StrCmp("abcd", "aa", 1) Rückgabewerte = 1. StrCmp ("abcd", "ac") Gibt = -1 zurück. StrCmp ("aa", "aa") Gibt = 0 zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Mid Basic- und Crystal-Syntax. Syntax der Argumente • • Mid (Zchnflge, Start) Mid (Zchnflge, Start, Länge) Argumente • 338 Zchnflge ist die Textzeichenfolge, aus der ein oder mehrere Zeichen gelesen werden. Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen • Start ist eine ganze Zahl, die die Position des ersten zu lesenden Zeichens angibt. • Länge ist eine ganze Zahl, die die Anzahl der zu lesenden Zeichen angibt. Dieses Argument ist optional. Wenn Sie keinen Wert angeben, wird der Rest der Zeichenfolge ab der Startposition gelesen. Rückgabewert Textzeichenfolge Aktion Die Funktion Mid gibt eine bestimmte Anzahl von Zeichen aus einer Zeichenfolge zurück. Das zweite Argument ist die Position des Zeichens, mit dem der zu lesende Teil der Zeichenfolge beginnt. Das dritte Argument gibt die Länge der zu lesenden Zeichenfolge an. Wenn das dritte Argument nicht angegeben ist, wird alles ab der Startposition bis zum Ende der Zeichenfolge gelesen. Typische Verwendungen Verwenden Sie diese Funktion, um Zeichen aus der Mitte einer Textzeichenfolge zu lesen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Mid("abcdef", 3, 2) Gibt "cd" zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Left (Zchnflge, Länge) Basic- und Crystal-Syntax. Argumente • • Zchnflge ist eine Textzeichenfolge. Länge ist eine ganze Zahl, die die Anzahl der aus Zchnflge zu extrahierenden Zeichen angibt. Rückgabewert String-Wert Crystal Reports-Anwenderhandbuch 339 8 8 Funktionen Zeichenfolgen Aktion Extrahiert vom Beginn der Zeichenfolge (links) an die angegebene Anzahl an Zeichen. Typische Verwendungen Mit dieser Funktion können Sie vom Beginn einer Textzeichenfolge (von links) an eine bestimmte Anzahl an Zeichen extrahieren. Sie können z. B. die Funktion Left verwenden, um aus den Werten, die ein Feld für Telefonnummern enthält, nur die Vorwahlen zu ermitteln. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Left("abcdefg", 4) Gibt „abcd“ zurück. Left({Kunde.FAX}, 4) Gibt zu jeder Faxnummer die Vorwahl zurück, wenn die ersten vier Zeichen des Feldes FAX die Vorwahlnummer angeben. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Right (Zchnflge, Länge) Basic- und Crystal-Syntax. Argumente • • Zchnflge ist eine Textzeichenfolge. Länge ist eine ganze Zahl, die die Anzahl der aus Zchnflge zu extrahierenden Zeichen angibt. Rückgabewert String-Wert Aktion Liest die angegebene Anzahl Textzeichen vom Ende (von rechts) der angegebenen Zeichenfolge an. Typische Verwendungen Verwenden Sie diese Funktion, um nur den rechten Teil einer Zeichenfolge zu lesen. Sie können z. B. mit dieser Funktion die letzten vier Ziffern von Sozialversicherungsnummern lesen, die in einem Feld gespeichert sind. 340 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Right("abcdefg", 3) Gibt „efg“ zurück. Right({table.SSNUM}, 4) Gibt die letzten 4 Ziffern der Sozialversicherungsnummer als Zeichenfolge zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Val (Zchnflge) Basic- und Crystal-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge. Rückgabewert Bruchzahl Aktion Die Funktion Val (Zchnflge) liest eine Zeichenfolge, die Zahlen enthält (z.B: eine Adresse, eine Telefonnummer oder eine Sozialversicherungsnummer), und wandelt diese Zeichenfolge in eine Dezimalzahl um. Die Funktion Val beendet das Auswerten der Zeichenfolge, sobald sie in der Zeichenfolge auf das erste Zeichen gestoßen ist, das sie nicht als Ziffer oder Leerzeichen erkennen kann. Typische Verwendungen Verwenden Sie diese Funktion, um den numerischen Teil einer Zeichenfolge zu lesen, die sowohl Zahlen als auch Text enthält. Sie können z. B. nur die Hausnummer aus einer Adresse lesen oder nur den numerischen Teil einer Kennung (ID), die aus Buchstaben und Zahlen besteht. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Val("44227 49 Am Talenberg") Gibt 4422749 zurück. Crystal Reports-Anwenderhandbuch 341 8 8 Funktionen Zeichenfolgen Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. ChrW (x) Basic- und Crystal-Syntax. Argumente • x entspricht einer ganzen Zahl, und zwar einem beliebigen Unicode-Wert. x muss zwischen 0 und 65535 liegen, da andernfalls ein numerischer Überlauffehler auftritt. Rückgabewert Textzeichenfolge (ein Zeichen lang) Aktion Die Funktion ChrW (x) gibt ein Zeichen zurück, das dem Unicode-Wert entspricht, der als x übergeben wurde. Typische Verwendungen Verwenden Sie diese Funktion, um das zu einem Unicode-Wert gehörende Zeichen zu erhalten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ChrW(65) Gibt „A“ zurück. ChrW(332) Gibt „Õ“ zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Siehe auch • 342 AscW (Zchnflge) Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen AscW (Zchnflge) Basic- und Crystal-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge. Rückgabewert Zahl Aktion Die Funktion AscW (Zchnflge) gibt den Unicode-Code des ersten Zeichens der Zeichenfolge zurück. Typische Verwendungen Verwenden Sie diese Funktion, um den Unicode-Wert eines Zeichens zu ermitteln. Diese Funktion ist besonders nützlich für Anwendungsentwickler, die das Crystal Reports-Modul verwenden. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: AscW("Karen") Gibt 75 zurück, was dem Unicode-Wert des Buchstabens „K“ entspricht. AscW("Õ") Gibt 213 zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Siehe auch • ChrW (x) Filter Basic- und Crystal-Syntax. Syntax der Argumente • • • Filter (Eingabezeichenfolgen, Suchzeichenfolge) Filter (Eingabezeichenfolgen, Suchzeichenfolge, einschließen) Filter (Eingabezeichenfolgen, Suchzeichenfolge, einschließen, Vergleich) Crystal Reports-Anwenderhandbuch 343 8 8 Funktionen Zeichenfolgen Argumente • • • InputStrings ist ein Array mit Zeichenfolgen, der durchsucht wird. • Vergleich ist ein optionaler Zahlwert, der angibt, welche Art von Zeichenfolgenvergleich durchgeführt werden soll: searchString ist eine Zeichenfolge, nach der gesucht wird. Einschließen ist ein optionaler boolescher Wert, der angibt, ob Teilzeichenfolgen zurückgegeben werden sollen, in denen die als Suchzeichenfolge angegebene Suchzeichenfolge enthalten bzw. nicht enthalten ist. Wenn für Einschließen der Wert True angegeben wird, gibt Filter den Teilsatz des Arrays zurück, der die Suchzeichenfolge als Teilzeichenfolge enthält. Wenn für Einschließen der Wert False angegeben wird, gibt Filter den Teilsatz des Arrays zurück, der die Suchzeichenfolge nicht als Teilzeichenfolge enthält. Wenn diese Angabe weggelassen wird, wird der Wert True (Wahr) verwendet. • • 0 berücksichtigt beim Vergleich die Groß-/Kleinschreibung. 1 ignoriert beim Vergleich die Groß-/Kleinschreibung. Wenn diese Angabe weggelassen wird, wird beim Vergleichen zwischen Groß- und Kleinschreibung unterschieden. Rückgabewert Array mit String-Werten Aktion Filter durchsucht einen Array aus Zeichenfolgen nach einer angegebenen Zeichenfolge und gibt die Zeichenfolgen in einem Array zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Dabei wird davon ausgegangen, dass inputStrings ein String-Array ist, der aus folgenden 5 Elementen besteht: „Ananas“, „Apfel“, „APFEL“, „Grapefruit“ und „Orange“ Filter (inputStrings, "ap") Gibt „Grapefruit“ enthält. Filter (inputStrings, "Ap", True) Gibt einen Array zurück, der nur die Zeichenfolge „Apfel“ enthält. Filter (inputStrings, "ap", True, 1) Gibt einen Array zurück, der die Zeichenfolgen „Apfel“, „APFEL“ und „Grapefruit“ enthält. Beim Vergleichen mit der Suchzeichenfolge wird nicht zwischen Groß- und Kleinschreibung unterschieden. 344 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Filter (inputStrings, "ap", False) Gibt einen Array zurück, der die Zeichenfolgen „Apfel“, „APFEL“ und „Orange“ enthält. Filter (inputStrings, "cd") Gibt einen Array zurück, der nur die leere Zeichenfolge "" enthält. Der zurückgegebene Array enthält zwar keine übereinstimmende Zeichenfolge, aber zumindest 1 Element, da die Formelsprache keine leeren Arrays unterstützt. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Replace Basic- und Crystal-Syntax. Syntax der Argumente • • Replace (Eingabezeichenfolge, Findzeichenfolge, Ersatzzeichenfolge) • Replace (Eingabezeichenfolge, Findzeichenfolge, Ersatzzeichenfolge, Startposition, Anzahl) • Replace (Eingabezeichenfolge, Findzeichenfolge, Ersatzzeichenfolge, Startposition, Anzahl, Vergleich) Replace (Eingabezeichenfolge, Findzeichenfolge, Ersatzzeichenfolge, Startposition) Argumente • "Eingabezeichenfolge" ist eine Zeichenfolge, in der die zu ersetzende Teilzeichenfolge enthalten ist. • • "Findzeichenfolge" ist eine Teilzeichenfolge, nach der gesucht wird. • "Startposition" ist eine optionale Zahl, mit der die Position innerhalb von inputString angegeben wird, an der die Suche nach der Teilzeichenfolge beginnen soll. Wenn diese Angabe weggelassen wird, wird 1 verwendet. • "Anzahl" ist ein optionaler Zahlenwert, mit dem angegeben wird, wie oft die Teilzeichenfolge ersetzt werden soll. Wenn diese Angabe weggelassen wird, dann wird der Standardwert -1 verwendet, was bedeutet, dass alle Ersetzungen vorgenommen werden, die möglich sind. "Ersatzzeichenfolge" ist die Teilzeichenfolge, durch die die gesuchte Teilzeichenfolge ersetzt wird. Crystal Reports-Anwenderhandbuch 345 8 8 Funktionen Zeichenfolgen • "Vergleich" ist eine optionale Zahl, die angibt, welche Art von Vergleich beim Auswerten der Teilzeichenfolgen verwendet werden soll: • • 0 berücksichtigt beim Vergleich die Groß-/Kleinschreibung. 1 ignoriert beim Vergleich die Groß-/Kleinschreibung. Wenn diese Angabe weggelassen wird, wird beim Vergleichen zwischen Groß- und Kleinschreibung unterschieden. Rückgabewert String-Wert Aktion Replace gibt eine Zeichenfolge zurück, in der eine angegebene Teilzeichenfolge so oft wie festgelegt durch eine andere Zeichenfolge ersetzt wurde. Optional können Sie auch festlegen, an welcher Stelle innerhalb der Zeichenfolge mit dem Ersetzungsvorgang begonnen werden soll, und eine Zeichenfolge zurückgeben, die genau an dieser Stelle beginnt. Typische Verwendung Systematische Ersetzung einer Teilzeichenfolge durch eine andere. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Dabei wird davon ausgegangen, dass für inputString die Zeichenfolge „Montag ist mein freier Tag. Können wir uns nächsten Montag treffen?“ verwendet wird. Replace (inputString, "Montag", "Mittwoch") Gibt „Mittwoch ist mein freier Tag. Können wir uns nächsten Mittwoch treffen?“ zurück. Replace (inputString, "Montag", "Mittwoch", 29) Gibt „Können wir uns nächsten Mittwoch treffen?“ zurück. Die Ersetzung beginnt beim 29. Zeichen ab dem Anfang der Originalzeichenfolge inputString. Die zurückgegebene Zeichenfolge ist genau dieser Teil der Zeichenfolge, in dem die Ersetzungen durchgeführt wurden. Replace (inputString, "Montag", "Mittwoch", 1, 1) Gibt „Mittwoch ist mein freier Tag. Können wir uns nächsten Montag treffen?“ zurück. Hier hat nur eine einzige Ersetzung stattgefunden, und zwar ab dem 1. Zeichen des Anfangs der Originalzeichenfolge inputString. Der Rückgabewert entspricht also dem Originalwert, in dem jedoch genau eine Ersetzung durchgeführt wurde. Replace (inputString, "montag", "Mittwoch", 1, -1, 0) 346 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Gibt in inputString dieselbe Zeichenfolge zurück, in der keine Ersetzung durchgeführt worden ist, da durch einen Vergleich, bei dem auf Groß-/ Kleinschreibung geachtet wurde, keine Übereinstimmung mit „montag“ gefunden wurde. Replace (inputString, "montag", "Mittwoch", 1, -1, 1) In der zurückgegebenen Zeichenfolge inputString ist „Montag“ beide Male durch „Mittwoch“ ersetzt worden. Zurückgegeben wurde: „Mittwoch ist mein freier Tag. Können wir uns nächsten Mittwoch treffen?“ zurück. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Der Rückgabewert der Funktion Replace ist eine Zeichenfolge, in der die festgelegten Ersetzungen von Teilzeichenfolgen vorgenommen wurden, die an der durch startPosition angegebenen Position beginnt und die am Ende der in inputString enthaltenen Zeichenfolge endet. Der Rückgabewert ist also keine echte Kopie der Originalzeichenfolge. Join Basic- und Crystal-Syntax. Syntax der Argumente • • Join (Liste) Join (Liste, Trennzeichen) Argumente • list ist ein String-Array mit Teilzeichenfolgen, die miteinander verknüpft werden sollen. • delimiter ist eine optionale Zeichenfolge, mit der die in der zurückgegebenen Zeichenfolge enthaltenen Teilzeichenfolgen voneinander getrennt werden. Wenn diese Angabe weggelassen wird, wird als Trennzeichen das Leerzeichen (" ") verwendet. Wenn als Trennzeichen eine Zeichenfolge ohne Länge ("") verwendet wird, werden alle in der Liste enthaltenen Elemente ohne Trennzeichen verknüpft. Rückgabewert String-Wert Aktion Join gibt eine Zeichenfolge zurück, die durch Verknüpfung mehrerer in einem Array enthaltener Teilzeichenfolgen entsteht. Crystal Reports-Anwenderhandbuch 347 8 8 Funktionen Zeichenfolgen Typische Verwendung Zum Konvertieren der in einem String-Array gespeicherten Elemente in eine einzelne Zeichenfolge. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Bei diesen Beispielen wird davon ausgegangen, dass list ein String-Array ist, der aus folgenden 3 Elementen besteht: „Schokolade“, „Vanille“ und „Erdbeer“. Join (Liste) Gibt die Zeichenfolge „Schokolade Vanille Erdbeer“ zurück. Join (list, "***") Gibt die Zeichenfolge „Schokolade***Vanille***Erdbeer“ zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Siehe auch • Split Split Basic- und Crystal-Syntax. Syntax der Argumente • • • • Split (Eingabezeichenfolge) Split (Eingabezeichenfolge, Trennzeichen) Split (Eingabezeichenfolge, Trennzeichen, Anzahl) Split (Eingabezeichenfolge, Trennzeichen, Anzahl, Vergleich) Argumente 348 • "Eingabezeichenfolge" ist ein Zeichenfolgeausdruck, in dem Teilzeichenfolgen und Trennzeichen enthalten sind. • "Trennzeichen" ist eine optionale alphanumerische Zeichenfolge, die dazu dient, Anfang und Ende von Teilzeichenfolgen anzuzeigen. Wenn diese Angabe weggelassen wird, wird als Trennzeichen das Leerzeichen (" ") verwendet. Wenn Trennzeichen eine Zeichenfolge mit der Länge Null ist, wird ein Array mit einem einzigen Element, nämlich der gesamten Zeichenfolge inputString, zurückgegeben. Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen • "Anzahl" ist ein optionaler Zahlenwert für die Anzahl der Zeichenfolgen, die zurückgegeben werden sollen. Der Wert -1 gibt an, dass alle Teilzeichenfolgen zurückgegeben werden. Wenn diese Angabe weggelassen wird, wird -1 verwendet. • "Vergleich" ist eine optionale Zahl, die angibt, welche Art von Vergleich beim Auswerten der Trennzeichenfolge verwendet werden soll: • • 0 berücksichtigt beim Vergleich die Groß-/Kleinschreibung. 1 ignoriert beim Vergleich die Groß-/Kleinschreibung. Wenn diese Angabe weggelassen wird, wird beim Vergleichen zwischen Groß- und Kleinschreibung unterschieden. Hinweis: Anders als in Visual Basic müssen Sie in Crystal Reports auch die folgenden Argumente weglassen, wenn Sie ein optionales Argument weggelassen haben. Wenn Sie z.B. keinen Wert für "Trennzeichen" festlegen, können Sie auch die Werte compare oder count nicht bestimmen. Rückgabewert Array mit String-Werten Aktion Split löst eine Zeichenfolge, in der mehrere Teilzeichenfolgen enthalten sind, in eine festgelegte Zahl von Teilzeichenfolgen auf und gibt einen Array zurück, in dem diese Teilzeichenfolgen enthalten sind. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Split ("Schokolade Erdbeer Ananas") Gibt einen Array zurück, in dem 3 Elemente enthalten sind: „Schokolade“, „Erdbeer“ und „Ananas“. Split ("Schokolade//Erdbeer//Ananas", "//") Gibt einen Array zurück, in dem 3 Elemente enthalten sind: „Schokolade“, „Erdbeer“ und „Ananas“. Split ("Schokolade//Erdbeer//Ananas", "//", 2) Gibt einen Array zurück, in dem 2 Elemente enthalten sind: „Schokolade“ und „Erdbeer//Ananas“. Beachten Sie, dass das letzte Element des Arrays eine Verkettung der zweiten Teilzeichenfolge mit der restlichen Teilzeichenfolge ist. Split ("Schokolade und Erdbeer und Ananas", " Und ", -1, 0) Gibt einen Array zurück, in dem 1 Element enthalten ist: „Schokolade und Erdbeer und Ananas“. Die Trennzeichenfolge „ Und “ wird nicht gefunden. Crystal Reports-Anwenderhandbuch 349 8 8 Funktionen Zeichenfolgen Split ("Schokolade und Erdbeer und Ananas", " Und ", -1, 1) Gibt einen Array zurück, in dem 3 Elemente enthalten sind: „Schokolade“, „Erdbeer“ und „Ananas“. Die Trennzeichenfolge " Und " wird unabhängig von Groß- und Kleinschreibung in Form von " und " gefunden. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Wenn count (c) kleiner als die Gesamtanzahl aller Teilzeichenfolgen in Eingabezeichenfolge ist, dann werden im Ergebnis-Array höchstens c Teilzeichenfolgen zurückgegeben. Das letzte Element des Arrays ist eine Verkettung der c-ten Teilzeichenfolge mit allen restlichen Teilzeichenfolgen. Siehe auch • Join Roman Basic- und Crystal-Syntax. Syntax der Argumente • • Roman (arabischerWert) Roman (arabischerWert, Stil) Argumente 350 • "arabischerWert" entspricht einer Zahl, die der zu konvertierenden arabischen Ziffer entspricht. Die gültigen Werte lauten 0 bis 3999. • "Stil" ist eine Zahl, die den Typ der gewünschten römischen Ziffer angibt. Der numerische Stil für Roman reicht vom klassischen bis zum vereinfachten Stil und wird umso präziser, je höher der Wert für Stil ausfällt. Siehe die Beispiele unten. Da Stil ein optionales Argument ist, kann es weggelassen werden. In diesem Fall wird davon ausgegangen, dass der klassische Stil anstelle des Stilwertes verwendet wird. Formular Typ 0 oder weggelassen Klassisch 1 Präziser. Siehe Beispiel. Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen 2 Präziser. Siehe Beispiel. 3 Präziser. Siehe Beispiel. 4 Vereinfacht Rückgabewert Eine Zeichenfolge, die der römischen Zifferndarstellung von arabischerWert entspricht. Aktion Konvertiert arabische Ziffern in römische Ziffern in Textform. Beispiele Sie können diese Funktion verwenden, um Seitenzahlen als römische Ziffern in Kleinbuchstaben auszugeben. Hier ein Beispiel: LCase (Roman (Seitenzahl)) Andere Beispiele: Roman (499,0) Gibt CDXCIX zurück. Roman (499,1) Gibt LDVLIV zurück. Roman (499,2) Gibt XDIX zurück. Roman (499,3) Gibt VDIV zurück. Roman (499,4) Gibt ID zurück. Anmerkungen Diese Funktion ist vergleichbar mit der Excel-Funktion für römische Ziffern. URLEncode Basic- und Crystal-Syntax. Syntax der Argumente • • • • URLEncode (inputString) URLEncode (inputString, encodingScheme) URLEncode (inputString, encodingScheme, neverEncode) URLEncode (inputString, encodingScheme, neverEncode, alwaysEncode) Crystal Reports-Anwenderhandbuch 351 8 8 Funktionen Zeichenfolgen • • • URLEncode (inputString, encodingScheme, characterSet) URLEncode (inputString, encodingScheme, characterSet, neverEncode) URLEncode (inputString, encodingScheme, characterSet, neverEncode, alwaysEncode) Argumente • • inputString ist eine Zeichenfolge mit der URL, die codiert werden soll. encodingScheme ist eine ganze Zahl, durch die das Schema angegeben wird, das zur Codierung der Zeichenfolge verwendet werden soll: • • Durch 0 wird die URL-Codierung gemäß RFC 1738 festgelegt. • Durch 2 wird die benutzerdefinierte Codierung festgelegt. Standardmäßig bleiben nur alphanumerische Zeichen uncodiert. Durch 1 wird die HTML-Formular-Codierung gemäß application/xwww-form-urlencoded festgelegt. Falls encodingScheme nicht festgelegt wird, wird der Standardwert 0 (URL-Codierung) verwendet. • neverEncode entspricht einer Zeichenfolge, die im Codierungsprozess nicht geändert werden soll. Dieses Argument entspricht standardmäßig einer leeren Zeichenfolge. Hinweis: Die Zeichenfolge, aus der dieses Argument gebildet wird, darf nur Zeichen mit ASCII-Werten zwischen 0 und einschließlich 127 enthalten. • alwaysEncode ist eine Zeichenfolge, die im Codierungsprozess immer codiert werden soll. Dieses Argument entspricht standardmäßig einer leeren Zeichenfolge. Hinweis: • • Die Zeichenfolge, aus der dieses Argument gebildet wird, darf nur Zeichen mit ASCII-Werten zwischen 0 und einschließlich 127 enthalten. • alwaysEncode hat Vorrang vor neverEncode, falls in beiden Argumenten dieselben Zeichen verwendet werden. characterSet ist eine ganze Zahl, durch die die gewünschte Zeichencodierung (Codeseite) festgelegt wird: • • • Durch 0 wird UTF-8 festgelegt. Durch 1 wird ISO-8859 festgelegt. Durch 2 wird Shift-JIS festgelegt. Falls characterSet nicht festgelegt wird, wird der Standardwert 0 (UTF-8Codierung) verwendet. 352 Crystal Reports-Anwenderhandbuch Funktionen Zeichenfolgen Rückgabewert Eine Zeichenfolge, die eine URL-codierte Version Ihrer Eingabezeichenfolge enthält. Aktion URLEncode erfordert eine Zeichenfolge, die Leer- und Sonderzeichen enthält, und gibt eine codierte Version dieser Zeichenfolge zurück, die als URL für die plattformübergreifende Berichterstellung verwendet werden kann. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: URLEncode ("http://Ihre Site.com", 0) Gibt http://Ihre%20Site.com zurück. URLEncode ("http://Ihre Site.com", 0, " ") Gibt http://Ihre Site.com zurück. URLEncode ("http://Ihre Site.com", 0, " ", ":.") Gibt http%3A//Ihre Site%2Ecom zurück. Anmerkungen • • • • Für die URL-Codierung gelten die folgenden Regeln: • Folgende Zeichen werden standardmäßig nicht codiert: A...Z a...z 0...9 $ - _ . + ! * ' ( ) , ; / ? : @ & = # • Folgende Zeichen werden standardmäßig codiert: alle anderen Zeichen. Für die HTML-Formular-Codierung gelten folgende Regeln: • Folgende Zeichen werden standardmäßig nicht codiert: A...Z a...z 0...9 . - * _ • • Sonderzeichen: " " wird als + codiert. Folgende Zeichen werden standardmäßig codiert: alle anderen Zeichen. Für die benutzerdefinierte Codierung gelten folgende Regeln: • Folgende Zeichen werden standardmäßig nicht codiert: A...Z a...z 0...9 • Folgende Zeichen werden standardmäßig codiert: alle anderen Zeichen. Die Ersetzung mehrerer Zeichen wird nicht unterstützt (Beispiel: "<" in "<"). Crystal Reports-Anwenderhandbuch 353 8 8 Funktionen Zeichenfolgen Siehe auch • URLDecode URLDecode Basic- und Crystal-Syntax. Syntax der Argumente • • • URLDecode (inputString) URLDecode (inputString, encodingScheme) URLDecode (inputString, encodingScheme, characterSet) Argumente • inputString ist eine Zeichenfolge mit der codierten URL, die decodiert werden soll. • encodingScheme ist eine ganze Zahl, durch die das Schema angegeben wird, das zur Decodierung der Zeichenfolge verwendet werden soll: • • Durch 0 wird die URL-Codierung gemäß RFC 1738 festgelegt. • Durch 2 wird die benutzerdefinierte Codierung festgelegt. Standardmäßig bleiben nur alphanumerische Zeichen uncodiert. Durch 1 wird die HTML-Formular-Codierung gemäß application/xwww-form-urlencoded festgelegt. Falls encodingScheme nicht festgelegt wird, wird der Standardwert 0 (URL-Codierung) verwendet. • characterSet ist eine ganze Zahl, durch die die gewünschte Zeichencodierung (Codeseite) festgelegt wird: • • • Durch 0 wird UTF-8 festgelegt. Durch 1 wird ISO-8859 festgelegt. Durch 2 wird Shift-JIS festgelegt. Falls characterSet nicht festgelegt wird, wird der Standardwert 0 (UTF-8Codierung) verwendet. Rückgabewert Eine Zeichenfolge, die eine URL-decodierte Version Ihrer Eingabezeichenfolge enthält. Aktion URLDecode erfordert eine Zeichenfolge, die Codierungen für Leer- und Sonderzeichen enthält, und gibt eine decodierte Version dieser Zeichenfolge zurück. 354 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: URLDecode ("http://Ihre+Site.com", 0) Gibt http://Ihre+Site.com zurück. URLDecode ("http://Ihre+Site.com", 1) Gibt http://Ihre Site.com zurück. Anmerkungen • Damit URLEncode und URLDecode als inverse Funktionen genutzt werden können, muss URLDecode nur wissen, welche Zeichencodierung verwendet werden soll und wie das Zeichen + zu behandeln ist (ob es also als allein stehendes Zeichen verwendet oder in ein Leerzeichen umgewandelt wird). Aus diesem Grund muss der encodingScheme-Parameter festgelegt werden. Siehe auch • URLEncode Datum/Uhrzeit Mit Datumsfunktionen können Sie Zahlen in Datumsangaben und Datumsangaben in Zahlen umwandeln. Die Datumsangaben können Sie zum Anzeigen beliebig formatieren. CurrentDate Current Time CurrentDateTime Date Time DateTime DateValue TimeValue DateTimeValue DateSerial (Jahr, Monat, Tag) TimeSerial (Stunden, Minuten, Sekunden) IsTime IsDate Crystal Reports-Anwenderhandbuch 355 8 8 Funktionen Datum/Uhrzeit IsDateTime Year (x) Month (x) Day (x) WeekDay DayOfWeek Hour (x) Minute (x) Second (x) MonthName WeekdayName Timer DateAdd (Intervalltyp, nIntervalle, StartDatumUhrzeit) DateDiff DatePart Konstanten für den ersten Wochen-/Jahrestag ShiftDateTime (inputDateTime, inputTimeZone, newTimeZone) Zusätzliche Datum-/Uhrzeitfunktionen DateTo2000 (Datum, Zahl) DTSTo2000 (DatumUhrzeitFolge, Zahl) DTSToDate (DatumUhrzeitFolge) DTSToSeconds (DatumUhrzeitFolge) DTSToTimeString (DatumUhrzeitFolge) CurrentDate Basic- und Crystal-Syntax. Rückgabewert Date-Wert Aktion CurrentDate gibt das Druckdatum des Berichts zurück. 356 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Typische Verwendung Verwenden Sie CurrentDate immer dann, wenn das Druckdatum auf Ihrem Bericht stehen soll. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CurrentDate Gibt "31.12.96" zurück, wenn Sie den Ausdruck des Berichts am 31. Dezember 1996 starten. CurrentDate Gibt "31.12.96" zurück, wenn Sie den Ausdruck des Berichts am 31. Dezember 1996 starten. Anmerkungen • • CurrentDate und PrintDate sind synonym. • CurrentDate gibt denselben Wert zurück wie die Funktion Today, die Bestandteil der früheren Versionen vom Programm ist. Today wird nur bereitgestellt, um die Kompatibilität zu Berichten zu gewährleisten, die mit früheren Versionen vom Programm erstellt wurden. Für neue Berichte sollten Sie die Funktion CurrentDate verwenden. Das verwendete Datumsformat richtet sich nach den Ländereinstellungen in der Windows-Systemsteuerung. Current Time Basic- und Crystal-Syntax. Rückgabewert Time-Wert Aktion CurrentTime gibt die Druckzeit des Berichts zurück. Typische Verwendung Verwenden Sie CurrentTime immer dann, wenn die Druckzeit auf Ihrem Bericht stehen soll. Crystal Reports-Anwenderhandbuch 357 8 8 Funktionen Datum/Uhrzeit Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CurrentTime Gibt 04:45:18 zurück, wenn Sie mit dem Drucken des Berichts um 04:45:18 beginnen. CurrentTime Gibt 17:14:33 zurück, wenn Sie mit dem Drucken des Berichts um 17:14:33 beginnen. Anmerkungen • • CurrentTime und PrintTime sind synonym. • Die Funktion CurrentTime gibt denselben Wert zurück wie die Funktion Now, die Bestandteil der früheren Versionen vom Programm ist. Now wird nur bereitgestellt, um die Kompatibilität zu Berichten zu gewährleisten, die mit früheren Versionen vom Programm erstellt wurden. Für neue Berichte sollten Sie die Funktion CurrentTime verwenden. Das verwendete Zeitformat richtet sich nach den Ländereinstellungen in der Windows-Systemsteuerung. CurrentDateTime Basic- und Crystal-Syntax. Rückgabewert DateTime-Wert Aktion CurrentDateTime gibt das aktuelle Datum und die aktuelle Uhrzeit zurück. Das Datum und die Uhrzeit werden anhand der internen Uhr Ihres Computers ermittelt. Typische Verwendung Verwenden Sie CurrentDateTime immer dann, wenn das aktuelle Datum und die aktuelle Uhrzeit auf Ihrem Bericht stehen sollen. 358 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CurrentDateTime Gibt "04.07.98 09:45:18" zurück, wenn Sie am 4. Juli 1998 um 09:45:18 den Ausdruck des Berichts starten. CurrentDateTime Gibt "31.12.96 17:14:33" zurück, wenn Sie am 31. Dezember 1996 um 17:14:33 den Ausdruck des Berichts starten. Anmerkungen • Die für das Datum und die Uhrzeit verwendeten Formate richten sich nach den Ländereinstellungen in der Windows-Systemsteuerung. • CurrentDateTime gibt dasselbe Ergebnis zurück wie die folgende Formel: CDateTime(CurrentDate, CurrentTime) Date Crystal-Syntax. Die Funktionen CDate und DateValue sind gleichwertig mit Date. Date kann allerdings nur in der Crystal-Syntax verwendet werden, da es in der BasicSyntax als Name für einen Typ verwendet wird. Syntax der Argumente • • • • Date (Zahl) Date (Zeichenfolge) Date (DatumUhrzeit) Date (JJJJ, MM, TT) Argumente Date (Zahl) • Zahl ist ein Wert, der die Anzahl der Tage ab dem 30. Dezember 1899 angibt. • Zahl kann positiv oder negativ sein und wird abgeschnitten, wenn es ein Dezimalwert ist. Crystal Reports-Anwenderhandbuch 359 8 8 Funktionen Datum/Uhrzeit Date (Zeichenfolge) • Date (DatumUhrzeit) • • Date (JJJJ, MM, TT) Zeichenfolge enthält eine Textzeichenfolge, die ein Datum darstellt (Beispiel: „20. September 1999“). datumUhrzeit ist ein DateTime-Wert. JJJJ ist eine ganze Zahl, die ein Jahr angibt, z. B. 1996. • MM ist eine ganze Zahl, die einen Monat angibt, z. B. 12 für Dezember. • TT ist eine ganze Zahl, die einen Monatstag angibt, z. B. 05. Rückgabewert Date-Wert Aktion Date (Zahl) Gibt einen Date-Wert zurück, wenn eine Anzahl der Tage ab dem 30. Dezember 1899 angegeben wird. Date (Zeichenfolge) Gibt einen Date-Wert zurück, wenn eine Zeichenfolge angegeben wird, die ein Datum zwischen dem 1. Januar 100 und dem 31. Dezember 9999 darstellt. Date (DatumUhrzeit) Gibt den Datumsbestandteil eines angegebenen DateTime-Wertes zurück. Date (JJJJ, MM, TT) Gibt einen Date-Wert zurück, wenn numerische Argumente für Jahr, Monat und Tag angegeben werden. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Date ("31. Dezember 1999") Gibt den Date-Wert 31 1999 zurück. 31, 1999. Date (50) Gibt den Date-Wert 18. Februar 1900 zurück. Date (#Oct. 20, 1999 12:02pm#) Gibt den Date-Wert 20. Oktober 1999 zurück. Date (1930, 7, 30) Gibt den Date-Wert 30. Juli 1930 zurück. 360 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Anmerkungen Mit der Funktion IsDate können Sie prüfen, ob ein String-Argument in einen Date-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. Siehe auch • DateSerial (Jahr, Monat, Tag) Time Crystal-Syntax. Die Funktionen CTime und TimeValue sind gleichwertig zu Time. Time kann allerdings nur in der Crystal-Syntax verwendet werden, da es in der BasicSyntax als Name für einen Typ verwendet wird. Syntax der Argumente • • • • Zeit (Zahl) Time (Zeichenfolge) Time (DatumUhrzeit) Time (HH, MM, SS) Argumente Zeit (Zahl) Time (Zeichenfolge) • Gibt einen Time-Wert zurück, wenn eine Zahl im 24Stunden-Format angegeben wird. • Die Zahl kann auch negativ und eine Dezimalzahl sein. Gibt einen Time-Wert für die Uhrzeit zurück, wenn ein StringAusdruck angegeben wird, der eine Uhrzeit von 0:00:00 (12:00:00 am) bis einschließlich 23:59:59 (11:59:59 pm) darstellt. Crystal Reports-Anwenderhandbuch 361 8 8 Funktionen Datum/Uhrzeit Time (DatumUhrzeit) Time (Std, Min, Sek) DatumUhrzeit ist ein DateTimeWert. • Std ist eine ganze Zahl, die eine Stunde des Tages angibt. • Min ist eine ganze Zahl, die eine Minute angibt. • Sek ist eine ganze Zahl, die eine Sekunde angibt. Rückgabewert Time-Wert Aktion Erstellt anhand der bereitgestellten Informationen einen Time-Wert. Typische Verwendungen Diese Funktion können Sie immer dann verwenden, wenn Sie mit einem Time-Wert arbeiten müssen, der entweder aus einem DateTime-Wert stammt oder aus den einzelnen Bestandteilen der Zeit (d. h. Stunde, Minute, Sekunde) besteht. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Time(.2) und Time (1.2) Beide geben 4:48:00 zurück. Time(-.2) Gibt 7:12:00 pm zurück Time("3:05pm") Gibt 15:05:00 zurück Time(DateTime(1996, 1, 1, 12, 10, 10)) Gibt 12:10:10 zurück. Time(10, 20, 22) Gibt 10:20:22 zurück. Siehe auch • 362 TimeValue Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit DateTime Crystal-Syntax. Die Funktionen CDateTime und DateTimeValue sind gleichwertig zu DateTime. DateTime kann allerdings nur in der Crystal-Syntax verwendet werden, da es in der Basic-Syntax als Name für einen Typ verwendet wird. Syntax der Argumente • • • • • • DateTime (Datum) DateTime (Zahl) DateTime (Zeichenfolge) DateTime (Datum, Uhrzeit) DateTime (JJJJ, MM, TT) DateTime (JJJJ, MM, TT, HH, MM, SS) Argumente DateTime (Datum) Datum ist ein Date-Wert. Datum ist ein Date-Wert. DateTime (Datum, Uhrzeit) • • DateTime (Zeichenfolge) Zeichenfolge gibt Datum und Zeit an. Beispiel: „September 15, 1999 10:45 am“ DateTime (Zahl) Zahl stellt eine Anzahl an Tagen seit dem 30. Dezember 1899 dar. Beispiel: 20 steht für 20 Tage nach dem Dezember des Jahres 1899, also für den 19. Januar 1900 • Jahr ist eine ganze Zahl, die ein Kalenderjahr angibt, z. B. 1996. DateTime (Jahr, Monat, Tag) DateTime (Jahr, Monat, Tag, Std, Min, Sek) x ist ein Time-Wert. • Monat ist eine ganze Zahl, die einen Monat angibt, z. B. 1 für Januar. • Tag ist eine ganze Zahl, die einen Monatstag angibt, z. B. 10. • Std ist eine ganze Zahl, die eine Stunde des Tages angibt, z. B. 12. • Min ist eine ganze Zahl, die eine Minute angibt, z. B. 59. • Sek ist eine ganze Zahl, die die Sekunden angibt, z. B. 30. Crystal Reports-Anwenderhandbuch 363 8 8 Funktionen Datum/Uhrzeit Rückgabewert DateTime-Wert Aktion DateTime (Datum) Gibt einen DateTime-Wert zurück, wenn ein Date-Wert angegeben wird, und weist dabei als Uhrzeitbestandteil des Rückgabewertes 12:00:00 am zu. DateTime (Datum, Uhrzeit) Gibt einen DateTime-Wert zurück, wenn ein Datums- und ein Time-Wert angegeben werden. DateTime (Zahl) Gibt einen DateTime-Wert zurück, wenn die Anzahl der Tage ab dem 30. Dezember 1899 angegeben wird. Zahl kann positiv oder negativ und ein Dezimalwert sein. DateTime (Zeichenfolge) Gibt einen DateTime-Wert zurück, wenn eine Zeichenfolge angegeben wird, die ein Datum und eine Uhrzeit darstellt; dabei werden für diese Zeichenfolge verschiedene Formate unterstützt. DateTime (JJJJ, MM, TT) Gibt einen DateTime-Wert zurück, wenn numerische Argumente für Jahr, Monat und Tag angegeben werden. Weist dem Uhrzeit-Bestandteil des zurückgegebenen DateTime-Wertes die Zeit 12:00:00 am zu. DateTime (JJJJ, MM, TT, HH, MM, SS) Gibt einen DateTime-Wert zurück, wenn numerische Argumente für Jahr, Monat, Tag, Stunde, Minute und Sekunde angegeben werden. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: DateTime ("10/4/1999 10:20am") Gibt den DateTime-Wert 4. Oktober 1999, 10.20:00 zurück. 364 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit DateTime 12.5) Gibt den DateTime-Wert 11. Januar 1900, 12:00:00 zurück. DateTime (-2.5) Gibt den DateTime-Wert 27. Dezember 1899, 12:00:00 zurück. DateTime (CDate ("Dec. 25, 1999")) Gibt den DateTime-Wert 25. Dezember 1999, 12:00:00 zurück. DateTime (CDate ("November 10, 1999"), CTime("12:20am")) Gibt den DateTime-Wert 10. November 1999, 12:20:00 zurück. DateTime (1945, 8, 21, 0, 0, 0) Gibt den DateTime-Wert 21. August 1945, 12:00:00 zurück. DateTime (1945, 8, 21, 10, 0, 0) Gibt den DateTime-Wert 21. August 1945, 10:00:00 zurück. Anmerkungen Mit der Funktion IsDateTime können Sie prüfen, ob ein String-Argument in einen DateTime-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. Siehe auch • DateTimeValue DateValue Basic- und Crystal-Syntax. Die Funktionen CDate und Date sind gleichwertig zu DateValue. Date kann allerdings nur in der Crystal-Syntax verwendet werden, da es in der BasicSyntax als Name für einen Typ verwendet wird. Syntax der Argumente • • • • DateValue (Zeichenfolge) DateValue (Zahl) DateValue (DatumUhrzeit) DateValue (JJJJ, MM, TT) Crystal Reports-Anwenderhandbuch 365 8 8 Funktionen Datum/Uhrzeit Argumente DateValue (Zahl) • Zahl ist ein Wert, der die Anzahl der Tage ab dem 30. Dezember 1899 angibt. • Zahl kann positiv oder negativ sein und wird abgeschnitten, wenn es ein Dezimalwert ist. DateValue (Zeichenfolge) Zeichenfolge enthält eine Textzeichenfolge, die ein Datum darstellt (Beispiel: „20. September 1999“). DateValue (DatumUhrzeit) datumUhrzeit ist ein DateTimeWert. • YYYY (Jahr) ist eine ganze Zahl, die ein Kalenderjahr angibt, z. B. 1996. DateValue (YY,MM,DD) • Monat ist eine ganze Zahl, die einen Monat angibt, z. B. 12 für Dezember. • Tag ist eine ganze Zahl, die einen Monatstag angibt, z. B. 05. Rückgabewert DateValue Aktion DateValue (Zeichenfolge) gibt einen Date-Wert zurück, wenn eine Zeichenfolge angegeben wird, die ein Datum zwischen dem 1. Januar 100 und dem 30. Dezember 9999 darstellt. DateValue (Zahl) gibt einen Date-Wert zurück, wenn eine Anzahl der Tage ab dem 30. Dezember 1899 angegeben wird. Zahl kann positiv oder negativ sowie abgeschnitten sein, wenn es sich um einen Dezimalwert handelt. DateValue (DatumUhrzeit) gibt den Datum-Bestandteil eines angegebenen DateTime-Wertes zurück. DateValue (JJJJ, MM, TT) gibt einen Date-Wert zurück, wenn numerische Argumente für Jahr, Monat und Tag angegeben werden. 366 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DateValue ("31. Dezember 1999") Gibt den Date-Wert 31 1999 zurück. 31, 1999. DateValue (50) Gibt den Date-Wert 18. Februar 1900 zurück. DateValue (#Oct. 20, 1999 12:02pm#) Gibt den Date-Wert 20. Oktober 1999 zurück. DateValue (1930, 7, 30) Gibt den Date-Wert 30. Juli 1930 zurück. Anmerkungen Mit der Funktion IsDate können Sie prüfen, ob ein String-Argument in einen Date-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. Siehe auch • DateSerial (Jahr, Monat, Tag) TimeValue Basic- und Crystal-Syntax. Die Funktionen CTime und Time sind gleichwertig zu TimeValue. Time kann allerdings nur in der Crystal-Syntax verwendet werden, da es in der BasicSyntax als Name für einen Typ verwendet wird. Syntax der Argumente • • • • TimeValue (Zahl) TimeValue (Zeichenfolge) TimeValue (DatumUhrzeit) TimeValue (HH, MM, SS) Crystal Reports-Anwenderhandbuch 367 8 8 Funktionen Datum/Uhrzeit Argumente TimeValue (Zahl) • Gibt einen Time-Wert zurück, wenn eine Zahl im 24Stunden-Format angegeben wird. • Die Zahl kann auch negativ und eine Dezimalzahl sein. TimeValue (Zeichenfolge) Gibt einen Time-Wert für die Uhrzeit zurück, wenn ein StringAusdruck angegeben wird, der eine Uhrzeit von 0:00:00 (12:00:00 am) bis einschließlich 23:59:59 (11:59:59 pm) darstellt. TimeValue (DatumUhrzeit) DatumUhrzeit ist ein DateTimeWert. • Std ist eine ganze Zahl, die eine Stunde des Tages angibt. TimeValue (Stunde, Minute, Sekunde) • Min ist eine ganze Zahl, die eine Minute angibt. • Sek ist eine ganze Zahl, die eine Sekunde angibt. Rückgabewert Time-Wert Aktion TimeValue (Zahl) gibt einen Time-Wert zurück, wenn eine Zahl im 24Stunden-Format angegeben wird. Zahl kann negativ oder positiv und ein Dezimalwert sein. TimeValue (Zeichenfolge) gibt einen Time-Wert für die Uhrzeit zurück, wenn ein String-Ausdruck angegeben wird, der eine Uhrzeit von 0:00:00 (12:00:00 am) bis einschließlich 23:59:59 (11:59:59 pm) darstellt. TimeValue (DatumUhrzeit) gibt den Uhrzeitbestandteil eines angegebenen DateTime-Wertes zurück. TimeValue (HH, MM, SS) gibt einen Time-Wert zurück, wenn numerische Argumente für Stunde, Minuten und Sekunden angegeben werden. 368 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: TimeValue (.2) TimeValue (1.2) Beide geben denselben Wert 4:48:00 zurück. TimeValue (-.2) Gibt 7:12:00 pm zurück TimeValue ("Jan. 6, 1999 2:30pm") Gibt 2:30:00 pm zurück TimeValue (#Feb. 24, 1999 2:40pm#) Gibt 2:40:00 pm zurück TimeValue (18, 30, 30) Gibt 6:30:30 pm zurück Anmerkungen Mit der Funktion IsTime können Sie prüfen, ob ein String-Argument in einen Time-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. Siehe auch TimeSerial (Stunden, Minuten, Sekunden). DateTimeValue Basic- und Crystal-Syntax. Die Funktionen CDateTime und DateTime sind gleichwertig zu DateTimeValue. DateTime kann allerdings nur in der Crystal-Syntax verwendet werden, da es in der Basic-Syntax als Name für einen Typ verwendet wird. Syntax der Argumente • • • • • • DateTimeValue (Datum) DateTimeValue (Datum, Uhrzeit) DateTimeValue (Zahl) DateTimeValue (Zeichenfolge) DateTimeValue (JJJJ, MM, TT) DateTimeValue (JJJJ, MM, TT, HH, MM, SS) Crystal Reports-Anwenderhandbuch 369 8 8 Funktionen Datum/Uhrzeit Argumente DateTimeValue (Zahl) • • • • DateTimeValue (Zeichenfolge) • DateTimeValue (Jahr, Monat, Tag) DateTimeValue (Jahr, Monat, Tag, Stunde, Min, Sek) • DateTimeValue (Datum) DateTimeValue (Datum, Uhrzeit) Datum ist ein Date-Wert. Datum ist ein Date-Wert. x ist ein Time-Wert. Zahl stellt eine Anzahl von Tagen ab dem 30. Dezember 1899 dar, z. B.: 20 steht für 20 Tage nach dem Dezember des Jahres 1899, also für den 19. Januar 1900 Zeichenfolge ist ein Datum und eine Uhrzeit, z. B.: „15. September 1999, 10:45 a.m.“. Jahr ist eine ganze Zahl, die ein Kalenderjahr angibt, z. B. 1996. • Monat ist eine ganze Zahl, die einen Monat angibt, z. B. 1 für Januar. • Tag ist eine ganze Zahl, die einen Monatstag angibt, z. B. 10. • Std ist eine ganze Zahl, die eine Stunde des Tages angibt, z. B. 12. • Min ist eine ganze Zahl, die eine Minute angibt, z. B. 59. • Sek ist eine ganze Zahl, die die Sekunden angibt, z. B. 30. Rückgabewert DateTime-Wert Aktion DateTimeValue (Datum) gibt einen DateTime-Wert zurück, wenn ein DateWert angegeben wird, und weist dabei als Uhrzeit-Bestandteil des zurückgegebenen DateTime-Wertes 12:00:00 am zu. DateTimeValue (Datum, Uhrzeit) gibt einen DateTime-Wert zurück, wenn ein Date- und ein Time-Wert angegeben werden. 370 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit DateTimeValue (Zahl) gibt einen DateTime-Wert zurück, wenn die Anzahl der Tage ab dem 30. Dezember 1899 angegeben wird. Zahl kann positiv oder negativ und ein Dezimalwert sein. DateTimeValue (Zeichenfolge) gibt einen DateTime-Wert zurück, wenn eine Zeichenfolge angegeben wird, die ein Datum und eine Uhrzeit darstellt. Dabei werden für diese Zeichenfolge verschiedene Formate unterstützt. DateTimeValue (JJJJ, MM, TT) gibt einen DateTime-Wert zurück, wenn numerische Argumente für Jahr, Monat und Tag angegeben werden. Weist dem Uhrzeit-Bestandteil des zurückgegebenen DateTime-Wertes die Zeit 12:00:00 am zu. DateTimeValue (JJJJ, MM, TT, HH, MM, SS) gibt einen DateTime-Wert zurück, wenn numerische Argumente für Jahr, Monat, Tag, Stunde, Minute und Sekunde angegeben werden. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DateTimeValue ("10/4/1999 10:20am") Gibt den DateTime-Wert 4. Oktober 1999, 10:20:00 am zurück. DateTimeValue (12.5) Gibt den DateTime-Wert 11. Januar 1900, 12:00:00 zurück. DateTimeValue (-2.5) Gibt den DateTime-Wert 27. Dezember 1899, 12:00:00 pm zurück. DateTimeValue (CDate ("Dec. 25, 1999")) Gibt den DateTime-Wert 25. Dezember 1999, 12:00:00 zurück. DateTimeValue (CDate ("November 10, 1999"), CTime("12:20am")) Gibt den DateTime-Wert 10. November 1999, 00:20:00 zurück. DateTimeValue (1945, 8, 21, 0, 0, 0) Gibt den DateTime-Wert 21. August 1945, 00:00:00 zurück. DateTimeValue (1945, 8, 21, 10, 0, 0) Gibt den DateTime-Wert 21. August 1945, 10:00:00 zurück. Anmerkungen Mit der Funktion IsDateTime können Sie prüfen, ob ein String-Argument in einen DateTime-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. Crystal Reports-Anwenderhandbuch 371 8 8 Funktionen Datum/Uhrzeit DateSerial (Jahr, Monat, Tag) Basic- und Crystal-Syntax. Argumente • Jahr ist eine ganze Zahl oder ein numerischer Ausdruck, zur Angabe eines Jahres, z. B. 1996. 1996. • Monat ist eine ganze Zahl oder ein numerischer Ausdruck zur Angabe eines Monats, z. B. 12 für Dezember. • Tag ist eine ganze Zahl oder ein numerischer Ausdruck zur Angabe eines Monatstages, z. B. 5. Rückgabewert Date-Wert Aktion DateSerial gibt für die festgelegten Jahres-, Monats- und Tagesangaben einen Date-Wert zurück. Diese Funktion kann auch relative Datumsangaben verarbeiten. Typische Verwendungen DateSerial kann anstelle von CDate oder DateValue dazu verwendet werden, aus Angaben für Jahr, Monat und Tag einen Date-Wert zu erstellen. Eine nützliche Eigenschaft von DateSerial besteht darin, dass das Argument Monat nicht von 1 bis 12 angegeben werden und das Argument Tag nicht im zulässigen Bereich für die Zahlenangabe von Monatstagen liegen muss. Solche Datumsangaben werden als relative Datumsangaben interpretiert und von DateSerial in einen gültigen Date-Wert umgewandelt. Dadurch lassen sich viele Datumsberechnungen durchführen, ohne auf Sonderfälle wie Jahresende, Schaltjahre und die Anzahl von Tagen in den einzelnen Monaten achten zu müssen. Einige typische Anwendungen dieser Funktion finden Sie in den folgenden Beispielen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DateSerial (1999, 6, 15) DateSerial (2000, 1 - 7, 15) DateSerial (1999, 1, 166) Sie geben alle den 15. Juni 1999 zurück. Im zweiten Beispiel wird ermittelt, dass 7 Monate vor dem 1. Januar 2000 der 15. Juni 1999 liegt. Im dritten Beispiel wird ermittelt, dass der 166. Tag des Jahres 1999 der 15. Juni 1999 ist. 372 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit DateSerial (1996 + 12, 2 + 13, 29 + 14) Gibt den 12. April 2002 zurück. Dies bedeutet, dass 12 Jahre, 13 Monate und 14 Tage nach dem 29. Februar 1996 der 12. April 2009 kommt. Angenommen, Sie möchten den letzten Tag des Monats für das DateTimeFeld {Aufträge.Auftragsdatum} ermitteln. Beachten Sie, dass in der Berechnung DateSerial(Year(d), Month(d) + 1, 1) den ersten Tag des Monats nach {Aufträge.Auftragsdatum} darstellt und davon 1 Tag abgezogen wird, um das gewünschte Ergebnis zu erhalten: Rem Basic-Syntax Dim d d = {Aufträge.Auftragsdatum} formula = DateSerial(Year(d), Month(d) + 1, 1 - 1) //Crystal-Syntax Local DateTimeVar d := {Aufträge.Auftragsdatum}; DateSerial(Year(d), Month(d) + 1, 1 - 1) Es ist häufig nützlich, DateSerial mit anderen Datumsfunktionen zu kombinieren. Wenn Sie beispielsweise das Datum des letzten Freitags des Monats für das Feld {Aufträge.Auftragsdatum} berechnen möchten, können Sie wie folgt vorgehen. Bei der Berechnung wird zuerst der letzte Tag des Monats ermittelt und danach die Anzahl der Tage bis zum letzten Freitag abgezogen. Da manche Monate fünf Freitage haben (Beispiel: Oktober 1999) und andere nur vier (Beispiel: November 1999), ist dieser Ansatz leichter zu handhaben als vom ersten Tag des Monats auszugehen. Rem Basic-Syntax Dim d1, d2 d1 = {Aufträge.Auftragsdatum} d2 = DateSerial(Year(d1), Month(d1) + 1, 1 - 1) formula = d2 - (WeekDay(d2, crFriday) - 1) //Crystal-Syntax Local DateTimeVar d1 := {Aufträge.Auftragsdatum}; Local DateVar d2; d2 := DateSerial(Year(d1), Month(d1) + 1, 1 - 1); d2 - (DayOfWeek(d2, crFriday) - 1) Gibt den Date-Wert 27.03.98 zurück, wenn {Aufträge.Auftragsdatum} der 18. März 1998 ist. Im nächsten Beispiel wird das Datum des zweiten Dienstags des Monats drei Monate vor {Aufträge.Auftragsdatum} zurückgegeben: Rem Basic-Syntax Dim d1, d2 d1 = {Aufträge.Auftragsdatum} d2 = DateSerial(Year(d1), Month(d1) - 3, 1) formula = d2 + (2 * 7 - (WeekDay(d2, crTuesday) - 1)) Crystal Reports-Anwenderhandbuch 373 8 8 Funktionen Datum/Uhrzeit //Crystal-Syntax Local DateTimeVar d1 := {Aufträge.Auftragsdatum}; Local DateVar d2 := DateSerial(Year(d1), Month(d1) - 3, 1); d2 + (2 * 7 - (DayOfWeek(d2, crTuesday) - 1)) Gibt den Date-Wert 9. Dezember 1997 zurück, wenn {Aufträge.Auftragsdatum} der 18. März 1998 ist. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. TimeSerial (Stunden, Minuten, Sekunden) Basic- und Crystal-Syntax. Argumente • Stunden ist eine Zahl oder ein numerischer Ausdruck und gibt die Stunde an. • Minuten ist eine Zahl oder ein numerischer Ausdruck und gibt die Anzahl der Minuten an. • Sekunden ist eine Zahl oder ein numerischer Ausdruck und gibt die Anzahl der Sekunden an. Rückgabewert Time-Wert Aktion TimeSerial gibt einen Time-Wert zurück, wenn Argumente für Stunden, Minuten und Sekunden angegeben werden. Typische Verwendungen TimeSerial kann anstelle von CTime oder TimeValue dazu verwendet werden, aus Angaben für Stunden, Minuten und Sekunden einen Time-Wert zu erstellen. Eine nützliche Eigenschaft von TimeSerial besteht darin, dass die Argumente Stunden, Minuten und Sekunden nicht innerhalb normalerweise zulässiger Bereiche liegen müssen. Dies bedeutet, dass die Stundenangabe nicht im Bereich von 0 bis 24 und die Minuten- und Sekundenangabe nicht im Bereich 0 bis 59 liegen muss. Solche Uhrzeitangaben werden als relative Zeitangaben interpretiert, und TimeSerial generiert daraus einen gültigen Time-Wert. Damit lassen sich viele Berechnungen mit Zeitangaben einfach durchführen. 374 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: TimeSerial (18, 45, 0) TimeSerial (22 -3, 15 -30, 0) Beide geben dieselbe Zeit, 6:45 pm, zurück. Im zweiten Beispiel wird errechnet, dass 3 Stunden und 30 Minuten vor 10:15 pm die Zeit 6:45 pm liegt. TimeSerial (10 + 20, 30 + 55, 0) Gibt 07:25 zurück. Dies bedeutet, dass 20 Stunden und 55 Minuten nach 10:30 die Zeit 7:25 (des nächsten Tages) liegt. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Visual Basic. Es besteht jedoch dann ein Unterschied, wenn die relativen Zeitangaben mehr als einen Tag umfassen. Zum Beispiel gibt in Crystal Reports TimeSerial (1, 0 - 180, 0) gibt 10:00 pm zurück. Dies bedeutet, dass 180 Minuten vor 1:00 am die Zeit 10:00 pm liegt. Derselbe Funktionsaufruf würde jedoch in Visual Basic 2:00 am zurückgeben. Dieser Unterschied kommt dadurch zustande, dass 180 Minuten vor 1:00 am die Uhrzeit 10:00 pm des vorigen Tages beschreibt und solche Fälle in Visual Basic anders verarbeitet werden. IsTime Basic- und Crystal-Syntax. Syntax der Argumente • • IsTime (Zeichenfolge) IsTime (Zahl) Argumente • Zeichenfolge ist ein String-Wert oder -Ausdruck, der darauf geprüft wird, ob er in einen Time-Wert umgewandelt werden kann. Es werden viele verschiedene Formate akzeptiert. • Zahl ist ein Zahlenwert oder ein numerischer Ausdruck, der darauf geprüft wird, ob er in einen Time-Wert umgewandelt werden kann. Zahl kann positiv oder negativ und ein Dezimalwert sein. Dieser Wert wird in Einheiten von 24 Stunden interpretiert. In diesem System ist 0 Mitternacht und 0,5 entspricht 12 Uhr mittags. Crystal Reports-Anwenderhandbuch 375 8 8 Funktionen Datum/Uhrzeit Rückgabewert Boolescher Wert (Wahr oder Falsch). Aktion IsTime gibt True (Wahr) zurück, wenn der angegebene String- oder Zahlenwert in eine gültige Zeit umgewandelt werden kann, und gibt andernfalls False (Falsch) zurück. Typische Verwendung Wenn Sie einen String-Wert mit den Funktionen CTime oder TimeValue in eine Zeit umwandeln möchten, sollten Sie zuerst mit der Funktion IsTime prüfen, ob die Konvertierung erfolgreich sein wird. Ein Beispiel für diesen Typ finden Sie im Abschnitt mit den Beispielen unter IsDate. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: IsTime ("10:30 pm") Gibt True (Wahr) zurück. IsTime ("September 30,1999") Gibt True (Wahr) zurück, da das angegebene String-Argument als 12:00:00 am interpretiert wird. IsTime (3.2) Gibt ebenfalls True (Wahr) zurück, da das angegebene Zahlenargument als 3,2 Einheiten von 24 Stunden, also als 4:48:00am, interpretiert wird. Anmerkungen Diese Funktion arbeitet ähnlich wie die Funktion IsDate in Visual Basic, verwendet jedoch hauptsächlich den Zeittyp von Crystal Report, in dem nur Time-Werte enthalten sein können. IsDate Basic- und Crystal-Syntax. Syntax der Argumente • • 376 IsDate (Zeichenfolge) IsDate (Zahl) Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Argumente • Zeichenfolge ist ein String-Wert oder -Ausdruck, der darauf geprüft wird, ob er in einen Date-Wert umgewandelt werden kann. Es werden viele verschiedene Formate akzeptiert. • Zahl ist ein Zahlenwert oder ein numerischer Ausdruck, der darauf geprüft wird, ob er in einen Date-Wert umgewandelt werden kann. Zahl kann positiv oder negativ und ein Dezimalwert sein. Dieser Wert wird als die Anzahl der Tage ab dem 30. Dezember 1899 interpretiert. Rückgabewert Boolescher Wert (Wahr oder Falsch). Aktion IsDate gibt True (Wahr) zurück, wenn der angegebene String- oder Zahlenwert in ein gültiges Datum umgewandelt werden kann, und gibt andernfalls False (Falsch) zurück. Jedes Datum zwischen dem 1. Januar 100 und dem 31. Dezember 9999 ist gültig. Typische Verwendung Wenn Sie einen String-Wert mit den Funktionen CDate oder DateValue in ein Datum umwandeln möchten, sollten Sie zuerst mit der Funktion IsDate prüfen, ob die Konvertierung erfolgreich sein wird. Ein Beispiel dazu finden Sie unten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: IsDate ("Jan 1, 1999") Gibt True (Wahr) zurück. IsDate (100) Gibt ebenfalls True zurück, da die Zahl 100 als 100 Tage nach dem 30. Dezember 1899, also als 9. April 1900, interpretiert wird. IsDate ("Feb 29, 1999") Gibt False (Falsch) zurück, da 1999 kein Schaltjahr ist und daher die Zeichenfolge nicht in ein Datum umgewandelt werden kann. Angenommen, ein Auftragsbericht wird nach Auftragsdatum in Monate unterteilt. Die folgende Formel gibt den Date-Wert zurück, der aus dem String-Feld "Gruppenname" extrahiert wird. Wenn der Bericht ein Erste NBericht ist, kann das Feld „Gruppenname“ den Wert „Sonstige“ enthalten. Dieser Wert kann nicht in ein Datum konvertiert werden. Folglich wird IsDate dazu verwendet, einen Fehler beim Aufrufen von CDate zu vermeiden: Rem Basic-Syntax Crystal Reports-Anwenderhandbuch 377 8 8 Funktionen Datum/Uhrzeit Dim s As String s = GroupName ({Aufträge.Auftragsdatum}, "monthly") If IsDate(s) Then formula = CDate(s) Else formula = CDate(0,0,0) End If //Crystal-Syntax Local StringVar s := GroupName ({Aufträge.Auftragsdatum}, "monthly"); If IsDate(s) Then CDate(s) Else CDate(0,0,0) Gibt den Date-Wert 1. Mai 1998 zurück, wenn das Gruppenname-Feld den Wert "Mai - 1998" enthält. Gibt das Null-Datum (ein nicht ausgedruckter Date-Wert) zurück, falls das Gruppenname-Feld den Wert „Sonstige“ enthält. Anmerkungen Diese Funktion arbeitet ähnlich wie die gleichnamige Funktion in Visual Basic, verwendet jedoch hauptsächlich den Datumstyp von Crystal Reports, in dem nur Date-Werte enthalten sein können. IsDateTime Basic und Crystal syntax. Syntax der Argumente • • IsDateTime (Zeichenfolge) IsDateTime (Zahl) Argumente • Zeichenfolge ist ein String-Wert oder -Ausdruck, der darauf geprüft wird, ob er in einen DateTime-Wert umgewandelt werden kann. Es werden viele verschiedene Formate akzeptiert. • Zahl ist ein Zahlenwert oder ein numerischer Ausdruck, der darauf geprüft wird, ob er in einen DateTime-Wert umgewandelt werden kann. Zahl kann positiv oder negativ und ein Dezimalwert sein. Dieser Wert wird als die Anzahl der Tage ab dem 30. Dezember 1899 interpretiert. Rückgabewert Boolescher Wert (Wahr oder Falsch). 378 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Aktion IsDateTime gibt True (Wahr) zurück, wenn der angegebene String- oder Zahlenwert in einen gültigen DateTime-Wert umgewandelt werden kann, und gibt andernfalls False (Falsch) zurück. Jeder DateTime-Wert zwischen dem 1. Januar 100 und dem 31. Dezember 9999 ist gültig. Typische Verwendung Wenn Sie einen String-Wert mit den Funktionen CDateTime oder DateTimeValue in einen DateTime-Wert umwandeln möchten, sollten Sie zuerst mit der Funktion IsDateTime prüfen, ob die Konvertierung erfolgreich sein wird. Ein Beispiel für diesen Typ finden Sie im Abschnitt mit den Beispielen unter IsDate. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: IsDateTime ("September 30, 1999") Gibt True (Wahr) zurück, da die angegebene Zeichenfolge „September 30, 1999“ als DateTime-Wert 30. September 1999, 12:00:00 am interpretiert wird. IsDateTime (-100,2) Gibt True (Wahr) zurück, da das angegebene Zahlenargument als DateTime-Wert 20. September 1899, 7:12:00 pm interpretiert wird. Anmerkungen Diese Funktion arbeitet ähnlich wie die Funktion IsDate von Visual Basic. Year (x) Basic- und Crystal-Syntax. Argumente • x ist ein Date-Wert oder ein DateTime-Wert. Rückgabewert Ganze Zahl Aktion Year ermittelt das Jahr aus einem Datum und gibt es als Zahl zurück. Crystal Reports-Anwenderhandbuch 379 8 8 Funktionen Datum/Uhrzeit Typische Verwendungen Verwenden Sie diese Funktion immer dann, wenn Sie eine in eine Zahl umgewandelte Jahresangabe in Berechnungen oder Vergleichen verwenden möchten. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Year({Tabelle.LETZTE RECHNUNG IN}) Gibt 1989 zurück, wenn die letzte Rechnung 1989 gestellt wurde. If Year({Tabelle.LETZTE AKTUALISIERUNG}) < 1993 Then "PS: Sie verpassen viele Vorteile der neuen verbesserten Version." Else "" Druckt ein PS für die Kunden, die vor 1988 das letzte Mal aktualisiert haben, und druckt nichts für die Kunden, deren letzte Aktualisierung noch nicht so lange zurückliegt. Year(CDateTime(1996, 3, 3, 10, 33, 20)) Gibt 1996 zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Month (x) Basic- und Crystal-Syntax. Argumente • x ist ein Date-Wert oder ein DateTime-Wert. Rückgabewert Ganze Zahl Aktion Month extrahiert die Monatskomponente eines Datums und wandelt sie in eine Zahl um. 380 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Typische Verwendungen Verwenden Sie diese Funktion, wenn Sie nur die Monatskomponente eines Datums benötigen. Wenn Sie z. B. Zahlungen kontrollieren, die in ein bestimmtes Jahr fallen, sind Sie nur an den Monaten interessiert, an denen die Zahlungen eingetroffen sind. Tages- und Jahresangaben wären nicht notwendig. Sie können mit der Funktion „Month“ auch die jeweilige Monatskomponente eines Datums ermitteln und in eine Zahl umwandeln, wenn Sie die Nummer des Monats für eine Kalkulation benötigen (z. B. Month({Datei.OKTZAHLUNG}) - Month({Datei.SEPZAHLUNG}). Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Month({Datei.RECHNUNG}) - Month({Datei.ZAHLUNG}) Berechnet die Anzahl der zwischen Rechnung und Zahlung liegenden Monate. If Month({Datei.LETZER EINKAUF}) < 6 Then "Zweifellos werden Ihnen einige Neuerungen auffallen, seit Sie zuletzt in unserem Geschäft waren." Else "Wie Sie sicherlich bemerkt haben, gibt es in unserem Geschäft seit kurzem viele Änderungen." Diese Formel druckt „Zweifellos werden Ihnen einige Neuerungen auffallen, seit Sie zuletzt in unserem Geschäft waren.“ für Kunden, deren letzter Kauf im Mai oder früher erfolgte. Für Kunden, die später als Mai gekauft haben, druckt diese Formel „Wie Sie sicherlich bemerkt haben, präsentiert sich Ihnen unser Geschäft seit kurzem mit einigen Neuerungen.“ Kommentare Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Day (x) Basic- und Crystal-Syntax. Argumente • x ist ein Date-Wert oder ein DateTime-Wert. Rückgabewert Ganze Zahl (der Tag des Monats) Crystal Reports-Anwenderhandbuch 381 8 8 Funktionen Datum/Uhrzeit Aktion Day ermittelt den Tag aus einem Date- oder DateTime-Wert und gibt eine ganze Zahl zurück. Typische Verwendungen Verwenden Sie diese Funktion, wenn Sie nur die Tageskomponente eines Date- oder eines DateTime-Wertes benötigen. Wenn Sie z.B. Zahlungen kontrollieren, die in einen bestimmten Monat fallen, sind Sie nur an den Tagen interessiert, an denen die Zahlungen eingetroffen sind; Informationen über Monat und Jahr sind überflüssig. Wenn Sie den Monatstag für eine numerische Berechnung benötigen (Beispiel: Day({Tabelle.OKTZAHLUNG}) Day ({Tabelle.SEPZAHLUNG})), können Sie mit der Day-Funktion den Monatstag ermitteln und in eine Zahl umwandeln. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Day({Datei.LETZTE RECHNUNG}) Gibt 10 zurück, wobei das Datum der letzten Rechnung der 10. des Monats ist. If Day({Datei.LETZTE ZAHLUNG}) < 15 Then "Überfällig" Else "" Wenn der Tag der letzten Zahlung niedriger als 15 ist, soll „Überfällig“ gedruckt werden, anderenfalls nichts. Day(CDateTime(1996, 3, 3, 10, 33, 20)) Gibt 3 zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. WeekDay WeekDay und DayOfWeek sind gleichwertige Funktionen. WeekDay wird in der Basic-Syntax bevorzugt, DayOfWeek dagegen in der Crystal-Syntax. Syntax der Argumente • • 382 WeekDay (Datum) WeekDay (Datum, ersterWochentag) Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Argumente • Datum ist ein Date- oder DateTime-Wert, für den die Zahl des Wochtags zurückgegeben werden soll. • "ersterWochentag" ist eine optionale Zahl, die den ersten Tag der Woche angibt. Weitere Informationen finden Sie unter DayOfWeek. Wenn diese Angabe weggelassen wird, wird Sonntag verwendet. Rückgabewert Zahlenwert Aktion WeekDay gibt eine Zahl n zurück, die den n-ten Wochentag angibt, wenn ein Date- oder DateTime-Wert angegeben wird. Typische Verwendung WeekDay wird häufig zum Durchführen von Datumsberechnungen verwendet, bei denen bestimmte Wochentage wie beispielsweise die Wochenenden eine besondere Rolle spielen. Anwendungsbeispiele für diese Funktion finden Sie im Abschnitt mit den Beispielen zu DateSerial (Jahr, Monat, Tag). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: WeekDay (#Oct. 4, 1999#) Gibt 2 zurück, da der 4. Oktober 1999 ein Montag ist und Sonntag als erster Tag der Woche festgelegt ist. WeekDay (#Oct. 4, 1999#, crMonday) Gibt 1 zurück, da der 4. Oktober 1999 ein Montag ist, und Montag als erster Tag der Woche festgelegt ist. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. DayOfWeek DayOfWeek und WeekDay sind gleichwertige Funktionen. WeekDay wird in der Basic-Syntax bevorzugt, DayOfWeek dagegen in der Crystal-Syntax. Syntax der Argumente • • DayOfWeek (Datum) DayOfWeek (Datum, ersterWochentag) Crystal Reports-Anwenderhandbuch 383 8 8 Funktionen Datum/Uhrzeit Argumente • x ist ein Date- oder DateTime-Wert. Rückgabewert Ganze Zahl Aktion DayOfWeek ermittelt die Tageskomponente aus einem Datum, ermittelt den Wochentag, auf den das Datum fällt, und wandelt den Wochentag in eine Zahl um (1 bis 7). Optional kann für den ersten Tag der Woche ein numerischer Wert festgelegt werden. Wenn Sie keinen Tag angeben, wird der Sonntag als erster Tag der Woche festgelegt. Typische Verwendungen Verwenden Sie diese Funktion immer dann, wenn Sie in einem numerischen Ausdruck die Nummer eines Wochentages benötigen. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: (DayOfWeek(Date(1990,10,1) Gibt 2 zurück, wo der 1. Oktober 1990 ein Montag ist. If DayOfWeek({Aufträge.AUFTRAGSDATUM}) = 3 Then "Helga" Else "Claudia" So kann z.B. ermittelt werden, ob am 8. September 1990 Helga oder Claudia zuständig war. If DayOfWeek({Aufträge.AUFTRAGSDATUM}) = 7 Then "Samstag" Else "" Gibt Samstag zurück, wenn DayOfWeek 7 ist. Ansonsten wird eine leere Zeichenfolge zurückgegeben. DayOfWeek(#Sept. 24, 1999#, crMonday) Gibt 5 zurück, wenn der 24. September 1999 ein Freitag ist und Montag als erster Tag der Woche festgelegt ist. Anmerkungen Wenn Sie den jeweiligen Wochentag in der Crystal-Syntax als Wort drucken möchten, können Sie folgende Formel verwenden: ["So", "Mo", "Di",...] [DayOfWeek(Date)] 384 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Richtet ein Array (["So",...]) ein und benutzt die Nummer des Wochentags (So = 1, Sa = 7), um den gesuchten Tagesnamen aus dem Bereich zu wählen. Hour (x) Basic- und Crystal-Syntax. Argumente • x ist ein Date- oder DateTime-Wert. Rückgabewert Ganze Zahl Aktion Die Funktion Hour ermittelt aus einem Time-Wert den Stundenanteil und gibt diesen als ganze Zahl zurück. Typische Verwendungen Verwenden Sie diese Funktion immer dann, wenn Sie nur den Stundenanteil eines Time-Wertes anzeigen oder Berechnungen ausführen möchten, die auf Stunden basieren. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Hour(CTime(10, 20, 22)) Gibt 10 zurück. Hour(CTime(10, 00, 30)) - Hour(CTime(6, 00, 00)) Gibt 4 zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Minute (x) Basic- und Crystal-Syntax. Argumente • x ist ein Date- oder DateTime-Wert. Crystal Reports-Anwenderhandbuch 385 8 8 Funktionen Datum/Uhrzeit Rückgabewert Ganze Zahl Aktion Gibt nur die Minuten eines Time-Wertes zurück. Typische Verwendungen Verwenden Sie diese Funktion immer dann, wenn Sie Zeitberechnungen ausführen müssen, bei denen nur die Minuten bestimmter Time-Werte zu berücksichtigen sind. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Minute(CTime(10, 20, 22) Gibt 20 zurück. TimeVar Lieferzeitpunkt := CTime({Aufträge.LIEFERDATUM}); Minute(Lieferzeitpunkt) Gibt 30 zurück, wenn {Aufträge.LIEFERDATUM} 1998/12/05 8:30:15 ist. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Second (x) Basic- und Crystal-Syntax. Argumente • x ist ein Date- oder DateTime-Wert. Rückgabewert Ganze Zahl Aktion Ermittelt den Sekundenteil eines angegebenen Time-Wertes. Typische Verwendungen Verwenden Sie diese Funktion immer dann, wenn Sie Zeitberechnungen ausführen müssen, bei denen nur die Sekunden bestimmter Time-Werte zu berücksichtigen sind. 386 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Second(CTime(10, 20, 22)) Gibt 22 zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. MonthName Basic- und Crystal-Syntax. Syntax der Argumente • • MonthName (Monat) MonthName (Monat, Abkürzung) Argumente • "Monat" ist eine ganze Zahl (1 bis 12), die den Monat des Jahres angibt, z. B. 1 für Januar. • "Abkürzung" ist ein optionaler boolescher Wert, der angibt, ob der Monatsname abgekürzt werden soll. Wenn diese Angabe weggelassen wird, wird der Standardwert False (Falsch) verwendet. Rückgabewert String-Wert Aktion MonthName gibt für den festgelegten Monat einen Zeichenfolgenamen zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: MonthName (4) Gibt den Zeichenfolgenwert „April“ zurück. MonthName (4, True) Gibt „April“ zurück. Crystal Reports-Anwenderhandbuch 387 8 8 Funktionen Datum/Uhrzeit Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. WeekdayName Basic- und Crystal-Syntax. Syntax der Argumente • • • WeekdayName (Wochentag) WeekdayName (Wochentag, Abkürzung) WeekdayName (Wochentag, Abkürzung, ersterWochentag) Argumente • Wochentag ist die numerische Angabe des Wochentags. Die numerischen Werte der einzelnen Tage hängen davon ab, welcher Wochentag durch das Argument firstDayOfWeek als erster Tag der Woche festgelegt wird. Wenn firstDayOfWeek weggelassen wird, wird Sonntag verwendet. • Abkürzung ist ein optionaler boolescher Wert, mit dem angegeben wird, ob der Name des Wochentags abgekürzt werden soll. Wenn diese Angabe weggelassen wird, wird der Standardwert False (Falsch) verwendet. • "ersterWochentag" ist eine optionale Zahl, die den ersten Tag der Woche angibt. Siehe Konstanten für Wochentage. Rückgabewert String-Wert Aktion WeekdayName gibt eine Zeichenfolge zurück, die den Namen des angegebenen Wochentags ausgibt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: WeekdayName (3) Gibt „Dienstag“ zurück, da als erster Tag der Woche Sonntag festgelegt ist. 388 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit WeekdayName (3, True, crMonday) Gibt „Mit“ zurück, da Abkürzung gewählt und als erster Tag der Woche Montag festgelegt ist. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Timer Basic- und Crystal-Syntax. Rückgabewert Zahlenwert Aktion Timer gibt die Anzahl der seit Mitternacht verstrichenen Sekunden zurück. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Timer Gibt 57.720 zurück, wenn die aktuelle Uhrzeit 4:02 pm ist. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. DateAdd (Intervalltyp, nIntervalle, StartDatumUhrzeit) Basic- und Crystal-Syntax. Argumente • "Intervalltyp" ist ein Zeichenfolgeausdruck, der das Zeitintervall angibt, das hinzugefügt werden soll. Folgende Werte können verwendet werden: IntervalType-Wert Beschreibung yyyy Jahr q Quartal (3-Monate) m Monat y Tag im Jahr Crystal Reports-Anwenderhandbuch 389 8 8 Funktionen Datum/Uhrzeit IntervalType-Wert Beschreibung d Tag w Wochentag ww Woche (7-Tage) h Stunde n Minute s Zweites • "nIntervalle" ist eine Zahl oder ein numerischer Ausdruck und gibt an, wie viele Intervalle hinzugefügt werden sollen. Diese Zahl kann positiv (DateTime-Werte in der Zukunft) oder negativ (DateTime-Werte in der Vergangenheit) sein. • "StartDatumUhrzeit" ist der DateTime-Wert, zu dem die Intervalle hinzugefügt werden sollen. Rückgabewert DateTime-Wert Aktion DateAdd gibt einen DateTime-Wert zurück, zu dem eine festgelegte Anzahl von Zeitintervallen hinzugefügt wurde. Typische Verwendung DateAdd dient dazu, Zeitintervalle zu einem DateTime-Wert hinzuzufügen. Die wichtigste Eigenschaft dieser Funktion liegt darin, dass der von ihr zurückgegebene DateTime-Wert immer gültig ist. DateAdd berücksichtigt beispielsweise Faktoren wie die Anzahl der Tage in den einzelnen Monaten sowie Schaltjahre. Wenn Sie Tage von einem DateTime-Wert abziehen oder hinzuaddieren möchten, können Sie dazu die Operatoren für Addition und Subtraktion anstelle von DateAdd mit dem Parameter „d“ verwenden. Allerdings verarbeitet DateAdd auch andere Intervalltypen wie z. B. das Addieren von Monaten oder Stunden zu einem DateTime-Wert. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DateAdd("d", -32, #Sept 28, 1999#) Gibt den DateTime-Wert 27.08.99 zurück. DateAdd ("m", 1, #1/31/1996#) Gibt den DateTime-Wert 29. Februar 1966 zurück. Beachten Sie, dass DateAdd nicht den ungültigen Wert 31. Februar 1996 zurückgibt. 390 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit DateAdd ("q", 17, #Sept 28, 1999#) Gibt den DateTime-Wert 28.Dezember 2003 zurück. DateAdd ("h", -400, #Sept 28, 1999#) Gibt den DateTime-Wert 11. September 1999, 8:00 am zurück. Mit anderen Worten: Dies ist das Ergebnis, wenn vom 28. September 1999, 12:00 am 400 Stunden abgezogen werden. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Um Tage zu einem DateTime-Wert zu addieren, können Sie einen der Intervalltypparameter „y“, „d“ oder „w“ verwenden. Sie haben für DateAdd alle denselben Effekt. • DateAdd gibt einen DateTime-Wert zurück, keinen Date-Wert. In bestimmten Fällen kann es erforderlich sein, diesen DateTime-Wert in einen Date-Wert zu konvertieren (z. B. wenn Sie den von DateAdd zurückgegebenen Wert einer Datumsvariablen zuweisen möchten). Verwenden Sie zum Konvertieren in einen Date-Wert die Funktion DateAdd zusammen mit der Typkonvertierungsfunktion CDate. Das folgende Beispiel gibt den Date-Wert 6. Oktober 1997 zurück: CDate(DateAdd("yyyy", -2, #October 6, 1999#)) DateDiff Basic- und Crystal-Syntax. Syntax der Argumente • • DateDiff (Intervalltyp, StartDatumUhrzeit, EndeDatumUhrzeit) DateDiff (Intervalltyp, StartDatumUhrzeit, EndeDatumUhrzeit, ersterWochentag) Argumente • "Intervalltyp" ist ein Zeichenfolgeausdruck mit dem Zeitintervall, das Sie zum Ausrechnen der Differenz zwischen startDateTime und endDateTime verwenden. Folgende Werte können verwendet werden: IntervalType-Wert Beschreibung yyyy Jahr q Quartal m Monat Crystal Reports-Anwenderhandbuch 391 8 8 Funktionen Datum/Uhrzeit IntervalType-Wert Beschreibung y Tag im Jahr d Tag („y“ und „d“ ermitteln beide die Differenz in Tagen) w Anzahl der Wochen zwischen startDateTime und endDateTime ww Anzahl der Instanzen von firstDayOfWeek zwischen StartdatumZeit und EnddatumZeit h Stunde n Minute s Zweites • "startDateTime" ist der erste DateTime-Wert, der zum Errechnen der Differenz verwendet wird. • "endDateTime" ist der zweite DateTime-Wert, der zum Errechnen der Differenz verwendet wird. • "firstDayOfWeek" ist eine optionale Konstante, mit der der erste Tag der Woche angegeben wird. Wenn diese Angabe weggelassen wird, wird crSunday verwendet. Siehe Konstanten für Wochentage. Rückgabewert Zahlenwert Aktion DateDiff gibt eine Anzahl von Zeitintervallen zwischen zwei Datumsangaben zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Verwenden Sie DateDiff mit dem Intervalltypparameter „d“ oder „y“, um die Anzahl der Tage zwischen zwei Datumsangaben zu ermitteln: DateDiff ("d", #10/7/1999#, #10/10/1999#) Gibt 3 zurück. Verwenden Sie DateDiff mit dem Intervalltypparameter „yyyy“, um die Anzahl der Jahre zwischen zwei Datumsangaben zu ermitteln. Diese Verwendung von DateDiff entspricht der Ermittlung des zeitlichen Abstands zwischen dem Jahr von endDateTime und dem Jahr von startDateTime. 392 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit DateDiff ("yyyy", #10/7/1999#, #2/10/2005#) Gibt 6 zurück. DateDiff ("yyyy", #12/31/1999#, #1/1/2000#) Gibt 1 (1 Jahr Differenz) zurück, obwohl zwischen den beiden Datumsangaben nur 1 Tag Differenz liegt. DateDiff ("yyyy", #1/1/1999#, #12/31/1999#) Gibt 0 (0 Jahre Differenz) zurück, obwohl zwischen den beiden Datumsangaben ein Abstand von 364 Tagen liegt. Angenommen, in den oben stehenden Beispielen ist das erste Datum der Tag, an dem Sie Investmentfonds gekauft haben, und das zweite Datum der Tag, an dem Sie sie verkauft haben. Das Investmentfonds-Unternehmen muss Ihnen für jedes Jahr, in dem Sie die Investmentfonds besitzen, einen Jahresbericht zuschicken. Dadurch erhalten Sie in den oben stehenden Beispielen 7, 2 bzw. 1 Jahresbericht. Verwenden Sie DateDiff mit dem Parameter „q“, um die Anzahl von Quartalen (je 3 Monate) zwischen zwei Datumsangaben zu ermitteln. DateDiff ("q", #10/6/1999#, #5/20/2003#) Gibt 14 zurück. DateDiff ("q", #3/31/1999#, #4/1/1999#) Gibt 1 zurück. Die beiden Datumsangaben befinden sich in aneinander grenzenden Quartalen. DateDiff ("q", #1/1/1999#, #3/31/1999#) Gibt 0 zurück. Die beiden Datumsangaben befinden sich im selben Quartal. Angenommen, das Investmentfonds-Unternehmen im Beispiel mit „yyyy“ hat Quartalsberichte verschickt. Dann hätte es in den oben stehenden Beispielen 15, 2 bzw. 1 Quartalsbericht verschicken müssen. Verwenden Sie DateDiff mit dem Parameter „m“, um die Anzahl der Monate zwischen zwei Datumsangaben zu ermitteln. DateDiff ("m", #3/15/1999#, #7/13/1999#) Gibt 4 zurück. Verwenden Sie DateDiff mit dem Parameter „w“, um die Anzahl der Wochen zwischen zwei Datumsangaben zu errechnen. Wenn beispielsweise startDateTime ein Dienstag ist, zählt DateDiff die Anzahl der Dienstage zwischen startDateTime und endDateTime, ohne den Dienstag von startDateTime mitzurechnen. Beachten Sie jedoch, dass endDateTime gezählt wird, wenn es ein Dienstag ist. DateDiff ("w", #10/19/1999#, #10/25/1999#) Gibt 0 zurück. Crystal Reports-Anwenderhandbuch 393 8 8 Funktionen Datum/Uhrzeit DateDiff ("w", #10/19/1999#, #10/26/1999#) Gibt 1 zurück. Verwenden Sie DateDiff mit dem Parameter „ww“, um die Anzahl der ersten Wochentage (firstDayOfWeek) zwischen zwei Datumsangaben zu errechnen. Bei der Funktion DateDiff ist „ww“ der einzige Parameter, der das Argument firstDayOfWeek benutzt. Von allen anderen Intervalltypparametern wird dieses Argument ignoriert. Wenn firstDayOfWeek zum Beispiel crWednesday ist, wird damit die Anzahl der Mittwoche zwischen startDateTime und endDateTime gezählt. startDateTime selbst wird nicht mitgezählt, selbst wenn es ein Mittwoch ist, während ein Mittwoch in endDateTime gezählt wird. Beachten Sie bei den Beispielen, dass im Jahr 1999 der 6., der 13., der 20. und der 27. Oktober auf einen Mittwoch fallen. DateDiff ("ww", #10/5/1999#, #10/29/1999#, crWednesday) Gibt 4 zurück. DateDiff ("ww", #10/6/1999#, #10/29/1999#, crWednesday) Gibt 3 zurück. DateDiff ("ww", #10/5/1999#, #10/27/1999#, crWednesday) Gibt 4 zurück. Nehmen wir beispielsweise einmal an, Sie möchten die Anzahl der Tage zwischen dem Bestelldatum und dem Versanddatum einschließlich Sonntagen und Samstagen errechnen. Rem Basic-Syntax Dim d1, d2 d1 = {Aufträge.Auftragsdatum} d2 = {Aufträge.Versanddatum} formula = DateDiff("d", d1, d2) - _ DateDiff("ww", d1, d2, crSaturday) - _ DateDiff ("ww", d1, d2, crSunday) //Crystal-Syntax Local DateTimeVar d1 := {Aufträge.Auftragsdatum}; Local DateTimeVar d2 := {Aufträge.Versanddatum}; DateDiff ("d", d1, d2) DateDiff ("ww", d1, d2, crSaturday) DateDiff ("ww", d1, d2, crSunday) Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. 394 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit DatePart Basic- und Crystal-Syntax. Syntax der Argumente • • • DatePart (Intervalltyp, EingabeDatumUhrzeit) DatePart (Intervalltyp, EingabeDatumUhrzeit, ersterWochentag) DatePart (Intervalltyp, EingabeDatumUhrzeit, ersterWochentag, ersteWochedesJahres) Argumente • intervalType ist ein String-Ausdruck, der angibt, welcher Bestandteil eines Datums zurückgegeben werden soll. Folgende Werte können verwendet werden: IntervalType-Wert Beschreibung yyyy Extrahiert das Jahr q Quarter (Ergebniswert: 1, 2, 3 oder 4) m Monat (Ergebniswert: 1 bis 12) y Tag des Jahres (1 bis 365 bzw. in Schaltjahren bis 366) d Tagbestandteil des Datums (1 bis 31) w Wochentag (1 bis 7, abhängig von firstDayOfWeek) ww Woche im Jahr (1 bis 53, wobei durch firstDayOfWeek und firstWeekOfYear die Tage der ersten Kalenderwoche des Jahres genau ermittelt werden) h Extrahiert den Stundenbestandteil des angegebenen DateTime-Wertes (0 bis 23) n Minutenbestandteil (0 bis 59) s Sekundenbestandteil (0 bis 59) • inputDateTime ist der DateTime-Wert, aus dem ein Bestandteil extrahiert wird. • firstDayOfWeek ist eine optionale Konstante, mit der der erste Tag der Woche angegeben wird. Wenn diese Angabe weggelassen wird, wird crSunday verwendet. Weitere Informationen finden Sie unter Konstanten für Wochentage. Crystal Reports-Anwenderhandbuch 395 8 8 Funktionen Datum/Uhrzeit • firstWeekOfYear ist eine optionale Konstante, mit der die erste Woche des Jahres angegeben wird. Wenn sie nicht angegeben wird, wird davon ausgegangen, dass die erste Woche diejenige Woche ist, in der der 1. Januar (crFirstJan1) enthalten ist. Siehe Konstanten für die erste Jahreswoche. Rückgabewert Zahlenwert Aktion DatePart gibt eine Zahl zurück, die ein angegebener Bestandteil eines Datums ist. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DatePart ("d", #August 15, 1999#) Gibt 15 zurück. DatePart ("m", #August 15, 1999#) Gibt 8 zurück. DatePart ("n", #10:35 am#) Gibt 35 zurück. DatePart ("q", #September 29, 1999#) Gibt 3 zurück, da der 29. September im dritten Quartal des Jahres liegt. DatePart ("ww", #September 14, 1997#) Gibt 38 zurück, da der 14. September 1997 in der 38. Woche des Jahres liegt. Angenommen, ein Unternehmen möchte zur Qualitätskontrolle auf jede Lieferung eine ID-Nummer stempeln. Diese ID-Nummer besteht aus der Auftrags-ID, einem Gedankenstrich, der Woche des Versands dieses Auftrags und den letzten zwei Ziffern der Jahresangabe. In folgender Beispielformel werden diese ID-Nummern generiert: Rem Basic-Syntax formula = CStr({Orders.Order ID}, 0, "") & "-" & _ CStr(DatePart("ww", {Aufträge.Versanddatum}), 0) & _ CStr({Aufträge.Versanddatum}, "yy") //Crystal-Syntax CStr({Aufträge.Auftrags-ID}, 0, "") & "-" & CStr(DatePart("ww", {Aufträge.Versanddatum}), 0) & CStr({Aufträge.Versanddatum}, "yy") 396 Crystal Reports-Anwenderhandbuch Funktionen Datum/Uhrzeit Gibt die Zeichenfolge „2082-3897“ zurück, wenn {Aufträge.Auftragskennung} gleich 2082 und {Aufträge.Versanddatum} der 14. September 1997 ist. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Die Funktion DatePart mit dem IntervalType-Argument „yyyy“ entspricht der Funktion Year. In ähnlicher Weise entspricht die Funktion DatePart mit dem intervalType-Argument „m“, „d“, „w“, „h“, „n“ und „s“ den Funktionen Month, Day, Weekday (oder DayOfWeek), Hour, Minute und Second. Andererseits gibt es keine einfache Alternative für die Verwendung der Funktion DatePart mit den intervalType-Argumenten „q“, „y“ und „ww“. Wenn das Intervalltypargument „w“ oder „ww“ verwendet wird, dann wird die Funktion DatePart durch das Argument firstDayOfWeek beeinflusst. Bei allen anderen intervalType-Argumenten wird dieses Argument ignoriert. Das Argument firstWeekOfYear beeinflusst die Funktion DatePart nur, wenn das intervalType-Argument „ww“ verwendet wird. Bei allen anderen intervalType-Argumenten wird dieses Argument ignoriert. Konstanten für den ersten Wochen-/Jahrestag Konstanten für Wochentage Konstanten für die Wochentageinrahmung Konstanten für die erste Jahreswoche ShiftDateTime (inputDateTime, inputTimeZone, newTimeZone) Basic- und Crystal-Syntax. Argumente • • inputDateTime – ein DateTime-Wert, der verschoben werden soll. • newTimeZone – eine "TimeZoneString", die die Zeitzone darstellt, in die inputDateTime verschoben wird. inputTimeZone – eine "TimeZoneString", die die Zeitzone von inputDateTime darstellt. Rückgabewert DateTime-Wert Crystal Reports-Anwenderhandbuch 397 8 8 Funktionen Datum/Uhrzeit Aktion Durch ShiftDateTime wird ein DateTime-Wert von einer Zeitzone in eine andere verschoben. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ShiftDateTime (DateTime (2000, 1, 1, 12, 0, 0), "EST,300,EDT", "PST,480,PDT") Gibt 01.01.2000 9:00:00 zurück In diesem Beispiel findet eine Verschiebung von EST-Sommerzeit in PSTSommerzeit, 9.00 Uhr, statt. Anmerkungen Zeitzonen werden durch TimeZoneString dargestellt, einer Zeichenfolge mit den folgenden Formaten: • "std,offset,dst,[offset];start[/time],end[/time]" Beispiel: "PST,480,PDT,-60;4.1.0/02:00,10.1.0/02:00" • "std,offset,dst,[offset]” (wenn die Zeitzone den Regeln der amerikanischen Sommerzeit (DST) unterliegt) Beispiel: "PST,480,PDT,-60" • "std,offset" (falls keine Sommerzeit verfügbar ist) Beispiel "Südafrika,-120" • "" (eine leere Zeichenfolge steht für die lokale Zeitzone, die im Betriebssystem eingestellt wurde) Syntax Beschreibung std Zeichenfolgenname der Standardzeitzone. offset Differenz von der Standardzeitzone in Minuten (Westen ist positiv). dst Zeichenfolgenname der Sommerzeit-Zeitzone. offset Optionale Sommerzeitdifferenz von der Standardzeit (standardmäßig eine Stunde mehr als die Standarddifferenz). Datum, zu dem die Sommerzeit in Kraft tritt. Das Format lautet M.W.T., was für Monat, Woche und Tag der Datumsangabe steht. W=1 entspricht der ersten und W=5 der letzten Woche des Monats. start 398 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Syntax Beschreibung time Optionale Zeit, zu der die Sommerzeit in Kraft tritt (24-StundenFormat). Der Standardwert entspricht 02:00 Uhr (in der jeweiligen Zeitzone). end Datum, zu dem die Zeitzone in die Standardzeitzone zurückgeändert wurde. Datumsbereiche Datumsbereichsfunktionen sind vorgegebene Datumsbereiche, die in Formeln verwendet werden können. WeekToDateFromSun MonthToDate YearToDate Last7Days Last4WeeksToSun LastFullWeek LastFullMonth AllDatesToToday AllDatesToYesterday AllDatesFromToday AllDatesFromTomorrow Aged0To30Days, Aged31To60Days, Aged61To90Days Over90Days Next30Days, Next31To60Days, Next61To90Days, Next91To365Days Calendar1stQtr, Calendar2ndQtr, Calendar3rdQtr, Calendar4thQtr Calendar1stHalf, Calendar2ndHalf LastYearMTD LastYearYTD WeekToDateFromSun Basic- und Crystal-Syntax. Crystal Reports-Anwenderhandbuch 399 8 8 Funktionen Datumsbereiche Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der alle Tage ab dem letzten Sonntag bis einschließlich heute umfasst. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in WeekToDateFromSun Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in folgenden Bereich fällt: letzter Sonntag bis heute. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 13.04.1995 ist. Heute = 13.04.1995 {Aufträge.AUFTRA {Aufträge.Auftragssumme} GSDATUM} Nicht im Bereich (vorheriger Samstag) 04/08/95 0 Einschließlich erstes Datum (vorheriger Sonntag) 04/09/95 1252.24 04/11/95 1597.87 04/12/95 2546.35 04/13/95 5462.21 Einschließlich letztes Datum Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. MonthToDate Basic- und Crystal-Syntax. Rückgabewert Keine 400 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Aktion Gibt einen Bereich von Date-Werten an, zu dem alle Tage vom ersten Tag des Monats bis heute gehören. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in MonthToDate Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in den folgenden Datumsbereich fällt: vom ersten Tag des Monats bis einschließlich heute. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRA GSDATUM} {Aufträge.Auftragssumme} Nicht im Bereich 03/31/98 0 Einschließlich erstes Datum 04/01/98 1252.24 04/05/98 1597.87 04/09/98 2546.35 04/10/98 5462.21 Einschließlich letztes Datum Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. YearToDate Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der alle Tage vom ersten Tag des Kalenderjahres bis heute umfasst. Crystal Reports-Anwenderhandbuch 401 8 8 Funktionen Datumsbereiche Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in YearToDate Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in den folgenden Datumsbereich fällt: vom ersten Tag des Kalenderjahres bis einschließlich heute. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRA {Aufträge.Auftragssumme} GSDATUM} Nicht im Bereich 12/31/97 0 Einschließlich erstes Datum 01/01/98 1252.24 02/28/98 1597.87 03/15/98 2546.35 04/10/98 5462.21 Einschließlich letztes Datum Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. Last7Days Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der folgende Tage enthält: die sechs vor heute liegenden Tage und heute. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in Last7Days Then {Aufträge.Auftragssumme} 402 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Else 0 Gibt die Auftragssumme zurück, wenn das Datum in den folgenden Datumsbereich fällt: einer der letzten sechs Tage bis einschließlich heute. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRA GSDATUM} {Aufträge.Auftragssumme} Nicht im Bereich 04/03/98 0 Einschließlich erstes Datum 04/04/98 1252.24 04/06/98 1597.87 04/08/98 2546.35 Einschließlich letztes 04/10/98 Datum 5462.21 Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. Last4WeeksToSun Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Datumsbereich an, der die vier Wochen vor dem letzten Sonntag umfasst. Eine Woche beginnt an einem Montag und endet an einem Sonntag. Zum Beispiel hat der September 1996 an einem Sonntag begonnen. • Wenn heute der 22. September (Sonntag) ist, beginnt Last4WeeksToSun am 26. August (Montag) und endet am 22. September (heute, Sonntag). • Wenn heute der 28. September (ein Samstag) ist, beginnt Last4WeeksToSun am 26. August (ein Montag) und endet am 22. September (dem vorhergehenden Sonntag). Crystal Reports-Anwenderhandbuch 403 8 8 Funktionen Datumsbereiche Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in Last4WeeksToSun Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in die letzten vier Wochen vor Sonntag fällt (ausführlichere Informationen finden Sie unter Aktion). Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.4.95 (Montag) ist. Heute = 10.04.1995 {Aufträge. {Aufträge. AUFTRAGSDATUM} AUFTRAGSSUMME} Nicht im Bereich 03/12/95 0 Einschließlich erstes Datum 03/13/95 1252.24 03/27/95 1597.87 04/05/95 2546.35 04/09/95 5462.21 Einschließlich letztes Datum (Sonntag vor dem aktuellen Datum) Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. LastFullWeek Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der alle Tage von Sonntag bis Samstag der vorhergehenden Woche umfasst. 404 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in LastFullWeek Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in den folgenden Datumsbereich fällt: von Sonntag bis Samstag der letzten vollständigen Woche. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRA GSDATUM} {Aufträge.Auftragssumme} Nicht im Bereich 03/28/98 0 Einschließlich erstes Datum 03/29/98 1252.24 Einschließlich letztes Datum 04/04/98 5462.21 Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. LastFullMonth Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Legt einen Bereich von Date-Werten fest, der alle Tage vom ersten bis zum letzten Tag des vorhergehenden Monats umfasst. Crystal Reports-Anwenderhandbuch 405 8 8 Funktionen Datumsbereiche Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in LastFullMonth Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum irgendeinem Datum des vorhergehenden Monats entspricht. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG SDATUM} {Aufträge.Auftragssumme} Nicht im Bereich 02/28/98 0 Einschließlich erstes Datum 03/01/98 1252.24 03/15/98 1597.87 03/27/98 2546.35 Einschließlich letztes 03/31/98 Datum 5462.21 Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. AllDatesToToday Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der jeden Tag bis zum heutigen Tag umfasst. 406 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in AllDatesToToday Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in den folgenden Datumsbereich fällt: vom frühesten gespeicherten Datum der Vergangenheit bis einschließlich heute. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Einschließlich erstes Datum (frühestes Datum im Feld) 12/10/97 1252.24 01/05/98 1597.87 03/05/98 2546.35 Einschließlich letztes Datum 04/10/98 5462.21 Nicht im Bereich 04/11/98 0 Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. AllDatesToYesterday Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der jeden Tag bis zum gestrigen Tag umfasst. AllDatesToYesterday berücksichtigt alle Date-Werte vor heute, aber nicht den heutigen Tag. Crystal Reports-Anwenderhandbuch 407 8 8 Funktionen Datumsbereiche Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in AllDatesToYesterday Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in den folgenden Datumsbereich fällt: vom frühesten gespeicherten Datum der Vergangenheit bis einschließlich gestern. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Einschließlich erstes 12/10/97 Datum (frühestes Datum im Feld) 1252.24 01/05/98 1597.87 03/05/98 2546.35 Einschließlich letztes 04/09/98 Datum 5462.21 Nicht im Bereich 0 04/10/98 Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. AllDatesFromToday Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der ab dem heutigen Tag alle in der Zukunft liegenden Date-Werte enthält, die in einem Feld gespeichert sein können. AllDatesFromToday bezieht den heutigen Tag ein. 408 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in AllDatesFromToday Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in den folgenden Datumsbereich fällt: von einschließlich heute bis zu jedem zukünftigen Datum. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAGSDA {Aufträge.Auftragssumme} TUM} Nicht im Bereich 04/09/98 0 Einschließlich erstes Datum 04/10/98 1252.24 07/08/98 1597.87 09/24/98 2546.35 10/08/98 5462.21 Einschließlich letztes Datum (spätestes Datum im Feld) Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. AllDatesFromTomorrow Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, in den alle Tage fallen, die auf den heutigen Tag folgen. AllDatesFromTomorrow berücksichtigt nicht den heutigen Tag, sondern nur alle zukünftigen Date-Werte. Crystal Reports-Anwenderhandbuch 409 8 8 Funktionen Datumsbereiche Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in AllDatesFromTomorrow Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in den folgenden Datumsbereich fällt: von morgen bis zu jedem zukünftigen Datum. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Nicht im Bereich 04/10/98 0 Einschließlich erstes Datum 04/11/98 1252.24 07/08/98 1597.87 09/24/98 2546.35 10/08/98 5462.21 Einschließlich letztes Datum (spätestes Datum im Feld) Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. Aged0To30Days, Aged31To60Days, Aged61To90Days Basic- und Crystal-Syntax. Rückgabewert Keine 410 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Aktion Gibt einen Bereich von Date-Werten an, die in einen bestimmten, vor dem aktuellen Datum liegenden Zeitraum fallen. Wenn das aktuelle Datum der 30/ 12/98 ist, gibt die Funktion Aged0To30Days den Zeitraum vom 1/12/98 bis zum aktuellen Datum an, Aged31To60Days gibt den Zeitraum vom 1/11/98 bis zum 30/11/98 und Aged61To90Days den Zeitraum vom 2/10/98 bis zum 31/10/98 an. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in Aged0To30Days Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Auftragsdatum in den folgenden Zeitraum fällt: 0 bis 30 Tage vor dem heutigen Datum. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG SDATUM} {Aufträge.Auftragssumme} Nicht im Bereich 03/10/98 0 Einschließlich erstes Datum 03/11/98 1252.24 03/15/98 1597.87 04/05/98 2546.35 Einschließlich letztes 04/10/98 Datum 5462.21 If {Aufträge.AUFTRAGSDATUM} in Aged31To60Days Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Auftragsdatum in den folgenden Zeitraum fällt: 31 bis 60 Tage vor dem heutigen Datum. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Crystal Reports-Anwenderhandbuch 411 8 8 Funktionen Datumsbereiche Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Nicht im Bereich 02/08/98 0 Einschließlich erstes Datum 02/09/98 1252.24 02/25/98 1597.87 03/05/98 2546.35 Einschließlich letztes 03/10/98 Datum 5462.21 Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. Over90Days Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der alle Tage enthält, die gegenüber dem heutigen Datum um mehr als 90 Tage zurückliegen. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in Over90Days Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Auftragsdatum in den folgenden Zeitraum fällt: mehr als 90 Tage vor dem heutigen Datum. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. 412 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Einschließlich erstes Datum (frühestes Datum im Feld) 12/10/97 1252.24 12/31/97 1597.87 01/05/98 2546.35 Einschließlich letztes Datum 01/09/98 5462.21 Nicht im Bereich 01/10/98 0 Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. Next30Days, Next31To60Days, Next61To90Days, Next91To365Days Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der ab heute (einschließlich heute) alle zu dem angegebenen Zeitraum gehörenden Tage umfasst. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in Next30Days Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum ab einschließlich heute auf einen der nächsten 30 Tage fällt. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Crystal Reports-Anwenderhandbuch 413 8 8 Funktionen Datumsbereiche Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Nicht im Bereich 04/09/98 0 Einschließlich erstes Datum 04/10/98 1252.24 04/30/98 1597.87 05/05/98 2546.35 Einschließlich letztes 05/10/98 Datum 5462.21 If {Aufträge.AUFTRAGSDATUM} in Next31To60Days Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum ab heute gesehen auf einen der nächsten 31 bis 60 Tage fällt. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Nicht im Bereich 05/10/98 0 Einschließlich erstes Datum 05/11/98 1252.24 05/30/98 1597.87 06/03/98 2546.35 06/09/98 5462.21 Einschließlich letztes Datum Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. 414 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Calendar1stQtr, Calendar2ndQtr, Calendar3rdQtr, Calendar4thQtr Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der alle Date-Werte enthält, die in das erste, zweite, dritte oder vierte Quartal des aktuellen Kalenderjahres fallen. Das erste Quartal des Kalenderjahres umfasst alle Tage vom 1. Januar bis zum 31. März. Das zweite Quartal des Kalenderjahres umfasst alle Tage vom 1. April bis zum 30. Juni. Das dritte Quartal des Kalenderjahres umfasst alle Tage vom 1. Juli bis zum 30. September. Das vierte Quartal des Kalenderjahres umfasst alle Tage vom 1. Oktober bis zum 31. Dezember. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in Calendar1stQtr Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in das erste Quartal des Kalenderjahres fällt. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG SDATUM} {Aufträge.Auftragssumme} Nicht im Bereich 12/10/97 0 01/01/97 0 01/01/98 1252.24 02/05/98 1597.87 03/15/98 2546.35 Einschließlich letztes 03/31/98 Datum 5462.21 Einschließlich erstes Datum Crystal Reports-Anwenderhandbuch 415 8 8 Funktionen Datumsbereiche Calendar1stHalf, Calendar2ndHalf Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt einen Bereich von Date-Werten an, der alle Date-Werte enthält, die in die erste bzw. in die zweite Hälfte des aktuellen Kalenderjahres fallen. Die erste Hälfte des Kalenderjahres umfasst alle Tage vom 1. Januar bis zum 30. Juni. Die zweite Hälfte des Kalenderjahres umfasst alle Tage vom 1. Juli bis zum 31. Dezember. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in Calendar1stHalf Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum in die erste Hälfte des Kalenderjahres fällt. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Nicht im Bereich 12/10/97 0 01/01/97 0 01/01/98 1252.24 03/05/98 1597.87 05/15/98 2546.35 06/30/98 5462.21 Einschließlich erstes Datum Einschließlich letztes Datum LastYearMTD Basic- und Crystal-Syntax. Rückgabewert Keine 416 Crystal Reports-Anwenderhandbuch Funktionen Datumsbereiche Aktion Gibt einen Bereich von Date-Werten an, zu dem folgende im vorhergehenden Jahr liegende Tage gehören: die Tage des aktuellen Monats bis einschließlich des Tages, der das gleiche Datum hat wie heute. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in LastYearMTD Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum einen der folgenden Tage angibt: ein beliebiger Tag im selben Monat des letzten Jahres wie der aktuelle Monat mit einem Datum, das kleiner gleich dem aktuellen Datum ist. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Nicht im Bereich 03/31/97 0 Einschließlich erstes Datum 04/01/97 1252.24 04/05/97 1597.87 04/08/97 2546.35 Einschließlich letztes 04/10/97 Datum 5462.21 Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. LastYearYTD Basic- und Crystal-Syntax. Rückgabewert Keine Crystal Reports-Anwenderhandbuch 417 8 8 Funktionen Arrays Aktion Gibt einen Bereich von Date-Werten an, zu dem folgende im vorhergehenden Jahr liegende Tage gehören: alle Tage bis einschließlich des Tages, der das gleiche Datum hat wie heute. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If {Aufträge.AUFTRAGSDATUM} in LastYearYTD Then {Aufträge.Auftragssumme} Else 0 Gibt die Auftragssumme zurück, wenn das Datum ein beliebiger Tag bis zu dem Datum des letzten Jahres ist, das kleiner gleich dem aktuellen Datum ist. Die folgende Tabelle zeigt das erste und letzte Datum im Datumsbereich, wenn heute der 10.04.1998 ist. Heute = 10.04.1998 {Aufträge.AUFTRAG {Aufträge.Auftragssumme} SDATUM} Nicht im Bereich 12/31/96 0 Einschließlich erstes Datum 01/01/97 1252.24 02/16/97 1597.87 03/24/97 2546.35 04/10/97 5462.21 Einschließlich letztes Datum Hinweis: Wenn Sie den Datumsbereich auf einem anderen als dem heutigen Datum basieren lassen möchten, müssen Sie das Datum entweder in der Windows-Systemsteuerung über die Datum/Uhrzeit-Option oder das Druckdatum des Berichts mit dem Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ ändern. Arrays Array (x,…) MakeArray (x, ...) UBound (Array) Array-Gruppenergebnisfunktionen 418 Crystal Reports-Anwenderhandbuch Funktionen Arrays Array (x,…) Basic-Syntax. Array und MakeArray (x, ...) sind gleichwertige Funktionen. Array kann allerdings nicht in der Crystal-Syntax verwendet werden, da es in dieser Syntax ein Schlüsselwort zum Deklarieren von Array-Variablen ist. Argumente • Die angegebenen Argumente sind Array-Elemente, mit denen der Array initialisiert wird. Die Anzahl von Array-Elementen kann eine beliebige Zahl zwischen 1 und 1000 sein. Alle Argumente müssen desselben Typs sein. Im Gegensatz zu Visual Basic ist eine Anzahl von 0 Elementen hier nicht möglich. Rückgabewert Array mit Werten Aktion Die Funktion Array erstellt einen Array, initialisiert ihn mit den angegebenen Array-Elementen und gibt ihn dann zurück. Typische Verwendung Erstellen und Initialisieren einer Array-Variable in der Basic-Syntax. In der Crystal-Syntax können Sie für Arrays stattdessen die Schreibweise mit den eckigen Klammern verwenden. Beispiel Das folgende Beispiel gilt für die Basic-Syntax: Im folgenden Beispiel wird ein Array für die Tage einer Woche eingerichtet, angefangen mit dem Montag: Dim week, firstDay, lastDay Woche = Array(„Montag“, „Dienstag“, „Mittwoch“, „Donnerstag“, „Freitag“, _ „Samstag“, „Sonntag“) Rem firstDay enthält "Montag" firstDay = week(1) Rem lastDay enthält "Sonntag" lastDay = week(7) formula = firstDay Gibt „Montag“ zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Crystal Reports-Anwenderhandbuch 419 8 8 Funktionen Arrays MakeArray (x, ...) Basic- und Crystal-Syntax. Array (x,…) und MakeArray sind gleichwertige Funktionen. Array kann allerdings nicht in der Crystal-Syntax verwendet werden, da es in dieser Syntax ein Schlüsselwort zum Deklarieren von Array-Variablen ist. Argumente • Die angegebenen Argumente sind Array-Elemente, mit denen der Array initialisiert wird. Die Anzahl von Array-Elementen kann eine beliebige Zahl zwischen 1 und 1000 sein. Alle Argumente müssen desselben Typs sein. Rückgabewert Array mit Werten Aktion MakeArray erstellt einen Array, initialisiert ihn mit den angegebenen ArrayElementen und gibt ihn dann zurück. Typische Verwendung Erstellen und Initialisieren einer Array-Variable (vor allem in der BasicSyntax). In der Crystal-Syntax können Sie für Arrays stattdessen die Schreibweise mit den eckigen Klammern verwenden. Beispiel Das folgende Beispiel gilt für die Crystal-Syntax: Local NumberVar Array x := MakeArray (1, 10, 100, 1000); Erstellt und initialisiert einen Array x mit fünf Zahlenelementen: 1, 1000, 10, 100, 10. UBound (Array) Basic- und Crystal-Syntax. Argument Array ist ein Array-Wert, ein Array-Ausdruck oder eine Array-Variable. Rückgabewert Zahlenwert 420 Crystal Reports-Anwenderhandbuch Funktionen Arrays Aktion UBound gibt die größte Indexzahl des angegebenen Arrays zurück. Typische Verwendung Diese Funktion wird im Allgemeinen dazu verwendet, die Größe eines Arrays zu ermitteln, bevor eine Schleifenstruktur benutzt wird, um die Elemente des Arrays systematisch zu verarbeiten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Rem Basic-Syntax Dim einfacherArray(10) As Number formula = UBound(einfacherArray) //Crystal-Syntax Local NumberVar Array einfacherArray; Redim einfacherArray[10]; UBound(einfacherArray) Gibt 10 zurück. Rem Basic-Syntax Dim DatumArray () As Date DatumArray = Array (CDate(#12/25/1998#), CDate(#12/24/ 1999#)) formula = UBound(DatumArray) //Crystal-Syntax Local DateVar Array DatumArray; DatumArray := [CDate(#12/25/1998#), CDate(#12/24/1999#)]; UBound (DatumArray) Gibt 2 zurück. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Hinweis: Im Gegensatz zu Visual Basic werden in Crystal Reports nur eindimensionale Arrays unterstützt. Außerdem beginnen ArrayTeilzeichenfolgen in Crystal Reports bei 1 statt bei 0, der Standardeinstellung in Visual Basic. • UBound gibt bei nicht initialisierten Array-Variablen eine 1 zurück, gibt jedoch eine Fehlermeldung aus, wenn versucht wird, eine nichtinitialisierte Array-Variable zu verarbeiten. Dies liegt daran, dass Crystal Reports zurzeit keine Arrays mit Null-Elementen unterstützt. Um dieses Problem zu vermeiden, sollten Sie Ihre Array-Variablen stets initialisieren. Crystal Reports-Anwenderhandbuch 421 8 8 Funktionen Bereiche Initialisieren Sie beispielsweise globale Array-Variablen in einer Formel, die im Kopfbereich des Berichts positioniert wird, und lokale ArrayVariablen innerhalb der Formel selbst. Array-Gruppenergebnisfunktionen Die folgenden Funktionen enthalten eine Überladung für ein Array: • • • • • • • • • • Average Count DistinctCount Maximum Minimum PopulationStdDev PopulationVariance StdDev Sum Variance Bereiche Mit Hilfe dieser Funktionen können Sie ermitteln, mit welcher Bereichsart Sie arbeiten. Alle Funktionen akzeptieren Einzelbereichs- oder Bereichsarrayargumente und geben ein boolesches Ergebnis zurück. So gibt HasLowerBound beispielsweise True zurück, wenn der verwendete Bereich über eine Untergrenze verfügt, oder False, wenn der Bereich keine Untergrenze hat. HasLowerBound (x) HasUpperBound (x) IncludesLowerBound (x) IncludesUpperBound (x) HasLowerBound (x) Diese Funktion kann sowohl in Formeln von Basic- und Crystal-Syntax als auch in benutzerdefinierten Funktionen verwendet werden. Argumente • 422 x kann ein Einzelbereich oder ein Bereichsarray sein. Crystal Reports-Anwenderhandbuch Funktionen Bereiche Rückgabewert Boolescher Wert Aktion HasLowerBound gibt True (Wahr) zurück, wenn der Bereich nicht die Form „Is<a“ oder „Is<=a“ hat. HasLowerBound gibt für jeden Array True (Wahr) zurück, wenn HasLowerBound für jedes Element im Array mit True (Wahr) ausgewertet wird. Typische Verwendungen Sollte verwendet werden, um festzustellen, ob ein Datenbereich oder ein Bereichsarray über eine untere Grenze verfügt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: HasLowerBound (Is>5) Gibt True (Wahr) zurück. HasLowerBound (Is<=8) Gibt False zurück. Ein Beispiel zur Vorgehensweise, wenn Sie die Bereichsart nicht im Voraus kennen, finden Sie unter den Ausführungen zu den benutzerdefinierten Funktionen cdFormatNumberRange, cdFormatDateRange und cdFormatStringRange. Sie finden diese Funktionen im BusinessObjects Enterprise Repository. HasUpperBound (x) Diese Funktion kann sowohl in Formeln von Basic- und Crystal-Syntax als auch in benutzerdefinierten Funktionen verwendet werden. Argumente • x kann ein Einzelbereich oder ein Bereichsarray sein. Rückgabewert Boolescher Wert Aktion Gibt True (Wahr) zurück, wenn der Bereich nicht die Form „Is>a“ oder „Is>=a“ aufweist. HasUpperBound gibt für jeden Array True (Wahr) zurück, wenn HasUpperBound für jedes Element im Array mit True (Wahr) ausgewertet wird. Crystal Reports-Anwenderhandbuch 423 8 8 Funktionen Bereiche Typische Verwendungen Sollte verwendet werden, um festzustellen, ob ein Datenbereich oder ein Bereichsarray über eine obere Grenze verfügt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: HasUpperBound (Is<5) Gibt True (Wahr) zurück. HasUpperBound (Is>=7) Gibt False zurück. Ein Beispiel zur Vorgehensweise, wenn Sie die Bereichsart nicht im Voraus kennen, finden Sie unter den Ausführungen zu den benutzerdefinierten Funktionen cdFormatNumberRange, cdFormatDateRange und cdFormatStringRange. Sie finden diese Funktionen im BusinessObjects Enterprise Repository. IncludesLowerBound (x) Diese Funktion kann sowohl in Formeln von Basic- und Crystal-Syntax als auch in benutzerdefinierten Funktionen verwendet werden. Argumente • x kann ein Einzelbereich oder ein Bereichsarray sein. Rückgabewert Boolescher Wert Aktion Gibt True (Wahr) für Bereiche in der Form „a To b“, „a To_ b“ und „Is>=b“ zurück. IncludesLowerBound gibt für jeden Array True (Wahr) zurück, sofern der Bereich das unterste Element (IncludesLowerBound) einschließt. Typische Verwendungen Sollte verwendet werden, um festzustellen, ob ein Datenbereich oder ein Bereichsarray den unteren Grenzwert einschließt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: IncludesLowerBound (2 To_ 2) Gibt True (Wahr) zurück. 424 Crystal Reports-Anwenderhandbuch Funktionen Bereiche IncludesLowerBound (Is<10) Gibt False zurück. Ein Beispiel zur Vorgehensweise, wenn Sie die Bereichsart nicht im Voraus kennen, finden Sie unter den Ausführungen zu den benutzerdefinierten Funktionen cdFormatNumberRange, cdFormatDateRange und cdFormatStringRange. Sie finden diese Funktionen im BusinessObjects Enterprise Repository. IncludesUpperBound (x) Diese Funktion kann sowohl in Formeln von Basic- und Crystal-Syntax als auch in benutzerdefinierten Funktionen verwendet werden. Argumente • x kann ein Einzelbereich oder ein Bereichsarray sein. Rückgabewert Boolescher Wert Aktion Gibt True (Wahr) für Bereiche in der Form „a To b“, „a _To b“ und „Is<=a“ zurück. IncludesUpperBound gibt für jeden Array True (Wahr) zurück, sofern der Bereich das oberste Element (IncludesUpperBound) einschließt. Typische Verwendungen Sollte verwendet werden, um festzustellen, ob ein Datenbereich oder ein Bereichsarray den oberen Grenzwert einschließt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: IncludesUpperBound (2 _To 3) Gibt True (Wahr) zurück. IncludesUpperBound (Is>=9) Gibt False zurück. Ein Beispiel zur Vorgehensweise, wenn Sie die Bereichsart nicht im Voraus kennen, finden Sie unter den Ausführungen zu den benutzerdefinierten Funktionen cdFormatNumberRange, cdFormatDateRange und cdFormatStringRange. Sie finden diese Funktionen im BusinessObjects Enterprise Repository. Crystal Reports-Anwenderhandbuch 425 8 8 Funktionen Typkonvertierung Typkonvertierung Mit diesen Funktionen können Sie Daten in andere Datentypen konvertieren. CBool (Zahl oder Währung) CCur CDbl CStr CDate CTime CDateTime CBool (Zahl oder Währung) Basic- und Crystal-Syntax. Argument Ein einzelnes Argument, das entweder ein Zahlenwert oder -ausdruck oder ein Currency-Wert oder -ausdruck sein kann. Rückgabewert Boolescher Wert Aktion CBool gibt True (Wahr) zurück, wenn das Argument positiv oder negativ, aber nicht 0 ist, und gibt False (Falsch) zurück, wenn es 0 ist. Beispiel Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CBool({Artikel.NETTOUMSATZ}) Gibt True (Wahr) zurück, wenn der Nettoumsatz zu- oder abgenommen hat, und gibt False (Falsch) zurück, wenn der Nettoumsatz 0 ist. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. 426 Crystal Reports-Anwenderhandbuch Funktionen Typkonvertierung CCur Basic- und Crystal-Syntax. Syntax der Argumente • • CCur (Zahl oder Währung) CCur (Zeichenfolge) Argumente CCur (Zahl oder Währung) Zahl bzw. Währung enthält einen Zahlenwert oder einen numerischen Ausdruck bzw. einen Currency-Wert oder ausdruck. CCur (Zeichenfolge) Zeichenfolge ist ein String-Wert oder ein String-Ausdruck. Rückgabewert Currency-Wert Aktion CCur gibt einen Currency-Wert zurück, der durch Konvertieren des angegebenen Number-, Currency- oder String-Arguments in einen CurrencyWert erstellt wird. Wenn die Konvertierung nicht möglich ist, wird eine Fehlermeldung ausgegeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CCur (200.20) In der Crystal-Syntax entspricht dies dem Ausschreiben von 200,20 €. In der Basic-Syntax stellt CCur (200,20) die Möglichkeit dar, einen Currency-Wert von 200,20 direkt zu erstellen. CCur ("$200.20") Gibt den Currency-Wert CCur (200.20) zurück, wenn der String-Wert „$200.20“ angegeben wird. CCur ("zweihundert ") Verursacht einen Fehler. Mit der Funktion CCur kann die Zeichenfolge „zweihundert €“ nicht in einen Currency-Wert umgewandelt werden. Crystal Reports-Anwenderhandbuch 427 8 8 Funktionen Typkonvertierung Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. • Mit der Funktion IsNumeric (Zchnflge) (oder NumericText (Zchnflge)) können Sie prüfen, ob ein String-Argument in einen Currency-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. • In der Crystal-Syntax können Sie den Operator In-Währung-Operator anstelle von CCur verwenden, um Zahlenwerte in Currency-Werte zu konvertieren. CDbl Basic- und Crystal-Syntax. CDbl und ToNumber sind gleichwertige Funktionen. Syntax der Argumente • • CDbl (Zahl oder Währung) CDbl (Zeichenfolge) Argumente 428 CDbl (Zahl oder Währung) Zahl bzw. Währung enthält einen Zahlenwert oder einen numerischen Ausdruck bzw. einen Currency-Wert oder ausdruck. CDbl (Zeichenfolge) Zeichenfolge ist ein String-Wert oder ein String-Ausdruck. Crystal Reports-Anwenderhandbuch Funktionen Typkonvertierung Rückgabewert Zahlenwert Aktion CDbl gibt einen Zahlenwert zurück, der durch Konvertieren des angegebenen Number-, Currency- oder String-Arguments in einen Zahlenwert erstellt wird. Wenn die Konvertierung nicht möglich ist, wird eine Fehlermeldung ausgegeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CDbl ({Aufträge.Auftragssumme}) Gibt den in einen Zahlenwert konvertierten Wert des Währungsfeldes {Aufträge.Auftragssumme} zurück. CDbl ("$120.20") Gibt den Zahlenwert von 120,2 zurück. Anmerkungen Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Mit der Funktion IsNumeric (Zchnflge) (oder NumericText (Zchnflge)) können Sie prüfen, ob ein String-Argument in einen Currency-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. Crystal Reports-Anwenderhandbuch 429 8 8 Funktionen Typkonvertierung CStr Basic- und Crystal-Syntax. CStr und ToText sind gleichwertige Funktionen. Syntax der Argumente • • • • • CStr (x) CStr (x, y) CStr (x, y, z) CStr (x, y, z, w) CStr (x, y, z, w, q) Argumente 430 Konvertieren. . . Beschreibung Boolesche Werte • Number- und Currency-Werte • x ist ein boolescher Wert, der in eine Zeichenfolge umgewandelt wird, entweder Wahr oder Falsch. x ist ein Number- oder Currency-Wert, der in eine Zeichenfolge umgewandelt werden soll. Der Wert kann ganzzahlig oder eine Dezimalzahl sein. • y ist eine ganze Zahl, die die Anzahl der Dezimalstellen angibt, die der Wert von x erhalten soll. (Dieses Argument ist optional.) • z ist eine aus einem Zeichen bestehende Textzeichenfolge, die das Zeichen angibt, mit dem Tausenderwerte in x getrennt werden. Standardzeichen ist das Zeichen, das in der Windows-Systemsteuerung in Ländereinstellungen angegeben ist. (Dieses Argument ist optional.) • w ist eine aus einem Zeichen bestehende Textzeichenfolge, die das Zeichen angibt, das als Dezimaltrennzeichen in x verwendet wird. Standardzeichen ist das Zeichen, das in der Windows-Systemsteuerung in Ländereinstellungen angegeben ist. (Dieses Argument ist optional.) Crystal Reports-Anwenderhandbuch Funktionen Typkonvertierung Konvertieren. . . Beschreibung Number- und Currency-Werte (Formatierung) • x ist ein Number- oder Currency-Wert, der in eine Zeichenfolge umgewandelt werden soll. Der Wert kann ganzzahlig oder eine Dezimalzahl sein. • y ist eine Textzeichenfolge, die das Anzeigeformat für den Wert von x festlegt. Unter Formatzeichenfolgen finden Sie weitere Informationen über die Erstellung einer Formatzeichenfolge. • z ist eine ganze Zahl, die die Anzahl der Dezimalstellen angibt, die der Wert von x erhalten soll. (Dieses Argument ist optional.) • w ist eine aus einem Zeichen bestehende Textzeichenfolge, die das Zeichen angibt, mit dem Tausenderwerte in x getrennt werden. Standardzeichen ist das Zeichen, das in der Windows-Systemsteuerung in Ländereinstellungen angegeben ist. (Dieses Argument ist optional.) • q ist eine aus einem Zeichen bestehende Textzeichenfolge, die das Zeichen angibt, das als Dezimaltrennzeichen in x benutzt wird. Standardzeichen ist das Zeichen, das in der Windows-Systemsteuerung in Ländereinstellungen angegeben ist. (Dieses Argument ist optional.) x ist ein Date-Wert, der in eine Textzeichenfolge umgewandelt wird. Date-Werte • • y ist eine Textzeichenfolge, die definiert, wie der Wert von x formatiert werden soll. Unter Formatzeichenfolgen für Date-, Time- und DateTime-Werte erhalten Sie weitere Informationen über die Erstellung dieser Formatzeichenfolge. (Dieses Argument ist optional.) Crystal Reports-Anwenderhandbuch 431 8 8 Funktionen Typkonvertierung Konvertieren. . . Beschreibung Time-Werte • x ist ein Time-Wert, der in eine Textzeichenfolge umgewandelt wird. • y ist eine Textzeichenfolge, die definiert, wie der Wert von x formatiert werden soll. Unter Formatzeichenfolgen für Date-, Time- und DateTime-Werte erhalten Sie weitere Informationen über die Erstellung dieser Formatzeichenfolge. (Dieses Argument ist optional.) • z ist eine Textzeichenfolge, die als Bezeichnung für AM (Morgenstunden, 0-12 Uhr Mittag) verwendet werden soll. (Dieses Argument ist optional.) • w ist eine Textzeichenfolge, die als Bezeichnung für PM (Nachmittag, 12-24 Uhr) verwendet wird. (Dieses Argument ist optional.) x ist ein DateTime-Wert, der in eine Textzeichenfolge umgewandelt wird. DateTime-Werte • • y ist eine Textzeichenfolge, die festlegt, wie die resultierende Textzeichenfolge formatiert wird. Siehe Formatzeichenfolgen für Date-, Time- und DateTime-Werte Informationen über die Erstellung einer Formatzeichenfolge. (Dieses Argument ist optional.) • z ist eine Textzeichenfolge, die als Bezeichnung für AM (Morgenstunden, 0-12 Uhr Mittag) verwendet werden soll. (Dieses Argument ist optional.) • w ist eine Textzeichenfolge, die als Bezeichnung für PM (Nachmittag, 12-24 Uhr) verwendet wird. (Dieses Argument ist optional.) Rückgabewert Textzeichenfolge Aktion Die Funktion CStr wandelt rationale Zahlen, Currency-, Datums-, Uhrzeit- und DateTime-Werte in Textzeichenfolgen um. 432 Crystal Reports-Anwenderhandbuch Funktionen Typkonvertierung Typische Verwendungen Verwenden Sie diese Funktion, um eine Zahl oder einen Currency-, Datums-, Uhrzeit- oder DateTime-Wert in Ihrem Bericht (Serienbriefe, Kommentare usw.) in eine Textzeichenfolge umzuwandeln. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CStr ({Aufträge.Versandt}) Gibt True (Wahr) zurück, falls der Wert von {Aufträge.Versandt} True (Wahr) ist. CStr(123.45) Gibt 123,45 zurück. CStr(12345.6749,2) Gibt 1234,67 zurück. CStr(12345.6750,2) Gibt 12345,68 zurück. CStr(12345.4999,0) Gibt 12345 zurück. CStr(12345.5000,0) Gibt 12346 zurück. CStr({Datei.VOLUMEN} * {Datei.MENGE}) Gibt „44.890,20“ zurück, wenn Folgendes zutrifft: {Datei.VOLUMEN} = 24,45 und {Datei.MENGE} = 1836. CStr ist nützlich, wenn Sie einen Satz aufbauen möchten, indem Sie eine umgewandelte Zahl mit anderen Textzeichenfolgen kombinieren (verketten). "Der Grundpreis des Artikels # " + {Datei.ARTIKELNUMMER} + " ist " + CStr({Datei.GRUNDPREIS}) + "." Diese Formel druckt den Satz „Der Grundpreis des Artikels A1/4520/B12 ist 50,00 €.“, wenn die ARTIKELNUMMER gleich A1/4520/B12 und der GRUNDPREIS gleich 50,00 ist, wobei der GRUNDPREIS in Text umgewandelt und mit 2 Dezimalstellen formatiert wird. CStr(CDate(1996, 11, 1), "yy MMM dd, dddd") Gibt „96 Nov 01, Freitag“ zurück. CStr(CDateTime(1995,10,12,3,30,11),"HH:mm, yy MMMM ddd") Gibt „03:30, 95 Oktober Mon“ zurück. CStr(CTime(12, 10, 10), "HH*mm*ss tt", "amStr", "pmStr") Gibt „12*10*10 pmStr“ zurück. Crystal Reports-Anwenderhandbuch 433 8 8 Funktionen Typkonvertierung Anmerkungen Die Syntaxformen der Funktion CStr, bei denen nur ein einziges Argument verwendet wird, funktionieren genau wie die gleichnamigen Funktionen von Visual Basic. Konvertieren boolescher Werte • Wenn die Funktion CStr mit booleschen Werten verwendet wird, ist sie hauptsächlich geeignet, um einen booleschen Wert mit anderem Text zu kombinieren (verketten). In allen anderen Fällen kann ein boolesches Feld so formatiert werden, dass es in Ihrem Bericht als True (Wahr) oder False (Falsch) angezeigt wird. Dazu müssen Sie lediglich im Format-Editor in dem Register Boolesch das Format ändern. Konvertieren von rationalen Zahlen und Currency-Werten • Ist die Anzahl der Dezimalstellen angegeben, kürzt diese Funktion die Zahl nicht, wenn sie in Text umgewandelt wird, sondern rundet die Zahl entsprechend der angegebenen Dezimalstellen. Weitere Informationen hierzu finden Sie unter Round. Konvertieren von Date-, Time- und DateTime-Werten: • Mit Ausnahme der Zeichen, mit denen Datumsangaben oder Zeiten formatiert werden, können in einer Formatzeichenfolge alle Zeichen verwendet werden. Sie könnten beispielsweise die Elemente eines Datums (Tag, Monat und Jahr) durch Schrägstriche voneinander trennen (wie in „30/12/95“) oder die Elemente einer Uhrzeit (Stunden, Minuten und Sekunden) durch Doppelpunkte (wie in „12:30:10“). • Möchten Sie die obigen Zeichen in einer Formatzeichenfolge verwenden, müssen die Zeichen in Anführungszeichen stehen. Hier ein Beispiel: CStr(DateTime(1995,10,12,13,20,22), „dd/MM/yy hh 'Std' mm 'Min' ss 'Sek' “, 'AM', 'PM') gibt Folgendes zurück: „12/10/95 13 Std 20 Min 22 Sek“ Übergeben optionaler Argumente: • 434 Viele Argumente der Funktion CStr sind als optional angegeben. Allerdings können Sie auf die Angabe eines Argumentes nur verzichten, wenn alle ihm folgenden Argumente ebenfalls fehlen. Anders formuliert: Sie können für das Argument w nur dann einen Wert angeben, wenn Sie auch Werte für die Argumente y und z angegeben haben. Es können beliebig viele optionale Argumente fehlen, solange auf die fehlenden Argumente kein Argument mit Wert folgt. Crystal Reports-Anwenderhandbuch Funktionen Typkonvertierung Die folgenden Kombinationen sind zulässig, wenn Sie Argumente für die Funktion CStr angeben: • • • • • • CStr (x) CStr (x, y) CStr (x, y, z) CStr (x, y, z, w) CStr (x, y, z, w, q) Wenn Sie in der Formatzeichenfolge einer Uhrzeit die Formatzeichen „t“ oder „tt“ verwenden, werden Standardzeichenfolgen bereitgestellt, um die AM-Stunden (Vormittag) und PM-Stunden (Nachmittag) zu kennzeichnen. „t“ bewirkt, dass nur ein Zeichen („a“ oder „p“) angezeigt wird, während „tt“ bewirkt, dass die gesamte Zeichenfolge („am“ oder „pm“) angezeigt wird. Sie können eigene Zeichenfolgen übergeben, die als AM-/PM-Zeichenfolgen verwendet werden sollen. Im Abschnitt Argumente weiter oben finden Sie die Argumente zur Konvertierung von Time- und DateTime-Werten mit Hilfe der Funktion CStr. Wenn Sie eigene AM-/PM-Zeichenfolgen übergeben, haben die Formatzeichen „t“ und „tt“ die gleichen Auswirkungen auf diese Zeichenfolgen (sie ergeben Zeichenfolgen aus nur je einem Zeichen bzw. Zeichenfolgen aus allen Zeichen). CDate Basic- und Crystal-Syntax. Die Funktionen DateValue und Date sind CDate gleichwertig. Date kann allerdings nur in der Crystal-Syntax verwendet werden, da es in der BasicSyntax als Name für einen Typ verwendet wird. Syntax der Argumente • • • • CDate (Zahl) CDate (Zeichenfolge) CDate (DatumUhrzeit) CDate (JJJJ, MM, TT) Crystal Reports-Anwenderhandbuch 435 8 8 Funktionen Typkonvertierung Argumente CDate (Zahl) Zahl ist ein Wert, der die Anzahl der Tage ab dem 30. Dezember 1899 angibt. Zahl kann positiv oder negativ sein und wird abgeschnitten, wenn es ein Dezimalwert ist. CDate (Zeichenfolge) Zeichenfolge enthält eine Textzeichenfolge, die ein Datum darstellt (Beispiel: „20. September 1999“; für diese Zeichenfolge werden viele verschiedene Formate unterstützt. CDate (DatumUhrzeit) CDate (YY,MM,DD) datumUhrzeit ist ein DateTime-Wert. YYYY (Jahr) ist eine ganze Zahl, die ein Kalenderjahr angibt, z. B. 1996. • • Monat ist eine ganze Zahl, die einen Monat angibt, z. B. 12 für Dezember. • Tag ist eine ganze Zahl, die einen Monatstag angibt, z. B. 05. Rückgabewert Date-Wert Aktion CDate (Zahl) konvertiert die angegebene Zahl und gibt ein Datum zurück, wenn die Anzahl der Tage ab dem 30. Dezember 1899 als Zahl angegeben wird. CDate (Zeichenfolge) konvertiert die angegebene Zeichenfolge und gibt ein Datum zurück, wenn eine Zeichenfolge angegeben wird. CDate (DatumUhrzeit) konvertiert den angegebenen DateTime-Wert und gibt ein Datum zurück, wenn ein DateTime-Wert angegeben wird. CDate (YYYY, MM, DD) erstellt aus den angegebenen Argumenten einen Date-Wert. 436 Crystal Reports-Anwenderhandbuch Funktionen Typkonvertierung Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CDate ("Dec. 31, 1999") Gibt den Date-Wert 31 1999 zurück. 31, 1999. CDate (50) Gibt den Date-Wert 18. Februar 1900 zurück. CDate (#Oct. 20, 1999 12:02pm#) Gibt den Date-Wert 20. Oktober 1999 zurück. CDate (1930, 7, 30) Gibt den Date-Wert 30. Juli 1930 zurück. Anmerkungen Mit der Funktion IsDate können Sie prüfen, ob ein String-Argument in einen Date-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. Siehe auch • DateSerial (Jahr, Monat, Tag) CTime Basic- und Crystal-Syntax. Die Funktionen TimeValue und Time sind CTime gleichwertig. Time kann allerdings nur in der Crystal-Syntax verwendet werden, da es in der BasicSyntax als Name für einen Typ verwendet wird. Syntax der Argumente • • • • CTime (Zahl) CTime (Zeichenfolge) CTime (DatumUhrzeit) CTime (HH, MM, SS) Crystal Reports-Anwenderhandbuch 437 8 8 Funktionen Typkonvertierung Argumente CTime (Zahl) • Gibt einen Time-Wert zurück, wenn eine Zahl im 24-StundenFormat angegeben wird. • Die Zahl kann auch negativ und eine Dezimalzahl sein. CTime (Zeichenfolge) Gibt einen Time-Wert für die Uhrzeit zurück, wenn ein String-Ausdruck angegeben wird, der eine Uhrzeit von 0:00:00 (12:00:00 am) bis einschließlich 23:59:59 (11:59:59 pm) darstellt. CTime (DatumUhrzeit) DatumUhrzeit ist ein DateTime-Wert. • Std ist eine ganze Zahl, die eine Stunde des Tages angibt. CTime (Stunde, Minute, Sekunde) • Min ist eine ganze Zahl, die eine Minute angibt. • Sek ist eine ganze Zahl, die eine Sekunde angibt. Rückgabewert Time-Wert Aktion CTime (Zahl) konvertiert eine angegebene Zahl in einen Time-Wert, wobei diese Zahl im 24-Stunden-Format, als Dezimalzahl und als negative Zahl angegeben werden kann. CTime (Zeichenfolge) konvertiert in eine Zeit und gibt einen Time-Wert zurück, wenn eine Zeichenfolge angegeben wird, die einen Time-Wert darstellt. CTime (DatumUhrzeit) konvertiert in eine Zeit und gibt einen Time-Wert zurück, wenn ein DateTime-Wert angegeben wird. CTime (hh, mm, ss) konvertiert die Argumente und gibt einen Time-Wert zurück, wenn Argumente für Stunden, Minuten und Sekunden angegeben werden. 438 Crystal Reports-Anwenderhandbuch Funktionen Typkonvertierung Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CTime (.2) CTime (1.2) Beide geben denselben Wert 4:48:00 zurück. CTime (-.2) Gibt 7:12:00 pm zurück CTime ("Jan. 6, 1999 2:30pm") Gibt 2:30:00 pm zurück CTime (#Feb. 24, 1999 2:40pm#) Gibt 2:40:00 pm zurück CTime (18, 30, 30) Gibt 6:30:30 pm zurück Anmerkungen Mit der Funktion IsTime können Sie prüfen, ob ein String-Argument in einen Time-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. Siehe auch • • TimeSerial (Stunden, Minuten, Sekunden) IsTime CDateTime Basic- und Crystal-Syntax. Die Funktionen DateTimeValue und DateTime sind CDateTime gleichwertig. DateTime kann allerdings nur in der Crystal-Syntax verwendet werden, da es in der Basic-Syntax als Name für einen Typ verwendet wird. Syntax der Argumente • • • • • • CDateTime (Zeichenfolge) CDateTime (Zahl) CDateTime (Datum) CDateTime (Datum, Uhrzeit) CDateTime (JJJJ, MM, TT) CDateTime (JJJJ, MM, TT, HH, MM, SS) Crystal Reports-Anwenderhandbuch 439 8 8 Funktionen Typkonvertierung Argumente CDateTime (Datum) CDateTime (Datum, Uhrzeit) CDateTime (Zahl) • • • • Datum ist ein Date-Wert. • Zahl kann positiv oder negativ und ein Dezimalwert sein. Zeichenfolge ist ein Datum und eine Uhrzeit, z. B.: „September 15, 1999 10:45 am“ Jahr ist eine ganze Zahl, die ein Kalenderjahr angibt, z. B. 1996. CDateTime (Zeichenfolge) • CDateTime (Jahr, Monat, Tag) CDateTime (Jahr, Monat, Tag, Stunde, Minute, Sekunde) • Datum ist ein Date-Wert. x ist ein Time-Wert. Zahl stellt eine Anzahl von Tagen ab dem 30. Dezember 1899 dar, z. B.: 20 steht für 20 Tage nach dem Dezember des Jahres 1899, also für den 19. Januar 1900 • Monat ist eine ganze Zahl, die einen Monat angibt, z. B. 1 für Januar. • Tag ist eine ganze Zahl, die einen Monatstag angibt, z. B. 10. • Std ist eine ganze Zahl, die eine Stunde des Tages angibt, z. B. 12. • Min ist eine ganze Zahl, die eine Minute angibt, z. B. 59. • Sek ist eine ganze Zahl, die die Sekunden angibt, z. B. 30. Rückgabewert DateTime-Wert Aktion CDateTime (Zeichenfolge) wandelt die angegebene Zeichenfolge in einen DateTime-Wert um. CDateTime (Zahl) wandelt die angegebene Zahl in einen DateTime-Wert um, wobei diese Zahl als Anzahl der Tage seit dem 30. Dezember 1899 interpretiert wird. 440 Crystal Reports-Anwenderhandbuch Funktionen Typkonvertierung CDateTime (Datum) erstellt aus dem angegebenen Datum den Datumsbestandteil des zurückgegebenen DateTime-Wertes und weist als Uhrzeitbestandteil 12:00:00 am zu. CDateTime (Datum, Uhrzeit) kombiniert die angegebenen Datentypen für Datum und Uhrzeit zu einem DateTime-Wert. CDateTime (JJJJ, MM, TT) erstellt aus den angegebenen Argumenten den Datums-Bestandteil des zurückgegebenen DateTime-Wertes und weist als Uhrzeitbestandteil 12:00:00 am zu. CDateTime (JJJJ, MM, TT, HH, MM, SS) setzt die angegebenen Argumente zu einem DateTime-Wert zusammen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CDateTime ("10/4/1999 10:20am") Gibt den DateTime-Wert 4. Oktober 1999, 10:20:00 am zurück. CDateTime (12.5) Gibt den DateTime-Wert 11. Januar 1900, 12:00:00 zurück. CDateTime (-2.5) Gibt den DateTime-Wert 27. Dezember 1899, 12:00:00 pm zurück. CDateTime (CDate ("Dec. 25, 1999")) Gibt den DateTime-Wert 25. Dezember 1999, 12:00:00 zurück. CDateTime (CDate ("November 10, 1999"), CTime("12:20am")) Gibt den DateTime-Wert 10. November 1999, 00:20:00 zurück. CDateTime (1945, 8, 21, 0, 0, 0) Gibt den DateTime-Wert 21. August 1945, 00:00:00 zurück. CDateTime (1945, 8, 21, 10, 0, 0) Gibt den DateTime-Wert 21. August 1945, 10:00:00 zurück. Anmerkungen Mit der Funktion IsDateTime können Sie prüfen, ob ein String-Argument in einen DateTime-Wert konvertiert werden kann, bevor Sie die Konvertierung durchführen. Auf diese Weise können Sie die geeigneten Maßnahmen ergreifen, falls die Konvertierung nicht möglich ist. Siehe auch • IsDateTime Crystal Reports-Anwenderhandbuch 441 8 8 Funktionen Programmierbefehle Programmierbefehle Diese Funktionen stellen Alternativen zur Verwendung von Steuerelementstrukturen dar. Choose (Index, Auswahl1, Auswahl2, ...) IIF (Ausdruck, True-Teil, False-Teil) Switch (Ausdr1, Wert1, Ausdr2, Wert2, …) Choose (Index, Auswahl1, Auswahl2, ...) Argumente • "Index" ist eine Zahl oder ein numerischer Ausdruck und gibt den Index der Auswahl an. Der Wert sollte zwischen 1 und der Anzahl der verfügbaren Auswahlen liegen. Wenn er außerhalb dieses Bereichs liegt, gibt Choose einen Standardwert zurück. (Welcher Standardwert zurückgegeben wird, hängt vom Typ der Auswahlen ab. Wenn die Auswahlen beispielsweise aus Zahlen bestehen, ist der Standardwert 0, und bei Auswahlen vom Zeichenfolgetyp ist der Standardwert eine leere Zeichenfolge ("").) • "Auswahl" ist eine der Auswahlen, die zur Verfügung stehen. Alle Wahloptionen müssen vom gleichen Typ sein. Eine Wahloption kann von jedem einfachen Typ (Zahl, Währung, Zeichenfolge, boolescher Wert, Datum, Uhrzeit und DatumUhrzeit) oder Bereichstyp (Zahlenbereich, Währungsbereich, Zeichenfolgebereich, Datumsbereich, Zeitbereich und DatumUhrzeit-Bereich), aber kein Array sein. Rückgabewert Ein Wert aus der angegebenen Liste von Auswahlen. Der Rückgabewert ist vom gleichen Typ wie die Auswahlen. Aktion Choose gibt auf Grundlage des Wertes von Index einen Wert aus der Liste der Auswahlen zurück. Wenn Index beispielsweise 1 ist, wird Auswahl1 zurückgegeben, und wenn Index 2 ist, wird Auswahl2 zurückgegeben usw. Typische Verwendungen • 442 Choose kann in einigen Fällen anstelle der oder SelectSteuerelementstrukturen verwendet werden. Wenn Sie beispielsweise einen Indexwert einem String-Wert zuordnen, eignet sich dazu am besten Choose. Crystal Reports-Anwenderhandbuch Funktionen Programmierbefehle • Choose eignet sich beispielsweise dann besser als eine Programmstruktur, wenn Datensatzauswahlformeln geschrieben werden, weil diese dadurch auf dem Datenbankserver verarbeitet werden können. Siehe Switch (Ausdr1, Wert1, Ausdr2, Wert2, …) Funktion für ein Beispiel. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Choose (3, "Schlecht", "Mittelmäßig", "Gut", "Ausgezeichnet") Gibt die Zeichenfolge „Gut“ zurück. Choose (2, 10 To 20, 100 To 200, 60 To 70) Gibt den Zahlenbereichswert "100 bis 200" zurück. Im nächsten Beispiel hat ein Unternehmen ein Steuerjahr, das am 1. Juli (im dritten Kalenderquartal) beginnt, und möchte das Steuerquartal jedes Auftragsdatums drucken: Rem Basic-Syntax formula = Choose (DatePart ("q", {Aufträge.Auftragsdatum}), _ "drittes Steuerquartal", "viertes Steuerquartal", _ " erstes Steuerquartal", "zweites Steuerquartal") //Crystal-Syntax Choose (DatePart ("q", {Aufträge.Auftragsdatum}), "drittes Steuerquartal", "viertes Steuerquartal", "erstes Steuerquartal", "zweites Steuerquartal") Wenn {Aufträge.Auftragsdatum} der 18. Februar 1996 ist, dann wird durch den Aufruf der DatePart-Funktion 1 zurückgegeben, da dieses Datum im ersten Kalenderquartal liegt. Daher wird von der Formel der erste Auswahlwert, die Zeichenfolge „drittes Steuerquartal“, zurückgegeben. Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Ein Unterschied besteht darin, dass die Funktion keinen Variant-Typ zurückgibt und daher alle Auswahlen vom selben Typ sein müssen. • Jedes Argument der Funktion Choose wird vor der Rückgabe der Auswahl ausgewertet. Daher sollten Sie auf unerwünschte Nebenwirkungen achten, wenn Sie Choose verwenden. Crystal Reports-Anwenderhandbuch 443 8 8 Funktionen Programmierbefehle Wenn beispielsweise einer der Auswahlausdrücke zu einer Division durch Null führt, tritt ein Fehler auf, auch wenn es sich dabei nicht um die von der Funktion Choose zurückgegebene Auswahl handelt. Siehe auch • • Funktion IIF (Ausdruck, True-Teil, False-Teil) Funktion Switch (Ausdr1, Wert1, Ausdr2, Wert2, …) IIF (Ausdruck, True-Teil, False-Teil) Basic- und Crystal-Syntax. Argument • • Ausdruck ist ein boolescher Ausdruck. • False-Teil ist der Wert, der zurückgegeben wird, wenn der Ausdruck False ist. Dieses Argument muss vom gleichen Typ wie True-Teil sein. True-Teil ist der Wert, der zurückgegeben wird, wenn der Ausdruck TRUE ist. Dieser Wert kann von jedem einfachen Typ (Zahl, Währung, Zeichenfolge, Boolesch, Datum, Uhrzeit und DateTime) oder Bereichstyp (Zahlenbereich, Währungsbereich, Zeichenfolgebereich, Datumsbereich, Zeitbereich und DatumUhrzeit-Bereich), aber kein Array sein. Rückgabewert True-Teil, wenn der Ausdruck TRUE ist, und False-Teil, wenn der Ausdruck FALSE ist. Der Rückgabewert ist vom gleichen Typ wie True-Teil und FalseTeil. Aktion IIF gibt je nach Auswertung des Ausdrucks einen von zwei Bestandteilen aus. Typische Verwendungen • In einigen Fällen kann IIF als Alternative zu den If/Then/ElseProgrammstrukturen verwendet werden. IIF eignet sich beispielsweise dann besser als eine Programmstruktur, wenn Datensatzauswahlformeln geschrieben werden, weil diese dadurch auf dem Datenbankserver verarbeitet werden können. Ein Beispiel dazu finden Sie unter Switch (Ausdr1, Wert1, Ausdr2, Wert2, …). 444 Crystal Reports-Anwenderhandbuch Funktionen Programmierbefehle Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: IIF ({Aufträge.Auftragssumme} > 10000, "Großauftrag", "Standardauftrag") Gibt den String-Wert „Großauftrag“ zurück, wenn {Aufträge.Auftragssumme} größer als 10.000 € ist, und andernfalls den String-Wert „Standardauftrag“. Sie können ein Formelfeld einfügen, das die Auftragssumme repräsentiert, falls die Zahlung bereits geleistet wurde, und andernfalls 0 ist: Rem Basic-Syntax formula = IIF ({Aufträge.Eingegangene Zahlungen}, {Aufträge.Auftragssumme}, 0) //Crystal-Syntax IIF ({Aufträge.Eingegangene Zahlungen}, {Aufträge.Auftragssumme}, 0) Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Ein Unterschied besteht darin, dass die Funktion keinen Variant-Typ zurückgibt und daher True-Teil und False-Teil vom selben Typ sein müssen. • Jedes Argument der Funktion IIF wird vor der Rückgabe der Auswahl ausgewertet. Daher sollten Sie auf unerwünschte Nebenwirkungen achten, wenn Sie IIF verwenden. Wenn beispielsweise False-Teil zu einer Division durch Null führt, tritt ein Fehler auf, selbst wenn Ausdruck TRUE ist und daher True-Teil zurückgegeben wird. Siehe auch • • Choose (Index, Auswahl1, Auswahl2, ...) Switch (Ausdr1, Wert1, Ausdr2, Wert2, …) Switch (Ausdr1, Wert1, Ausdr2, Wert2, …) Basic- und Crystal-Syntax. Argumente • „Ausdr1“, „Ausdr2“ usw. sind boolesche Ausdrücke. Crystal Reports-Anwenderhandbuch 445 8 8 Funktionen Programmierbefehle • „Wert1“, „Wert2“ usw. sind die möglichen Rückgabewerte. Alle Werte müssen vom gleichen Typ sein. Ein Wert kann von jedem einfachen Typ (Zahl, Währung, Zeichenfolge, Boolesch, Datum, Uhrzeit und DatumUhrzeit) oder Bereichstyp (Zahlenbereich, Währungsbereich, Zeichenfolgebereich, Datumsbereich, Uhrzeitbereich und DatumUhrzeitBereich), aber kein Array sein. Rückgabewert Einer der Werte aus der Werteliste „Wert1“, „Wert2“ usw. Der Rückgabewert ist vom gleichen Typ wie die Werte. Aktion Die Argumentenliste von Switch besteht aus zwei Paaren von Ausdrücken und Werten. Switch wertet die Ausdrücke von links nach rechts aus und gibt den Wert zurück, der dem ersten Ausdruck zugeordnet ist, der als True ausgewertet wird. Wenn beispielsweise Ausdr1 True ist, gibt Switch Wert1 zurück. Wenn Ausdr1 False und Ausdr2 True ist, dann gibt Switch Wert2 zurück. Wenn Ausdr1 und Ausdr2 False sind und Ausdr3 True ist, gibt Switch Wert3 zurück. Wenn alle Ausdrücke falsch (False) sind, gibt Switch einen Standardwert zurück. (Welcher Standardwert zurückgegeben wird, hängt vom Typ der Werte in der Liste der Werte ab. Wenn die Werte beispielsweise vom Zahlentyp sind, ist der Standardwert 0, und bei Werten vom Zeichenfolgetyp ist der Standardwert eine leere Zeichenfolge ("").) Typische Verwendungen Switch kann in bestimmten Situationen anstelle von If-Then-Else-Operatoren oder Select-Anweisungen (Basic-Syntax) bzw. Select-Ausdrücken (CrystalSyntax) verwendet werden. Switch eignet sich beispielsweise dann besser als eine Programmstruktur, wenn Datensatzauswahlformeln geschrieben werden, weil diese dadurch auf dem Datenbankserver verarbeitet werden können. Ein Beispiel dazu finden Sie unten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Angenommen, ein Unternehmen möchte Aufträge anhand der Auftragsgröße in die Kategorien „groß“, „mittel“ oder „klein“ einteilen: Rem Basic-Syntax formula = Switch ({Aufträge.Auftragssumme} > 5000, "groß", _ {Aufträge.Auftragssumme} > 1000, "mittel", _ 446 Crystal Reports-Anwenderhandbuch Funktionen Programmierbefehle True, "klein") //Crystal-Syntax Switch ({Aufträge.Auftragssumme} > 5000, "groß", {Aufträge.Auftragssumme} > 1000, "mittel", True, "klein") Wenn {Aufträge.Auftragssumme} größer als 5.000 € ist, dann gibt die Formel den String-Wert „groß“ aus. Andernfalls, wenn {Aufträge.Auftragssumme} größer als 1.000 € ist, dann gibt die Formel den String-Wert „mittel“ aus. Andernfalls gibt die Formel „klein“ aus. Im folgenden Beispiel wird gezeigt, wie die Funktion Switch dazu verwendet werden kann, wirkungsvolle Datensatzauswahlformeln zu schreiben, die auf dem Datenbankserver verarbeitet werden können. Würde diese Formel unter Verwendung von If-Then-Else-Operatoren oder Select-Anweisungen (BasicSyntax) bzw. Select-Ausdrücken (Crystal-Syntax) geschrieben, könnte sie nicht an den Server weitergegeben werden. Hinweis: Dieses Beispiel wurde in der Crystal-Syntax geschrieben, da alle mit dem Formula Workshop bearbeiteten Datensatzauswahlformeln in Crystal-Syntax geschrieben sind. Musterbericht Eine vollständigere Version dieses Beispiels mit 27 Bedingungen für Switch finden Sie in einem Musterbericht unter dem Namen „Record Selection on DateRange.rpt“. Sie finden die Musterberichte im Crystal Reports-Verzeichnis unter \Samples\De\Reports. Wenn Sie den Bericht in die Seitenansicht laden, geben Sie einen Parameter für das Referenzauftragsdatum {?Referenzdatum} und eine Bereichsbedingung {?Referenzbedingung} an, um einen Datumsbereich um das Referenzauftragsdatum herum anzuzeigen. Der Bericht wird dann in der Seitenansicht nur mit denjenigen Datensätzen angezeigt, deren Auftragsdatum in den angegebenen Bereich fällt. Die gesamte Datensatzauswahl wird auf dem Datenbankserver durchgeführt. Dies liegt daran, dass die Funktion Switch und alle zugehörigen Argumente ausgewertet werden können, bevor auf die Datenbank zugegriffen wird. Hinweis: • In diesem Musterbericht gibt die Funktion Switch einen Datumsbereichswert zurück. • Der Aufruf der Funktion Switch sieht durch die Einrückung des Codes ähnlich wie eine Programmstruktur aus, was das Lesen der Funktion vereinfacht. • Der letzte Ausdruck ist der boolesche Wert True (Wahr). Crystal Reports-Anwenderhandbuch 447 8 8 Funktionen Auswertungszeitpunkt Der Aufruf der Funktion Switch liefert einen expliziten Standardwert; wenn keiner der anderen Ausdrücke True ist, ist der letzte Ausdruck automatisch True, und daher wird der Datumsbereich CDate (1899, 12, 30) To CDate(1899, 12, 30) zurückgegeben. //Datensatzauswahlformel in der Crystal-Syntax {Aufträge.Auftragsdatum} in Switch ( {?Referenzbedingung} = "Alter 0 bis 30 Tage", ({?Referenzdatum} - 30) To {?Referenzdatum}, {?Referenzbedingung} = "Alter 31 bis 60 Tage", ({?Referenzdatum} -60) To ({?Referenzdatum} -31), {?Referenzbedingung} = "Alter 61 bis 90 Tage", ({?Referenzdatum} -90) To ({?Referenzdatum} -61), True, // stellt den Standardwert bereit und gibt einen gültigen Bereich an CDate(1899, 12, 30) To CDate(1899, 12, 30) ) Anmerkungen • Diese Funktion arbeitet genau so wie die entsprechende Visual BasicFunktion. Ein Unterschied besteht darin, dass die Funktion keinen Variant-Typ zurückgibt und daher alle Werte vom selben Typ sein müssen. • Jedes Argument der Funktion Switch wird vor der Rückgabe der Auswahl ausgewertet. Daher sollten Sie auf unerwünschte Nebenwirkungen achten, wenn Sie Switch verwenden. Wenn beispielsweise einer der Werte zu einer Division durch Null führt, tritt ein Fehler auf, auch wenn es sich dabei nicht um den von der Funktion Switch zurückgegebenen Wert handelt. Siehe auch • • Choose (Index, Auswahl1, Auswahl2, ...) IIF (Ausdruck, True-Teil, False-Teil) Auswertungszeitpunkt Mit den Auswertungszeitpunktfunktionen kann die Präsentation von Daten durch Überprüfen des Zeitpunkts ihrer Kalkulation und Präsentation kontrolliert werden. BeforeReadingRecords WhileReadingRecords WhilePrintingRecords EvaluateAfter (x) 448 Crystal Reports-Anwenderhandbuch Funktionen Auswertungszeitpunkt BeforeReadingRecords Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Gibt an, dass die Formel vor dem Lesen der Datensätze ausgewertet werden muss. Typische Verwendungen Formeln werden normalerweise zu folgenden Zeitpunkten ausgewertet: • Wenn in der Formel kein Datenbank- oder Gruppenfeld enthalten ist, wird die Formel ausgewertet, bevor das Programm Datensätze liest. • Wenn in der Formel ein Datenbankfeld enthalten ist, wird die Formel ausgewertet, während das Programm Datensätze liest. • Wenn in der Formel ein Gruppenfeld, Seitenzahlenfeld, ein Teilergebnis usw. enthalten ist, wird die Formel ausgewertet, nachdem die Datensätze der Datenbank gelesen wurden und während die Daten aus den Datensätzen in den Bericht gedruckt werden. BeforeReadingRecords bewirkt, dass die Formel ausgewertet wird, bevor das Programm die Datensätze der Datenbank liest. Wenn diese Funktion in einer Formel verwendet wird, gibt die Formelprüffunktion eine Fehlermeldung aus, sobald Sie Elemente (z.B. Datenbankfelder, Gruppen usw.) in die Formel eingefügt haben, die zu einem späteren Zeitpunkt ausgewertet werden müssen (während des Lesens oder Druckens der Datensätze). Beispiele Das folgende Beispiel gilt für die Crystal-Syntax: BeforeReadingRecords; ToNumber("12345") Erzwingt die Auswertung der Formel (die keine Datenbankfelder oder Gruppenfelder enthält), bevor Datensätze gelesen werden. Hinweis: Wenn Sie ein Datenbankfeld oder eine Gruppe in diese Formel aufnehmen, wird ein Fehler gemeldet. WhileReadingRecords Basic- und Crystal-Syntax. Crystal Reports-Anwenderhandbuch 449 8 8 Funktionen Auswertungszeitpunkt Rückgabewert Keine Aktion Zwingt das Programm, die Formel auszuwerten, während es Datensätze der Datenbank liest. Typische Verwendungen Formeln werden normalerweise zu folgenden Zeitpunkten ausgewertet: • Wenn in der Formel kein Datenbank- oder Gruppenfeld enthalten ist, wird die Formel ausgewertet, bevor das Programm Datensätze liest. • Wenn in der Formel ein Datenbankfeld enthalten ist, wird die Formel ausgewertet, während das Programm Datensätze liest. • Wenn in der Formel ein Gruppenfeld, Seitenzahlenfeld, ein Teilergebnis usw. enthalten ist, wird die Formel ausgewertet, nachdem die Datensätze der Datenbankgelesen wurden und während die Daten aus den Datensätzen in den Bericht gedruckt werden. WhileReadingRecords erzwingt, dass die Formel ausgewertet wird, während das Programm die Datensätze der Datenbank liest. Wenn diese Funktion in einer Formel verwendet wird, gibt die Formelprüffunktion eine Fehlermeldung aus, wenn Sie versuchen, Elemente in die Formel einzufügen (Gruppen-, Seitenzahlenfelder usw.), die zu einem späteren Zeitpunkt ausgewertet werden müssen (w Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: WhileReadingRecords; ToNumber({Auftragsdetails.MENGE}) Erzwingt, dass die Formel (die ein Datenbankfeld enthält) zu dem für sie üblichen Zeitpunkt ausgewertet wird (während des Lesens der Datensätze). Hinweis: Wenn Sie eine Gruppe in diese Formel aufnehmen, wird ein Fehler gemeldet. WhileReadingRecords; ToNumber("12345") Erzwingt, dass die Formel (die keine Datenbankfelder oder Gruppen enthält) später als normal ausgewertet wird. In diesem Fall wird die Formel nicht vor dem Lesen der Datensätze, sondern während des Lesens der Datensätze ausgewertet. Hinweis: Wenn Sie eine Gruppe in diese Formel aufnehmen, wird ein Fehler gemeldet. 450 Crystal Reports-Anwenderhandbuch Funktionen Auswertungszeitpunkt WhilePrintingRecords Basic- und Crystal-Syntax. Rückgabewert Keine Aktion Zwingt das Programm, die Formel auszuwerten, während es Datensätze der Datenbank druckt. Typische Verwendungen Formeln werden normalerweise zu folgenden Zeitpunkten ausgewertet: • Wenn in der Formel kein Datenbank- oder Gruppenfeld enthalten ist, wird die Formel ausgewertet, bevor das Programm Datensätze liest. • Wenn in der Formel ein Datenbankfeld enthalten ist, wird die Formel ausgewertet, während das Programm Datensätze liest. • Wenn in der Formel ein Gruppenfeld, Seitenzahlenfeld, ein Teilergebnis usw. enthalten ist, wird die Formel ausgewertet, nachdem die Datensätze der Datenbankgelesen wurden und während die Daten aus den Datensätzen in den Bericht gedruckt werden. WhilePrintingRecords bewirkt, dass die Formel ausgewertet wird, während das Programm die Datensätze der Datenbank druckt. Mit dieser Funktion können Sie auch erzwingen, dass eine Formel, die keine Datenbankfelder und keine Gruppenfelder enthält, erst verarbeitet wird, wenn Datensätze gedruckt werden, und nicht schon bevor Datensätze gelesen werden. Mit dieser Funktion können Sie auch erzwingen, dass eine Formel, die keine Datenbankfelder enthält, erst verarbeitet wird, wenn Datensätze gedruckt werden, und nicht schon während Datensätze gelesen werden. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: WhilePrintingRecords; 3* Sum ({Datei.MENGE1}, {Datei.MENGE2}) Erzwingt, dass die Formel (die eine Gruppe enthält) zu dem für sie üblichen Zeitpunkt ausgewertet wird (während des Druckens der Datensätze). WhilePrintingRecords; ToNumber("12345") Crystal Reports-Anwenderhandbuch 451 8 8 Funktionen Auswertungszeitpunkt Erzwingt, dass die Formel (die keine Datenbankfelder oder Gruppen enthält) später als normal ausgewertet wird. In diesem Fall wird veranlasst, dass die Formel nicht vor dem Lesen der Datensätze, sondern während des Druckens der Datensätze ausgewertet wird. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. EvaluateAfter (x) Basic- und Crystal-Syntax. Argumente • x ist ein beliebiger Formelname. Rückgabewert Keine Aktion Diese Funktion kann verwendet werden, damit eine Formel nach der anderen ausgeführt wird. Beispielsweise können zwei separate Formeln in einem Bericht den gleichen Auswertungszeitpunkt haben (BeforeReadingRecords, WhileReadingRecords oder WhilePrintingRecords), oder sie sind im selben Bereich des Berichts enthalten und werden daher beim Drucken der Datensätze automatisch ausgewertet. In solchen Fällen ist es oft unklar, welche Formel zuerst ausgeführt werden soll. In vielen Situationen kann es unwichtig sein, welche Formel zuerst ausgewertet wird. In anderen Situationen kann es aber wichtig sein, dass eine Formel nach der anderen ausgewertet wird. Es könnte z.B. sein, dass eine Formel den Wert einer Variablen einstellt, und die andere diesen Wert liest. Mit Hilfe der EvaluateAfter-Funktion kann die zweite Formel dazu gebracht werden, erst dann ausgeführt zu werden, wenn die erste Formel abgeschlossen ist. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: EvaluateAfter({@SetVariable}) Lässt die Formel warten, bis die @SetVariable-Formel die Berechnungen abgeschlossen hat. 452 Crystal Reports-Anwenderhandbuch Funktionen Druckstatus Druckstatus Diese Funktionen sind zuständig für den Status eines in Seitenansicht angezeigten Berichts. Previous (Feld) PreviousValue (Feld) Next (Feld) NextValue (Feld) IsNull (Feld) PreviousIsNull (Feld) NextIsNull (Feld) PageNumber TotalPageCount PageNofM Datensatznummer GroupNumber RecordSelection GroupSelection InRepeatedGroupHeader OnFirstRecord OnLastRecord DrillDownGroupLevel HierarchyLevel (GroupingLevel) Previous (Feld) Crystal-Syntax. PreviousValue (Feld) und Previous sind gleichwertige Funktionen. Previous kann allerdings nur in der Crystal-Syntax und PreviousValue nur in der BasicSyntax verwendet werden. Argumente • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld des Berichts. Crystal Reports-Anwenderhandbuch 453 8 8 Funktionen Druckstatus Rückgabewert Ein Feldwert, der denselben Typ hat wie das Feld, das als Argument "Feld" übergeben wurde. Aktion Previous (Feld) gibt den Wert zurück, den das angegebene Feld im vorhergehenden Datensatz hat. Typische Verwendungen Sie können "Previous" verwenden, um den letzten Datensatz eines vorhergehenden Bereichs oder den letzten Datensatz vor dem Beginn eines neuen Bereichs zu ermitteln oder um auf doppelte Werte zu prüfen. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If Previous({Datei.MENGE}) <> 0 Then {Datei.MENGE}/2 Else {Datei.MENGE} Prüft den vorhergehenden Wert des Feldes {Datei.MENGE} daraufhin, ob er ein Nullwert ist. Ist der Wert kein Nullwert, wird er durch 2 dividiert. Ist der Wert ein Nullwert, wird der Wert selbst zurückgegeben. If Previous ({Kunde.KUNDENNR}) = {Kunde.KUNDENNR} Then "Wiederholter Wert" Else "" Markiert Werte, die im Feld {Kunde.KUNDENNR} wiederholt werden. If Remainder(Previous ({Datei.SERIENNUMMER}), 300) = 0 Then "Anfang eines neuen Blocks" Else "" Dividiert den vorhergehenden Wert des Feldes {Datei.SERIENNUMMER} durch 300. Gibt es keinen Rest, markiert die Formel den aktuellen Wert als „Anfang eines neuen Blocks“. Wenn ein Rest bleibt (Else), wird keine Markierung gedruckt. (Diese Formel unterteilt Seriennummern in Blöcke aus 300 Elementen.) Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. 454 Crystal Reports-Anwenderhandbuch Funktionen Druckstatus PreviousValue (Feld) Basic-Syntax PreviousValue und Previous (Feld) sind gleichwertige Funktionen. PreviousValue kann allerdings nur in der Basic-Syntax und Previous nur in der Crystal-Syntax verwendet werden. Argument Feld ist der Name eines Datenbankfeldes. Rückgabewert Wert des angegebenen Feldes, wobei der Typ vom Typ des Feldes abhängt. Aktion PreviousValue gibt den Wert des vorherigen Datensatzes des angegebenen Feldes zurück. Typische Verwendung Sie können PreviousValue verwenden, um den letzten Datensatz eines vorhergehenden Bereichs oder den letzten Datensatz vor dem Beginn eines neuen Bereichs zu ermitteln oder um auf doppelte Werte zu prüfen. Beispiele Die folgenden Beispiele gelten für die Basic-Syntax: If PreviousValue ({Auftragsdetails.Menge}) <> 0 Then formula = {Auftragsdetails.Menge} / 2 Else formula = {Auftragsdetails.Menge} End If Prüft den vorherigen Wert im Feld {Auftragsdetails.Menge}, um herauszufinden, ob er Null ist. Ist der Wert kein Nullwert, wird er durch 2 dividiert. Ist der Wert ein Nullwert, wird der Wert selbst zurückgegeben. If PreviousValue ({Aufträge.Auftrags-ID}) Mod 10 = 0 Then formula = "Beginn eines neuen Blocks" Else formula = "Gleicher Block" End If Unterteilt Auftrags-IDs in Blöcke aus 10 Elementen. Wenn die vorherige Auftrags-ID ein Vielfaches von 10 ist, wird der aktuelle Wert als „Beginn eines neuen Blocks“ gekennzeichnet. Andernfalls wird „Gleicher Block“ gedruckt. If PreviousValue ({Kunde.KUNDENNR}) = {Kunde.KUNDENNR} Then formula = "Gleicher Kunde" Else formula = "Kunde geändert" End If Crystal Reports-Anwenderhandbuch 455 8 8 Funktionen Druckstatus Markiert Werte, die im Feld {Kunde.KUNDENNR} wiederholt werden. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. Next (Feld) Crystal-Syntax. Next und NextValue (Feld) sind gleichwertige Funktionen. Next kann allerdings nur in der Crystal-Syntax und NextValue (Feld) nur in der BasicSyntax verwendet werden. Argumente • Feld ist ein beliebiges gültiges Datenbank- oder Formelfeld. Rückgabewert Ein Feldwert desselben Typs wie das Argument. Aktion Next(Feld) gibt den Wert zurück, den das angegebene Feld im nächsten Datensatz hat. Typische Verwendungen Sie können Next verwenden, um bei einem Datensatz festzustellen, ob er der erste oder letzte Datensatz eines Bereichs ist, um den Anfang einer neuen Gruppe zu ermitteln oder um auf doppelte Werte zu prüfen. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If Next({Datei.MENGE})<>0 Then {Datei.MENGE}/2 Else {Datei.MENGE} Prüft den nächsten Wert des Feldes {Datei.MENGE} daraufhin, ob er ein Nullwert ist. Ist der Wert kein Nullwert, wird er durch 2 dividiert. Ist der Wert ein Nullwert, wird der Wert selbst zurückgegeben. If Remainder(Next ({Datei.SERIENNUMMER}), 300) = 0 Then "Ende des Blocks" Else "" 456 Crystal Reports-Anwenderhandbuch Funktionen Druckstatus Dividiert den nächsten Wert des Feldes {Datei.SERIENNUMMER} durch 300. Gibt es keinen Rest, markiert die Formel den aktuellen Wert als „Ende des Blocks“. Wenn ein Rest bleibt (Else), wird keine Markierung gedruckt. (Diese Formel unterteilt Seriennummern in Blöcke aus 300 Elementen.) Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. NextValue (Feld) Basic-Syntax. NextValue und Next (Feld) sind gleichwertige Funktionen. NextValue kann allerdings nur in der Basic-Syntax und Next nur in der Crystal-Syntax verwendet werden. Argument Feld ist der Name eines Datenbankfeldes. Rückgabewert Wert des angegebenen Feldes, wobei der Typ vom Typ des Feldes abhängt. Aktion NextValue gibt den Wert des nächsten Datensatzes des angegebenen Feldes zurück. Typische Verwendung Sie können NextValue verwenden, um bei einem Datensatz festzustellen, ob er erster oder letzter Datensatz eines Bereichs ist, um den Anfang einer neuen Gruppe zu ermitteln oder um auf doppelte Werte zu prüfen. Beispiele Die folgenden Beispiele gelten für die Basic-Syntax: If NextValue ({Auftragsdetails.Menge}) <> 0 Then formula = {Auftragsdetails.Menge} / 2 Else formula = {Auftragsdetails.Menge} End If Prüft den nächsten Wert im Feld {Auftragsdetails.Menge}, um herauszufinden, ob er Null ist. Ist der Wert kein Nullwert, wird er durch 2 dividiert. Wenn er Null ist, wird der aktuelle Wert zurückgegeben. Crystal Reports-Anwenderhandbuch 457 8 8 Funktionen Druckstatus If NextValue ({Aufträge.Auftrags-ID}) Mod 10 = 0 Then formula = "Ende des Blocks" Else formula = "Es kommt noch mehr" End If Diese Formel unterteilt Auftrags-IDs in Blöcke aus 10 Elementen. Wenn die nächste Auftrags-ID ein Vielfaches von 10 ist, wird der aktuelle Wert als „Ende des Blocks“ gekennzeichnet. Andernfalls wird „Es kommt noch mehr“ gedruckt. Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. IsNull (Feld) Basic- und Crystal-Syntax. Argumente • Feld ist ein beliebiges gültiges Datenbank-, Memo- oder BLOB-Feld. Rückgabewert Boolescher Wert Aktion Wertet das angegebene Feld des aktuellen Datensatzes aus und gibt TRUE zurück, wenn das Feld einen Nullwert enthält. Typische Verwendungen Sie können diese Funktion in einer Datensatzauswahlformel verwenden, um den Bericht auf Datensätze zu beschränken, die in dem angegebenen Feld einen Wert ungleich Null aufweisen. Sie können die Funktion auch verwenden, um das Programm zu veranlassen, immer dann einen bestimmten Vorgang auszuführen, wenn es einen Nullwert vorfindet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: IsNull({Aufträge.Auftragssumme}) gibt die folgenden Ergebnisse zurück: If{Aufträge.AUFTRAGSSUMME} IsNull({Aufträge.AUFTRAGSSUMME}) Angezeigter Wert Rückgabewert 200.00 458 Crystal Reports-Anwenderhandbuch False Funktionen Druckstatus (Null) True 100.00 False 347.12 False Not IsNull({Aufträge.Auftragssumme}) Wird diese Funktion als Datensatzauswahlformel verwendet, werden in den Bericht nur Datensätze aufgenommen, die im Feld {Aufträge.Auftragssumme} einen Wert ungleich Null haben. Anmerkungen Einige Datenbanken unterstützen Nullwerte, andere nicht. Diese Funktion arbeitet nicht, wenn die aktiven Datenbanken keine Null-Werte unterstützen. Wenn die Datenbanken Nullwerte unterstützen, lässt sich die Funktion verwenden, um auf die Nullwerte zu verweisen, die als Ergebnis eines misslungenen Nachschlagens während des Verknüpfens erstellt werden. Hinweis: Null (0) und leer (kein Wert oder Leerzeichen) sind keine NullWerte. PreviousIsNull (Feld) Basic- und Crystal-Syntax. Argumente • Feld ist ein beliebiges numerisches Feld, Formel-, Memo- oder BLOBFeld des Berichts. Rückgabewert Boolescher Wert Aktion Wertet das angegebene Feld des vorherigen Datensatzes aus und gibt WAHR zurück, wenn das Feld einen Null-Wert enthält. Typische Verwendungen Sie können diese Funktion verwenden, um auf den ersten Eintrag einer Liste zu prüfen und bestimmte Vorgänge auszulösen, wenn Sie festgestellt haben, dass der erste Eintrag erreicht ist. Beispiele Das folgende Beispiel gilt für die Crystal-Syntax: If PreviousIsNull ({Mitarbeiter.Mitarbeiter-ID}) Then "Erster Angestellter" Crystal Reports-Anwenderhandbuch 459 8 8 Funktionen Druckstatus Else "" In einer Personaldatenbank, in der das Feld {Mitarbeiter.Mitarbeiter-ID} keine Nullwerte enthält, wird die/der erste in der Liste stehende Angestellte markiert. Anmerkungen Einige Datenbanken unterstützen Nullwerte, andere nicht. Diese Funktion arbeitet nicht, wenn die aktiven Datenbanken keine Null-Werte unterstützen. Wenn die Datenbanken Nullwerte unterstützen, lässt sich die Funktion verwenden, um auf die Nullwerte zu verweisen, die als Ergebnis eines misslungenen Nachschlagens während des Verknüpfens erstellt werden. Hinweis: • • Null (0) und leer (kein Wert oder Leerzeichen) sind keine Null-Werte. Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. NextIsNull (Feld) Basic- und Crystal-Syntax. Argumente • Feld ist ein beliebiges gültiges Datenbank-, Formel-, Memo- oder BLOBFeld des Berichts. Rückgabewert Boolescher Wert Aktion Wertet das angegebene Feld des nächsten Datensatzes aus und gibt WAHR zurück, wenn das Feld einen Null-Wert enthält. Typische Verwendungen Sie können diese Funktion verwenden, um den letzten Eintrag einer Liste zu prüfen und um bestimmte Vorgänge auszulösen, wenn Sie festgestellt haben, dass der letzte Eintrag erreicht ist. Beispiele Das folgende Beispiel gilt für die Crystal-Syntax: If NextIsNull ({Mitarbeiter.Mitarbeiter-ID}) Then "Letzter Angestellter ist erreicht" 460 Crystal Reports-Anwenderhandbuch Funktionen Druckstatus Else "" In einer Personaldatenbank, in der das Feld {Mitarbeiter.Mitarbeiter-ID} keine Nullwerte enthält, wird die/der letzte in der Liste stehende Angestellte markiert. Anmerkungen Einige Datenbanken unterstützen Nullwerte, andere nicht. Diese Funktion arbeitet nicht, wenn die aktiven Datenbanken keine Null-Werte unterstützen. Wenn die Datenbanken Nullwerte unterstützen, lässt sich die Funktion verwenden, um auf die Nullwerte zu verweisen, die als Ergebnis eines misslungenen Nachschlagens während des Verknüpfens erstellt werden. Hinweis: • • Null (0) und leer (kein Wert oder Leerzeichen) sind keine Null-Werte. Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. PageNumber Basic- und Crystal-Syntax. Rückgabewert Ganze Zahl Aktion Seitenzahl fügt die aktuelle Seitenzahl als Feld in eine Formel ein. Typische Verwendungen Verwenden Sie diese Funktion, wenn das Programm zur Druckzeit die Seitenzahl ermitteln oder diese Zahl zur Berechnung von Formelergebnissen verwenden soll. Sie können z.B. diese Funktion verwenden, wenn das Programm Informationen nicht auf allen, sondern nur auf bestimmten Seiten drucken soll. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: PageNumber Erzeugt ein Feld, das die aktuelle Seitenzahl enthält und das Sie an jeder Stelle der Seite anordnen können. Diese Formel erzielt dasselbe Ergebnis wie das Feld „PageNumber“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). Crystal Reports-Anwenderhandbuch 461 8 8 Funktionen Druckstatus If PageNumber > 1 Then PageNumber Else 0 Erzeugt ein Feld, das die Seitenzahl auf jeder Seite außer der ersten druckt. Wenn Sie auf der Registerkarte „Zahl“ des Dialogfelds „Benutzerdefiniertes Format“ das Kontrollkästchen „Nullen unterdrücken“ aktivieren, druckt die Formel auf der ersten Seite gar nichts aus, auch keine 0. Hinweis: • Sie benötigen kein Seitenzahlenfeld in Ihrem Bericht, um die Funktion Seitenzahl in einer Berichtsformel verwenden zu können. • Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. TotalPageCount Basic- und Crystal-Syntax. Rückgabewert Ganze Zahl Aktion Geht den Bericht durch und gibt die Gesamtseitenzahl zurück. Typische Verwendungen Mit dieser Funktion können Sie z. B. die Seitenzahl im Kopf- oder Fußbereich des Berichts positionieren. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: TotalPageCount Gibt 2 zurück, wenn ein Bericht insgesamt 2 Seiten hat. Anmerkungen Diese Funktion fügt dem Bericht einen Extra-Durchlauf hinzu. 462 Crystal Reports-Anwenderhandbuch Funktionen Druckstatus PageNofM Basic- und Crystal-Syntax. Rückgabewert Eine Textzeichenfolge Aktion PageNofM fügt Seite [aktuelle Seitenzahl] von [Gesamtseitenzahl] als Feld in eine Formel ein. Typische Verwendungen Verwenden Sie diese Funktion, wenn Sie zum Zeitpunkt des Druckens die Seitenzahl im Verhältnis zur Gesamtseitenzahl ermitteln oder diese Zahl zum Berechnen von Formelergebnissen verwenden möchten. Sie können z.B. diese Funktion verwenden, wenn das Programm Informationen nicht auf allen, sondern nur auf bestimmten Seiten drucken soll. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: PageNofM Erstellt ein Feld, das die aktuelle Seitenzahl sowie die Gesamtseitenzahl enthält und an jeder Stelle auf der Seite eingefügt werden kann. Wenn Sie diese Formel benutzen, ist es dem Feld PageNofM aus dem Menü Einfügen|Spezialfeld gleichwertig. Datensatznummer Basic- und Crystal-Syntax. Rückgabewert Ganze Zahl Aktion RecordNumber gibt die Nummer des aktuellen Datensatzes zurück. Typische Verwendungen Sie können diese Funktion verwenden, um eine Datensatzauswahlformel zu erstellen, und somit bestimmte Datensätze drucken und andere ausschließen. Crystal Reports-Anwenderhandbuch 463 8 8 Funktionen Druckstatus Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: RecordNumber Erzeugt ein Feld, das die Nummer des aktuellen Datensatzes enthält und das Sie in Ihren Bericht einfügen können. Diese Formel erzielt dasselbe Ergebnis wie das Feld „RecordNumber“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. GroupNumber Basic- und Crystal-Syntax. Rückgabewert Ganze Zahl Aktion Gibt die aktuelle Gruppennummer zurück. Typische Verwendungen Sie können diese Funktion in einer Gruppenauswahlformel verwenden, um bestimmte Datensätze zu drucken und andere auszuschließen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: GroupNumber Erstellt ein Feld, das die aktuelle Gruppennummer enthält, die Sie dann in Ihren Bericht einfügen können. Diese Formel erzielt dasselbe Ergebnis wie das Feld „GroupNumber“ im Ordner „Spezialfelder“ (Dialogfeld „FeldExplorer“). Hinweis: Wenn Sie diese Funktion in einer Formel verwenden, wird die Formel zum Zeitpunkt des Druckens zwangsweise ausgewertet. Weitere Informationen hierzu finden Sie unter Auswertungszeitpunkt. 464 Crystal Reports-Anwenderhandbuch Funktionen Druckstatus RecordSelection Basic- und Crystal-Syntax. Rückgabewert Die Datensatzauswahlformel Aktion RecordSelection fügt die Datensatzauswahlformel für den Bericht in eine Formel ein, die Sie wiederum in Ihren Bericht einfügen können. Typische Verwendungen Sie können diese Funktion jederzeit verwenden, wenn Sie die Datensatzauswahlformel im Bericht drucken oder eine Bedingung in der Datensatzauswahlformel festlegen möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: RecordSelection Erstellt ein Feld mit der Datensatzauswahlformel. Sie können das Feld dann in Ihren Bericht einfügen. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Datensatzauswahlformel“ im Ordner „Spezialfelder“ (Dialogfeld „FeldExplorer“). GroupSelection Basic- und Crystal-Syntax. Rückgabewert Die Gruppenauswahlformel Aktion GroupSelection fügt die Gruppenauswahlformel für den Bericht in eine Formel ein, die Sie wiederum in Ihren Bericht einfügen können. Typische Verwendungen Sie können diese Funktion verwenden, um die Gruppenauswahlformel im Bericht zu drucken oder eine Bedingung für die Gruppenauswahlformel einzustellen. Crystal Reports-Anwenderhandbuch 465 8 8 Funktionen Druckstatus Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: GroupSelection Erstellt ein Feld, das die Gruppenauswahlformel enthält. Sie können das Feld dann in Ihren Bericht einfügen. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Gruppenauswahlformel“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). InRepeatedGroupHeader Basic- und Crystal-Syntax. Rückgabewert Boolesch Aktion Gibt TRUE zurück, wenn der Gruppenkopfbereich auf der zweiten, dritten usw. Seite wiederholt wird. Typische Verwendungen Mit dieser Funktion können Sie jedem Gruppenkopf, der angezeigt wird, wenn eine Gruppe auf eine zweite, dritte, vierte usw. Seite umgebrochen wurde, bedingte Formatierungen hinzufügen. Sie können z. B. dem Gruppenkopf den Text „Fortsetzung“ hinzufügen, wenn er auf den darauffolgenden Seiten angezeigt wird. OnFirstRecord Basic- und Crystal-Syntax. Rückgabewert Boolesch Aktion Die Funktion gibt TRUE zurück, wenn der Datensatz, der momentan ausgewertet wird, der erste Datensatz des Berichts ist. 466 Crystal Reports-Anwenderhandbuch Funktionen Druckstatus OnLastRecord Basic- und Crystal-Syntax. Rückgabewert Boolesch Aktion Die Funktion gibt TRUE zurück, wenn der Datensatz, der momentan ausgewertet wird, der letzte Datensatz des Berichts ist. DrillDownGroupLevel Basic- und Crystal-Syntax. Rückgabewert Zahl Aktion Gibt eine Zahl zurück, die die Gruppenebene der aktuellen Drilldownansicht angibt. Handelt es sich nicht um eine Drilldownansicht, wird 0 zurückgegeben. Beispiele Wenn ein Bericht über Gruppen für "Land" und "Region" verfügt, gibt DrillDownGroupLevel in der Ansicht ohne Drilldowns 0 zurück. Innerhalb der Drilldownansicht für ein Land gibt DrillDownGroupLevel den Wert 1 zurück, und innerhalb der Drilldownansicht einer Region gibt DrillDownGroupLevel den Wert 2 zurück. Um festzustellen, ob Sie sich in einer Drilldownansicht befinden, testen Sie, ob DrillDownGroupLevel > 0 den Wert TRUE zurückgibt. HierarchyLevel (GroupingLevel) Basic- und Crystal-Syntax. Argumente • GroupingLevel ist eine Funktion, durch die die Ebene einer vorhandenen Gruppe festgelegt wird. Siehe GroupingLevel (Feld). Crystal Reports-Anwenderhandbuch 467 8 8 Funktionen Dokumenteigenschaften Rückgabewert Zahl Aktion Gibt eine Zahl zurück, durch die die Hierarchieebene des aktuellen Gruppenmitglieds angegeben wird, wenn Sie die Gruppe hierarchisch sortiert haben. Typische Verwendungen Wenn Sie die Position einzelner Mitglieder in einer hierarchisch sortierten Gruppe mit Hilfe einer Formel für bedingte X-Positionen feststellen möchten, verfolgen Sie die Ebenen anhand dieser Funktion. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: HierarchyLevel (GroupingLevel ({Mitarbeiter.MitarbeiterID})) Gibt die Ebene zurück, auf der sich die einzelnen Mitglieder in der Hierarchie befinden. Dabei wird vorausgesetzt, dass der Bericht hierarchisch nach dem Feld Mitarbeiter-ID gruppiert ist. Anmerkungen Diese Funktion wird im zweiten Arbeitsgang ausgewertet. Dokumenteigenschaften Diese Funktionen geben zu einem Dokument gehörende Attributwerte zurück. PrintDate PrintTime PrintTimeZone ModificationDate ModificationTime DataDate DataTime DataTimeZone ReportTitle ReportComments 468 Crystal Reports-Anwenderhandbuch Funktionen Dokumenteigenschaften Filename FileAuthor FileCreationDate CurrentCEUserName CurrentCEUserID GroupingLevel (Feld) CurrentCEUserTimeZone ContentLocale SelectionLocale PrintDate Basic- und Crystal-Syntax. Rückgabewert Date-Wert Aktion PrintDate fügt das Datum, an dem der Bericht gedruckt wird, als Feld in eine Formel ein. Typische Verwendungen Sie können diese Funktion verwenden, wenn Sie das Druckdatum in den Bericht aufnehmen oder ein Berichtselement vom Druckdatum abhängig machen möchten. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: PrintDate Erstellt ein Feld, das das Datum enthält, an dem der Bericht gedruckt wird, und das sie in Ihren Bericht einfügen können. Diese Formel erzielt dasselbe Ergebnis wie das Feld „PrintDate“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). If PrintDate >= CDate(1992,01,01) Then "Entschuldigen Sie bitte den verspäteten Bericht." Else "" Druckt die Entschuldigung für die Verspätung, wenn der Bericht nach dem 1. Januar 1992 gedruckt wird. Anderenfalls wird nichts gedruckt. Crystal Reports-Anwenderhandbuch 469 8 8 Funktionen Dokumenteigenschaften Anmerkungen • • PrintDate und CurrentDate sind synonym. Die Funktion „PrintDate“ gibt einen Wert der Einstellung zurück, die durch den Befehl „Druckdatum/-zeit festlegen“ im Menü „Bericht“ im Bericht festgelegt ist. Standardmäßig stimmt dieser Wert (sofern der Anwender ihn nicht geändert hat) mit den Einstellungen der Datum/Uhrzeit-Option in der Windows-Systemsteuerung überein. PrintTime Basic- und Crystal-Syntax. Rückgabewert Time-Wert Aktion PrintTime fügt die Zeit als Feld in eine Formel ein, wenn der Bericht gedruckt wird. Typische Verwendungen Sie können diese Funktion verwenden, wenn Sie das Druckdatum in den Bericht aufnehmen oder ein Berichtselement von der Druckzeit abhängig machen möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: PrintTime Erstellt ein Feld, das das Datum enthält, an dem der Bericht gedruckt wird, und das sie in Ihren Bericht einfügen können. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Druckzeit“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). Anmerkungen • PrintTime und Current Time sind synonym. PrintTimeZone Basic- und Crystal-Syntax. Rückgabewert String-Wert 470 Crystal Reports-Anwenderhandbuch Funktionen Dokumenteigenschaften Aktion Durch PrintTimeZone wird die Zeitzone von Druckdatum und Druckzeit, in der der Bericht ausgegeben wird, als TimeZoneString-Feld in eine Formel eingefügt. Hinweis: Weitere Informationen zu TimeZoneString-Feldern finden Sie unter ShiftDateTime (inputDateTime, inputTimeZone, newTimeZone). Typische Verwendungen Sie können diese Funktion jederzeit verwenden, wenn Sie die Zeitzone der Druckzeit im Bericht ausgeben oder ein Berichtselement von der Zeitzone der Druckzeit abhängig machen möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: PrintTimeZone Erstellt ein Feld, das die Zeitzone enthält, in der der Bericht gedruckt wird, und das Sie in Ihren Bericht einfügen können. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Zeitzone drucken“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). ModificationDate Basic- und Crystal-Syntax. Rückgabewert Date-Wert Aktion Die Funktion ModificationDate fügt das Datum der letzten Berichtsänderung als Feld in eine Formel ein. Typische Verwendungen Verwenden Sie diese Funktion, um das Datum der letzten Berichtsänderung zu drucken oder eine Bedingung für das Änderungsdatum im Bericht einzustellen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ModificationDate Crystal Reports-Anwenderhandbuch 471 8 8 Funktionen Dokumenteigenschaften Erstellt ein Feld für Ihren Bericht, welches das Datum der letzten Berichtsänderung zurückgibt. Diese Formel erzielt dasselbe Ergebnis wie das Feld „ModificationDate“ im Ordner „Spezialfelder“ (Dialogfeld „FeldExplorer“). ModificationTime Basic- und Crystal-Syntax. Rückgabewert Time-Wert Aktion Die Funktion ModificationTime fügt die Uhrzeit der letzten Berichtsänderung als Feld in eine Formel ein. Typische Verwendungen Verwenden Sie diese Funktion, um das Datum der letzten Berichtsänderung durch die Uhrzeit zu ergänzen oder eine Bedingung für die Änderungszeit im Bericht einzustellen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ModificationTime Erstellt ein Feld mit der Uhrzeit der letzten Berichtsänderung, das Sie in Ihren Bericht einfügen können. Diese Formel erzielt dasselbe Ergebnis wie das Feld „ModificationTime“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). DataDate Basic- und Crystal-Syntax. Rückgabewert Date-Wert Aktion DataDate gibt das Datum zurück, an dem der Bericht das letzte Mal aktualisiert wurde. 472 Crystal Reports-Anwenderhandbuch Funktionen Dokumenteigenschaften Typische Verwendungen Verwenden Sie DataDate immer dann, wenn das aktuelle Datum auf Ihrem Bericht stehen soll. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DataDate Gibt 06.05.98 zurück, wenn der Bericht das letzte Mal am 06.05.98 aktualisiert wurde. DataDate Gibt 06.12.73 zurück, wenn der Bericht das letzte Mal am 06.12.73 aktualisiert wurde. Anmerkungen Das verwendete Datumsformat richtet sich nach den Ländereinstellungen in der Windows-Systemsteuerung. DataTime Basic- und Crystal-Syntax. Rückgabewert Time-Wert Aktion DataTime gibt die Uhrzeit zurück, zu der der Bericht das letzte Mal aktualisiert wurde. Typische Verwendungen Verwenden Sie DataTime immer dann, wenn die aktuelle Zeit auf Ihrem Bericht stehen soll. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DataTime Gibt 12:45:23 zurück, wenn der Bericht das letzte Mal um 12:45:23 aktualisiert wurde. DataTime Gibt 17:26:10 zurück, wenn der Bericht das letzte Mal um 17:26:10 aktualisiert wurde. Crystal Reports-Anwenderhandbuch 473 8 8 Funktionen Dokumenteigenschaften DataTimeZone Basic- und Crystal-Syntax. Rückgabewert String-Wert Aktion Durch DataTimeZone wird die Zeitzone von Datendatum und -uhrzeit, in der der Bericht ausgegeben wird, als TimeZoneString-Feld in eine Formel eingefügt. Hinweis: Weitere Informationen zu TimeZoneString-Feldern finden Sie unter ShiftDateTime (inputDateTime, inputTimeZone, newTimeZone). Typische Verwendungen Sie können diese Funktion jederzeit verwenden, wenn Sie die Zeitzone der Datenuhrzeit im Bericht ausgeben oder ein Berichtselement von der Zeitzone der Datenuhrzeit abhängig machen möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DataTimeZone Erstellt ein Feld mit der Zeitzone, in der die Daten zuletzt aktualisiert wurden. Sie können dieses Feld in Ihren Bericht aufnehmen. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Datums-/Zeitzone“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). ReportTitle Basic- und Crystal-Syntax. Rückgabewert Zeichenfolge Aktion ReportTitle fügt den Titel des Berichts als Feld in eine Formel ein. Typische Verwendungen Sie können diese Funktion verwenden, um den Titel für den Bericht zu drucken. 474 Crystal Reports-Anwenderhandbuch Funktionen Dokumenteigenschaften Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ReportTitle Erstellt ein Feld, das den Titel enthält, den Sie dann in Ihren Bericht einfügen können. Diese Formel erzielt dasselbe Ergebnis wie das Feld „ReportTitle“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). ReportComments Basic- und Crystal-Syntax. Rückgabewert Zeichenfolge Aktion ReportComments fügt die Kommentare des Berichts als Feld in eine Formel ein. Typische Verwendungen Sie können diese Funktion verwenden, um den Kommentar für den Bericht zu drucken, den Sie im Dialogfeld „Dokumenteigenschaften“ eingegeben haben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ReportComments Erstellt ein Feld, das die Kommentare enthält, die Sie in Ihren Bericht einfügen können. Diese Formel erzielt dasselbe Ergebnis wie das Feld „ReportComments“ im Ordner „Spezialfelder“ (Dialogfeld „FeldExplorer“). Filename Basic- und Crystal-Syntax. Rückgabewert Zeichenfolge Aktion Filename fügt den Dateinamen und -pfad (in einer Formel) ein. Diese Informationen sind als Feld im Bericht enthalten. Crystal Reports-Anwenderhandbuch 475 8 8 Funktionen Dokumenteigenschaften Typische Verwendungen Sie können diese Funktion verwenden, um den Dateinamen für den Bericht zu drucken. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Filename Erstellt ein Feld mit dem Dateinamen. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Dateipfad und -name“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). FileAuthor Basic- und Crystal-Syntax. Rückgabewert Zeichenfolge Aktion FileAuthor fügt den Namen des Dateiautors (in einer Formel) ein. Diese Informationen sind als Feld im Bericht enthalten. Typische Verwendungen Sie können diese Funktion verwenden, um den Namen des Dateiautors zu drucken (wie im Dialogfeld „Dokumenteigenschaften“ angegeben). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FileAuthor Erstellt ein Feld, das den Namen des Dateiautors enthält. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Dateiautor“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). FileCreationDate Basic- und Crystal-Syntax. Rückgabewert Zeichenfolge 476 Crystal Reports-Anwenderhandbuch Funktionen Dokumenteigenschaften Aktion FileCreationDate fügt das Erstellungsdatum für den Bericht (in einer Formel) ein. Diese Informationen sind als Feld im Bericht enthalten. Typische Verwendungen Sie können diese Funktion verwenden, um das Datum, an dem der Bericht erstellt wurde, zu drucken (wie im Dialogfeld „Dokumenteigenschaften“ angegeben). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FileCreationDate Erstellt ein Feld mit dem Erstellungsdatum für den Bericht. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Dateierstellungsdatum“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). CurrentCEUserName Basic- und Crystal-Syntax. Rückgabewert Zeichenfolge Aktion Durch „CurrentCEUserName“ wird der Name, der bei Verwendung des Dialogfelds „Anmeldung bei BusinessObjects Enterprise“ für die Anmeldung bei der aktuellen Sitzung verwendet wurde, (in eine Formel) eingefügt. Typische Verwendungen Sie können diese Funktion jederzeit verwenden, um den Namen des derzeit angemeldeten Anwenders auszugeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CurrentCEUserName Erstellt ein Feld mit dem aktuellen Anwendernamen. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Name des aktuellen CE-Anwenders“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). Crystal Reports-Anwenderhandbuch 477 8 8 Funktionen Dokumenteigenschaften CurrentCEUserID Basic- und Crystal-Syntax. Rückgabewert Zahl Aktion Durch „CurrentCEUserID“ wird die ID des Anwenders, die bei Verwendung des Dialogfelds „Anmeldung bei BusinessObjects Enterprise“ für die Anmeldung bei der aktuellen Sitzung verwendet wurde, (in eine Formel) eingefügt. Typische Verwendungen Sie können diese Funktion jederzeit verwenden, um die ID des derzeit angemeldeten Anwenders auszugeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CurrentCEUserID Erstellt ein Feld mit der aktuellen Anwender-ID. Diese Formel erzielt dasselbe Ergebnis wie das Feld „ID des aktuellen CE-Anwenders“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). GroupingLevel (Feld) Basic- und Crystal-Syntax. Argumente • "Feld" entspricht einem beliebigen gültigen Berichtfeld. Rückgabewert Zahl Aktion Durch GroupingLevel wird die Ebene Ihrer Gruppe bestimmt. Typische Verwendungen Verwenden Sie diese Funktion zusammen mit der Funktion HierarchyLevel (GroupingLevel), um festzustellen, auf welcher Ebene sich Mitglieder einer hierarchisch sortierten Gruppe befinden. 478 Crystal Reports-Anwenderhandbuch Funktionen Dokumenteigenschaften CurrentCEUserTimeZone Basic- und Crystal-Syntax. Rückgabewert Zeichenfolge Aktion Durch „CurrentCEUserTimeZone“ wird die Zeitzone des Anwenders, die bei Verwendung des Dialogfelds „Anmeldung bei BusinessObjects Enterprise“ für die Anmeldung bei der aktuellen Sitzung verwendet wurde, (in eine Formel) eingefügt. Typische Verwendungen Sie können diese Funktion jederzeit verwenden, um die Zeitzone des derzeit angemeldeten Anwenders auszugeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CurrentCEUserTimeZone Erstellt ein Feld mit der Zeitzone des aktuellen Anwenders. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Zeitzone des aktuellen CEAnwenders“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). Anmerkungen Zeitzonen werden durch TimeZoneString dargestellt. Weitere Informationen zu TimeZoneString finden Sie unter ShiftDateTime (inputDateTime, inputTimeZone, newTimeZone). ContentLocale Basic- und Crystal-Syntax. Rückgabewert Zeichenfolge Aktion Durch ContentLocale wird die Gebietsschemaeinstellung des Computers eingefügt (die sich normalerweise in der Systemsteuerung unter "Ländereinstellungen" befindet). Crystal Reports-Anwenderhandbuch 479 8 8 Funktionen Dokumenteigenschaften Typische Verwendungen Sie können diese Funktion jederzeit verwenden, um die Gebietsschemaeinstellung des Computers zu ermitteln, auf dem der Bericht ausgeführt wird. Hinweis: ContentLocale ist eine Spezialvariable für die Druckzeit. Sie kann deshalb nicht in Datensatzauswahlformeln, sondern nur in Druckzeitformeln verwendet werden. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ContentLocale Erstellt ein Feld mit der Gebietsschemaeinstellung des Computers, auf dem der Bericht ausgeführt wird. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Inhaltsgebietsschema“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). SelectionLocale Basic- und Crystal-Syntax. Rückgabewert Zeichenfolge Aktion Durch „SelectionLocale“ wird die Gebietsschemaeinstellung des Computers eingefügt (die sich normalerweise in der Systemsteuerung unter „Ländereinstellungen“ befindet). Typische Verwendungen Sie können diese Funktion jederzeit verwenden, um die Gebietsschemaeinstellung des Computers zu ermitteln, auf dem der Bericht ausgeführt wird. Hinweis: 480 • „SelectionLocale“ basiert auf einer Konstantenfunktion, die Sie in der Formelsprache von Crystal Reports verwenden können (einschließlich Datensatz- und Gruppenauswahlfilter). Diese Funktion wird nur aktualisiert, wenn auch die Daten Ihres Berichts aktualisiert werden. • Wenn Sie Ihren Bericht unter BusinessObjects Enterprise zeitgesteuert verarbeiten, verwendet diese Funktion das Gebietsschema des jeweiligen Anwenders, um die Datenbank abzufragen. Crystal Reports-Anwenderhandbuch Funktionen Warnungen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: SelectionLocale Erstellt ein Feld mit der Gebietsschemaeinstellung des Computers, auf dem der Bericht ausgeführt wird. Diese Formel erzielt dasselbe Ergebnis wie das Feld „Gebietsschema der Auswahl“ im Ordner „Spezialfelder“ (Dialogfeld „Feld-Explorer“). Warnungen Mit Hilfe der Warnungsfunktionen können Sie Druckzeitformeln erstellen, die auf die Ergebnisse von Berichtswarnungen verweisen. Jede Formel, die auf eine Warnung verweist, wird zu einer Druckzeitformel. IsAlertEnabled(Name der Warnung) IsAlertTriggered(Name der Warnung) AlertMessage(Name der Warnung) IsAlertEnabled(Name der Warnung) Basic- und Crystal-Syntax. Argumente • "Name der Warnung" ist der Name einer Warnung (in Anführungszeichen), die bereits vorliegt. Die verfügbaren Warnungen sind in der Liste "Warnungsnamen" aufgeführt, die nach dem Erstellen einer Warnung in der Funktionsstruktur des Formula Workshops angezeigt wird. Rückgabewert Boolescher Wert, aus dem hervorgeht, ob die Warnung aktiviert ist. Tipp: Eine Warnung können Sie aktivieren bzw. deaktivieren, indem Sie im Menü "Bericht" auf "Alarme erstellen" klicken. Wählen Sie die gewünschte Warnung aus, und klicken Sie auf Bearbeiten. Klicken Sie im Dialogfeld "Warnung bearbeiten" auf die Option "Aktiviert", um sie zu markieren bzw. die Markierung aufzuheben. Crystal Reports-Anwenderhandbuch 481 8 8 Funktionen Warnungen Beispiele Crystal-Syntax: If IsAlertEnabled("Warnung") Then AlertMessage("Warnung") Else "Warnung1 ist deaktiviert" Basic-Syntax: If IsAlertEnabled("Warnung") Then Formula = AlertMessage("Warnung") Else Formula = "Warnung1 ist deaktiviert" End If Mit Hilfe dieser Formel können Sie eine Meldung ausgeben lassen, mit der den Anwendern des Berichts angezeigt wird, ob eine Warnung aktiviert ist. So können Sie z. B. den Musterbericht Alerting.rpt öffnen, die Formel erstellen und „Warnung1“ durch „Sales“ (Name der Warnung im Musterbericht) ersetzen. Ziehen Sie dann die Formel in den Berichtkopf. Die Warnung "Sales" ist standardmäßig aktiviert, so dass die entsprechende Meldung im Berichtkopf erscheint. Wenn Sie die Warnung nun deaktivieren (Dialogfeld „Warnung bearbeiten“), wird im Bericht die von Ihnen in der Formel angegebene Deaktiviert-Meldung angezeigt. Anmerkungen Jede Formel, die auf eine Warnung verweist, wird zu einer Druckzeitformel. IsAlertTriggered(Name der Warnung) Basic- und Crystal-Syntax. Argumente • "Name der Warnung" ist der Name einer Warnung (in Anführungszeichen), die bereits vorliegt. Die verfügbaren Warnungen sind in der Liste "Warnungsnamen" aufgeführt, die nach dem Erstellen einer Warnung in der Funktionsstruktur des Formula Workshops angezeigt wird. Rückgabewert Boolescher Wert, aus dem hervorgeht, ob die Warnung „ausgelöst“ wird, also ob die Berichtdaten die in der Formel festgelegten Bedingungen für die Ausgabe einer Warnung erfüllen. 482 Crystal Reports-Anwenderhandbuch Funktionen Warnungen Beispiele Crystal-Syntax: If IsAlertTriggered("Warnung1") Then AlertMessage("Warnung") Else "nicht ausgelöst" Basic-Syntax: If IsAlertTriggered("Warnung1") Then Formula = AlertMessage("Warnung") Else Formula = "nicht ausgelöst" End If Mit Hilfe dieser Formel können Sie Meldungen ausgeben lassen, mit denen den Anwendern des Berichts angezeigt wird, welche Datensätze die Berichtswarnung ausgelöst haben. So können Sie z. B. den Musterbericht Alerting.rpt öffnen, die Formel erstellen und „Warnung1“ durch „Sales“ (Name der Warnung im Musterbericht) ersetzen. Ziehen Sie dann die Formel in den Detailbereich. (Unter Umständen müssen Sie die Größe des Detailbereichs ändern, um das Formelfeld vollständig sehen zu können.) Die Formel zeigt die Warnmeldung für Datensätze an, die die Bedingungen für die Ausgabe der Warnmeldung erfüllen; andernfalls wird in der Formel Ihre „Nicht ausgelöst“-Meldung angezeigt. Anmerkungen Jede Formel, die auf eine Warnung verweist, wird zu einer Druckzeitformel. AlertMessage(Name der Warnung) Basic- und Crystal-Syntax. Argumente • "Name der Warnung" ist der Name einer Warnung (in Anführungszeichen), die bereits vorliegt. Die verfügbaren Warnungen sind in der Liste "Warnungsnamen" aufgeführt, die nach dem Erstellen einer Warnung in der Funktionsstruktur des Formula Workshops angezeigt wird. Rückgabewert • Gibt die Warnmeldungs-Zeichenfolge für Datensätze an, die die Warnung auslösen (also für Datensätze, die die in der Formel für die Ausgabe von Warnmeldungen festgelegten Bedingungen erfüllen). • Gibt bei Datensätzen, die die Bedingungen für die Ausgabe von Warnmeldungen nicht erfüllen, eine leere Zeichenfolge ("") zurück. Crystal Reports-Anwenderhandbuch 483 8 8 Funktionen Zusätzliche Funktionen Beispiele Crystal-Syntax: If IsAlertEnabled("Warnung") Then AlertMessage("Warnung") Else "Warnung1 ist deaktiviert" Basic-Syntax: If IsAlertEnabled("Warnung") Then Formula = AlertMessage("Warnung") Else Formula = "Warnung1 ist deaktiviert" End If AlertMessage gibt in diesen Beispielen die Meldung zurück, die Sie bei der Erstellung der Warnung definiert haben. Anmerkungen Jede Formel, die auf eine Warnung verweist, wird zu einer Druckzeitformel. Zusätzliche Funktionen DateTo2000 (Datum, Zahl) DTSTo2000 (DatumUhrzeitFolge, Zahl) DTSToDate (DatumUhrzeitFolge) DTSToSeconds (DatumUhrzeitFolge) DTSToTimeString (DatumUhrzeitFolge) ExchGetId (Adresse) ExchGetOrganization (Adresse) ExchGetSite (Adresse) ExtractString (Ursprung, Anfangszeichenfolge, Endzeichenfolge) EventNumber (Ereignisnummer im Nachrichten-Trackingprotokoll) ExchGetPath (Pfad) ByteToText (Byte) FRCurrentRatio (Umlaufvermögen, KurzfristigeVerbindlichkeiten) FRQuickRatio (Umlaufvermögen, Bestand, KurzfristigeVerbindlichkeiten) FRDebtEquityRatio (GesObligo, GesEigenkapital) FREquityVsTotalAssets (GesEigenkapital, GesVermögen) FRNetProfitMargin (NettoGewinn, Verkauf) 484 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen FRGrossProfitMargin (BruttoGewinn, Verkauf) FROperatingProfitMargin (Gewinn, Verkauf) FRInterestCoverage (Barmittelfluss, Zinsausgaben) FRCashFlowVsTotalDebt (Barmittelfluss, GesSchulden) FRReturnOnEquity (NettoGewinn, GesEigenkapital) FRReturnOnNetFixedAssets (NettoGewinn, Reinvermögen) FRReturnOnTotalAssets (NettoGewinn, GesVermögen) FRReturnOnInvestedCapital (NettoGewinn, GesBankschulden, GesEigenkapital) FRReturnOnCommonEquity (NettoGewinn, Vorzugsdividende, Stammaktienkapital) FREarningsPerCommonShare (NettoGewinn, Vorzugsdividende, AnzStammaktien) FRAccRecTurnover (Forderungen, Verkauf, AnzTage) FRInventoryTurnover (Bestand, Verkauf, AnzTage) FRPriceEarningsRatio (Marktpreis, GewinnProAktie) FRDividendYield (Dividende, Marktpreis) Now Picture (Zchnflge, Bild) LooksLike (Zchnflge, Maske) Soundex (Zchnflge) DateTimeTo2000 (DatumUhrzeit, Zahl) DTSToDateTime (DatumUhrzeitFolge) DTSToTimeField (DatumUhrzeitFolge) DateTimeToDate (dateTime) DateTimeToTime (DatumUhrzeit) DateTimeToSeconds (DatumUhrzeit) DateTo2000 (Datum, Zahl) Basic- und Crystal-Syntax. Argumente • Datum: akzeptiert nur gültige Datumsfelder mit zwei- oder vierstelligen Jahreszahlen. Crystal Reports-Anwenderhandbuch 485 8 8 Funktionen Zusätzliche Funktionen • • Ein als Datumsfeld definiertes Datenbankfeld. Die Option Datei|Berichtoptionen sollte auf Datums-/Zeitfeld in Datum konvertieren eingestellt werden. • Die Funktion CDate (CDate(yyyy, MM, dd) ). Diese Funktion setzt vierstellige Jahreszahlen voraus. Wenn zweistellige Jahreszahlen eingegeben werden, geht die Funktion von 00xx aus (z.B. 98 AD). Zahl: eine Zahl zwischen 0 und 99, die mit dem gewünschten Jahr im Wertebereich übereinstimmt. Rückgabewert Ein Datumsfeld mit einer vierstelligen Jahreszahl Aktion • Zweistellige Jahreszahlen (xx) Wenn die Jahreszahl größer ist als die Zahl im Wertebereich, wird der zweistelligen Zahl 19 vorangestellt (19xx). Wenn die Jahreszahl kleiner als oder gleich der Zahl im Wertebereich ist, wird 20 vorangestellt (20xx). • 4stellige Jahreszahlen (19xx) Wenn die beiden letzten Stellen in der Jahreszahl größer als die Zahl im Wertebereich sind, wird die Jahreszahl im Datumsfeld beibehalten (19xx). Wenn die beiden letzten Stellen in der Jahreszahl kleiner als oder gleich der Zahl im Wertebereich sind, werden die ersten beiden Stellen in 20 (20xx) umgeändert. Wenn die ersten beiden Stellen im Jahresfeld 20 entsprechen, wird die Jahreszahl im Datumsfeld beibehalten (20xx). Hinweis: • Beachten Sie, dass das Datum nicht geändert wird, wenn die Jahreszahl kleiner als oder gleich 1899 und größer als oder gleich 100 ist. • Es hängt vom verwendeten Datenbanktreiber ab, ob die Daten Ihrer Datenbank als zwei- oder vierstellige (19xx) Jahreszahlen angesehen werden. Das Ergebnis der Formel sollte in beiden Fällen das Gleiche sein. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: In diesem Beispiel ist der Wert im Wertebereich größer als die Jahreszahl, die deshalb in 20XX umgeändert wird. DateTo2000(CDate(1993,12,12), 99) sollte 12.12.2093 zurückgeben 486 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen In diesem Beispiel ist der Wert im Wertebereich kleiner als die Jahreszahl, die deshalb nicht umgeändert wird. DateTo2000(CDate(1993,12,12), 92) sollte 12.12.1993 zurückgeben Andere Beispiele Im folgenden Beispiel hat die Funktion keine Auswirkungen auf das Datum. DateTo2000(CDate(1899,12,12), 99) sollte 12.12.1899 zurückgeben Im folgenden Beispiel hat die Funktion keine Auswirkungen auf das Datum. DateTo2000(CDate(100,12,12), 99) sollte 12.12.100 zurückgeben Einige Datenbanken verwalten die Jahreszahl in einem Datum als zweistelliges Feld, so dass das Datumsfeld in diesen Beispielen simuliert wird. DateTo2000(CDate(98,12,12), 99) sollte 12.12.2098 zurückgeben DateTo2000(CDate(98,12,12), 97) sollte 12.12.1998 zurückgeben DateTo2000(CDate(9,12,12), 10) sollte 12.12.2009 zurückgeben DateTo2000(CDate(1,12,12), 0) sollte 12.12.1901 zurückgeben DTSTo2000 (DatumUhrzeitFolge, Zahl) Basic- und Crystal-Syntax. Argumente • DatumUhrzeitFolge: akzeptiert nur gültige Datumsfelder mit zwei- oder vierstelligen Jahreszahlen. • Ein als Datumsfeld definiertes Datenbankfeld. Die Option „Berichtoptionen“ (Menü „Datei“) sollte auf „Datum-Uhrzeit-Felder in Datum-Uhrzeit-Zeichenfolgen konvertieren“ eingestellt werden. • Ein als Zeichenfolgefeld definiertes Datenbankfeld, das jedoch ein Datum enthält. • Eine in folgendem Format eingegebene Datums-/UhrzeitZeichenfolge: „jjjj/MM/tt HH:mm:ss.00“ oder „jj/MM/tt HH:mm:ss:00“, z. B. „1997/04/11 12:12:12.00“ oder „97/04/11 12:12:12.00“. Crystal Reports-Anwenderhandbuch 487 8 8 Funktionen Zusätzliche Funktionen • Zahl: eine Zahl zwischen 0 und 99, die mit dem gewünschten Jahr im Wertebereich übereinstimmt. Rückgabewert Eine DateTime-Zeichenfolge mit einer vierstelligen Jahreszahl. Aktion • Zweistellige Jahreszahlen (xx) Wenn die Jahreszahl größer ist als die Zahl im Wertebereich, wird der zweistelligen Zahl 19 vorangestellt (19xx). Wenn die Jahreszahl kleiner als oder gleich der Zahl im Wertebereich ist, wird 20 vorangestellt (20xx). • 4stellige Jahreszahlen (19xx) Wenn die beiden letzten Stellen in der Jahreszahl größer als die Zahl im Wertebereich sind, wird die Jahreszahl im Datumsfeld beibehalten (19xx). Wenn die beiden letzten Stellen in der Jahreszahl kleiner oder gleich der Zahl im Wertebereich sind, werden die ersten beiden Stellen in 20 (20xx) umgeändert. Wenn die ersten beiden Stellen im Jahresfeld 20 entsprechen, wird die Jahreszahl im Datumsfeld beibehalten (20xx). Hinweis: Beachten Sie, dass das Datum nicht geändert wird, wenn die Jahreszahl kleiner als oder gleich 1899 und größer als oder gleich 100 ist. Beispiele Hinweis: Damit die folgenden Beispiele korrekte Ergebnisse zurückgeben, müssen Sie auf Ihrem Computer das folgende Datumsformat eingestellt haben: „JJ.MM.TT“ oder „JJJJ.MM.TT“. Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: In diesem Beispiel ist der Wert im Wertebereich größer als die Jahreszahl, die deshalb in 20XX umgeändert wird. DTSTo2000(ToText(CDateTime(1988,12,12,12,12,12)), 90) Gibt 12.12.88 12:12:12 zurück. In diesem Beispiel ist der Wert im Wertebereich kleiner als die Jahreszahl, die deshalb nicht umgeändert wird. DTSTo2000(ToText(CDateTime(1984,12,12,1,2,3)), 83) Gibt 12.12.1984 01:02:03 am zurück. 488 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Andere Beispiele Nachstehend sind Datumsbeispiele aufgeführt, auf die die Funktion keinen Einfluss nimmt. DTSTo2000(ToText(CDateTime(1899,12,12,1,2,3)), 99) Gibt 12.12.1899 01:02:03 zurück. DTSTo2000(ToText(CDateTime(1899,12,12)), 99) Gibt 12.12.1899 12:00:00 zurück. DTSTo2000(ToText(CDateTime(100,12,12,1,2,3)), 99) Gibt 12.12.100 01:02:03 zurück. Einige Datenbanken verwalten die Jahreszahl in einem Datum als zweistelliges Feld, so dass das Datumsfeld in diesen Beispielen simuliert wird. DTSTo2000(ToText(CDateTime(98,12,12,1,2,3)), 99) sollte 12.12.2098 01:02:03 am zurückgeben. DTSTo2000(ToText(CDateTime(98,12,12,1,2,3)), 97) sollte 12.12.1998 01:02:03 am zurückgeben. DTSTo2000(ToText(CDateTime(98,12,12)), 97) Gibt 12.12.98 12:00:00 zurück. DTSTo2000(ToText(CDateTime(9,12,12,1,2,3)), 10) sollte 12.12.2009 1:02:03 am zurück. DTSTo2000(ToText(CDateTime(1,12,12,1,2,3)), 0) Gibt 12.12.1901 01:02:03 am zurück. DTSToDate (DatumUhrzeitFolge) Basic- und Crystal-Syntax. Argumente • "DatumUhrzeitFolge" ist eine Zeichenfolge mit einem Datums- und TimeWert. Rückgabewert Date-Wert Aktion Wertet die angegebene Zeichenfolge aus und gibt nur das Datum zurück. Crystal Reports-Anwenderhandbuch 489 8 8 Funktionen Zusätzliche Funktionen Beispiele DTSToDate ("2000/01/13 11:30:15") Gibt den Date-Wert 13. Januar 2000 zurück. Der Monat muss als 01 eingegeben werden, nicht nur als 1. Anmerkungen Der von der Funktion DTSToDate zurückgegebene Date-Wert entspricht dem Datum um Mitternacht. Der Time-Wert wird entfernt, und Mitternacht dient als implizite Zeit des Datums. Dies ist nur dann von Bedeutung, wenn Sie Operationen mit dem zurückgegebenen Datum durchführen, z.B. einen TimeWert hinzufügen. Hinweis: Verwenden Sie für neue Formeln die Funktionen CDate oder DateValue anstelle von DTSToDate. Die Funktionen CDate und DateValue können mehr Zeichenfolgetypen konvertieren. DTSToSeconds (DatumUhrzeitFolge) Basic- und Crystal-Syntax. Argumente • DatumUhrzeitFolge ist eine Zeichenfolge mit einem Datums- und TimeWert. Rückgabewert Ganze Zahl Aktion Wertet die angegebene Zeichenfolge aus und wandelt den Time-Wert in die Anzahl der Sekunden von 00:00:00 (Mitternacht) bis zur angegebenen Zeit um. Beispiele Das folgende Beispiel gilt für die Crystal-Syntax: DTSToSeconds("2000/01/13 11:30:15") Gibt 41415 zurück. Anmerkungen Anstelle der Funktion DTSToSeconds können Sie folgende Funktionen verwenden: DateDiff ("s", #12:00 am#, CDateTime (CDate(0,0,0), CTime (DateTimeString))) 490 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Mit dem oben aufgeführten Ausdruck können mehr Zeichenfolgetypen konvertiert werden. DTSToTimeString (DatumUhrzeitFolge) Basic- und Crystal-Syntax. Argumente • DatumUhrzeitFolge ist eine Zeichenfolge mit einem Datums- und TimeWert. Rückgabewert Zeitzeichenfolgewert Aktion Wertet die angegebene Zeichenfolge aus und gibt nur den Time-Wert in militärischem Format (00:00:00) zurück. Beispiele Das folgende Beispiel gilt für die Crystal-Syntax: DTSToTime(„1998/10/25 08:35:30“) Gibt 08:35:30 zurück. ExchGetId (Adresse) Basic- und Crystal-Syntax. Argument Adresse ist die Adresse des Absenders/Empfängers (Datentyp Zeichenfolge) Rückgabewert Zeichenfolge Aktion Die Funktion ExchGetID (Adresse) bestimmt zunächst, ob die Adresse das X.500- oder das X.400-Format hat. Im Anschluss daran ermittelt die Funktion die Kennung (ID). • Liegt das Feld im X500-Format vor, ermittelt die Funktion den Wert der letzten Instanz des „CN=“-Codes (Groß-/Kleinschreibung wird nicht berücksichtigt). Crystal Reports-Anwenderhandbuch 491 8 8 Funktionen Zusätzliche Funktionen • Liegt das Feld im X400-Format vor, ermittelt die Funktion die SMTP- oder MS-Kennung (ID). Hinweis: Die Felder müssen die Adresstypstandards der verarbeitenden Funktionen erfüllen. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Feld = /o=Business Objects/ou=CRYSTALNT /cn=Configuration/cn=Servers/cn=ESPRESSO/cn=Fredt ExchGetID({Feld}) Gibt „Fredt“ zurück. Feld = c=US; a= ;p=Microsoft; o=apps-wga; dda:[email protected] ExchGetID({Feld}) Gibt „[email protected]“ zurück. Feld = c=US; a= ;p=Microsoft; o=apps-wga; dda:ms=com/ crystal/James ExchGetID({Feld}) Gibt „com/crystal/James“ zurück. ExchGetOrganization (Adresse) Basic- und Crystal-Syntax. Argumente • Adresse ist die Adresse des Absenders/Empfängers (Datentyp Zeichenfolge) Rückgabewert Zeichenfolge Aktion Die Funktion bestimmt zunächst, ob die Adresse das X.500- oder das X.400Format hat. Im Anschluss daran ermittelt die Funktion den Namen des Unternehmens. • 492 Liegt das Feld im X500-Format vor, ermittelt die Funktion den Wert der letzten Instanz des „/O=“-Codes (Groß-/Kleinschreibung wird nicht berücksichtigt). Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen • Liegt das Feld im X400-Format vor, ermittelt die Funktion den Wert der Instanz des „P=“-Codes (Groß-/Kleinschreibung wird nicht berücksichtigt). Hinweis: Die Felder müssen die Adresstypstandards der verarbeitenden Funktionen erfüllen. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Feld = /o=Business Objects/ou=CRYSTALNT/ cn=Configuration/ cn=Servers/cn=ESPPRESSO/cn=Fredt ExchGetOrganization({Feld}) Rückgabewert „Business Objects“ Feld = c=US; a= ; p=Microsoft; o=apps-wga; da:ms=com/ Rich/James. ExchGetOrganization({Feld}) Gibt „Microsoft“ zurück. Feld = c=US; a= ;p=Microsoft; o=apps-wga; da:[email protected]. ExchGetOrganization({Feld}) Gibt „Microsoft“ zurück. ExchGetSite (Adresse) Basic- und Crystal-Syntax. Argument(e) Adresse ist die Adresse des Absenders/Empfängers (Datentyp Zeichenfolge) Rückgabewert Zeichenfolge Aktion Die Funktion bestimmt zunächst, ob die Adresse das X.500- oder das X.400Format hat. Im Anschluss daran ermittelt die Funktion den Namen des Standorts (Site). • Liegt das Feld im X500-Format vor, ermittelt die Funktion den Wert der letzten Instanz des „/OU=“-Codes (Groß-/Kleinschreibung wird nicht berücksichtigt). Crystal Reports-Anwenderhandbuch 493 8 8 Funktionen Zusätzliche Funktionen • Liegt das Feld im X400-Format vor, ermittelt die Funktion den Wert der Instanz des „O=“-Codes (Groß-/Kleinschreibung wird nicht berücksichtigt). Hinweis: Die Felder müssen die Adresstypstandards der verarbeitenden Funktionen erfüllen. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Feld = /o=Business Objects/ou=CRYSTALNT/ cn=Configuration/cn=Servers/cn=ESPRESSO/cn=Fredt ExchGetSite({Feld}) Gibt „CRYSTALNT“ zurück. c=US;a= ;p=Microsoft;o=apps-wga;dda:[email protected]. ExchGetSite({Feld}) Gibt „apps-wga“ zurück. ExtractString (Ursprung, Anfangszeichenfolge, Endzeichenfolge) Basic- und Crystal-Syntax. Argumente • • • Ursprung: Zeichenfolge Anfangszeichenfolge: Zeichenfolge Endzeichenfolge: Zeichenfolge Rückgabewert Zeichenfolge Aktion Die Funktion gibt das erste Vorkommen (in der Ursprungszeichenfolge) einer Zeichenfolge zurück, die mit der Anfangszeichenfolge beginnt und mit der Endzeichenfolge endet. Wenn die Endzeichenfolge nicht gefunden wird, lautet die zurückgegebene Zeichenfolge wie folgt: beginnend mit der Anfangszeichenfolge bis zum Ende der Zeichenfolge. 494 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: StringVar strTest := "James und crystal"; ExtractString (strTest,"J","s"); Gibt "ame" zurück. StringVar strTest := "James und crystal"; ExtractString (strTest, "", "s"); Gibt „Jame“ zurück. EventNumber (Ereignisnummer im NachrichtenTrackingprotokoll) Basic- und Crystal-Syntax. Argumente • Ereignisnummer ist ein Zahlenwert, der einem von Exchange protokollierten Ereignis entspricht. Rückgabewert Zeichenfolge Aktion Die Funktion gibt für das von Exchange protokollierte Ereignis die geeignete Textbeschreibung zurück, die mit der Ereignisnummer übereinstimmt. Falls keine geeignete Textbeschreibung für eine Ereignisnummer vorhanden ist, wird die Meldung „Unbekanntes Ereignis“ zurückgegeben, wobei die Ereignisnummer hinter der Meldung in Klammern erscheint. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: EventNumber (1000) Gibt „Lokale Lieferung“ zurück. EventNumber (4) Gibt „Message Submission“ zurück. EventNumber (0) Gibt „Nachricht erhalten“ zurück. EventNumber (100) Gibt „Unbekanntes Ereignis(100)“ zurück. Crystal Reports-Anwenderhandbuch 495 8 8 Funktionen Zusätzliche Funktionen ExchGetPath (Pfad) Basic- und Crystal-Syntax. Argumente • Pfad ist die Adresse des Absenders/Empfängers (Datentyp Zeichenfolge) Rückgabewert Zeichenfolge Aktion Die Funktion gibt die in einem Adressfeld enthaltenen Containerinformationen zurück. • Liegt die Adresse im X500-Format vor, gibt die Funktion alle Informationen von der ersten Instanz des „CN=“-Codes bis zur letzten Instanz des „CN=“-Codes zurück. Gibt es nur eine Instanz des „CN=“Codes, gibt die Funktion den Wert NULL zurück. • Liegt die Adresse im X400-Format vor, gibt die Funktion alle „OU*=“Codes zurück (die sich zwischen den „P=“- und „O=“-Codes befinden). • Wenn die Adresse mit „DDA:“ beginnt, gibt die Funktion alle Informationen zurück, die auf den „DDA:“-Code folgen. folgen. • Ist das Feld dagegen leer, gibt die Funktion den Text „UNKNOWN ADDRESS“ zurück. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Feld = /o=Business Objects/ou=CRYSTALNT/ cn=Configuration/cn=Servers/cn=ESPRESSO/cn=Fredt ExchGetPath ({Feld}) Gibt „cn=Configuration/cn=Servers/cn=ESPRESSO“ zurück. Feld = c=US; a= ; p=Microsoft; ou1=James; ou2=RichCorp; o=apps-wga; dda:[email protected] ExchGetPath ({Feld}) Gibt „ou1=James; ou2=Richcorp“ zurück. Feld = DDA:MS=CRYSTAL/JAMES/crystal ExchGetpath9{Feld}) Gibt „MS=CRYSTAL/JAMES/crystal“ zurück. 496 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen ByteToText (Byte) Basic- und Crystal-Syntax. Argumente • „Byte“ ist eine Zahl, die Speicherplatz in Byte angibt. Rückgabewert Zeichenfolge Aktion Diese Funktion gibt eine Zeichenfolgenbeschreibung der übergebenen Zahl zurück. • Ist der Wert des Arguments kleiner als 1024, wird das Ergebnis in Byte zurückgegeben. • Liegt der Wert des Arguments zwischen 1024 und 1048576, wird das Ergebnis in Kilobyte zurückgegeben. • In allen anderen Fällen wird das Ergebnis in Megabyte zurückgegeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: ByteToText(1000) Gibt „1000 bytes“ zurück. ByteToText(345555) Gibt „337KB“ zurück. FRCurrentRatio (Umlaufvermögen, KurzfristigeVerbindlichkeiten) Basic- und Crystal-Syntax. Format FRCurrentRatio(Umlaufvermögen, KurzfristigeVerbindlichkeiten) Argumente • "Umlaufvermögen" ist eine Zahl oder Formel. Umlaufvermögen besteht in der Regel aus Barmitteln, Forderungen, Bestand, transitorischen Aktiva und börsengängigen Geldanlagen auf kurze Sicht in der Bilanz eines Unternehmens. Crystal Reports-Anwenderhandbuch 497 8 8 Funktionen Zusätzliche Funktionen • "KurzfristigeVerbindlichkeiten" ist eine Zahl oder Formel. Kurzfristige Verbindlichkeiten bestehen in der Regel aus Bankkrediten, Verbindlichkeiten, zahlbaren Dividenden/Einkommenssteuer und den langfristigen Darlehen, die innerhalb eines Jahres fällig sind, in der Bilanz eines Unternehmens. Aktion FRCurrentRatio gibt das Verhältnis zwischen Umlaufvermögen und kurzfristigen Verbindlichkeiten zurück (z. B. CurrentRatio = Umlaufvermögen / KurzfristigeVerbindlichkeiten). Typische Verwendungen Mit diesem Verhältnis wird die Kurzzeitliquidität eines Unternehmens gemessen. Dabei wird versucht zu ermitteln, inwieweit der Wert des Umlaufvermögens den Wert kurzfristiger Verbindlichkeiten überschreitet. Je höher die Kennzahl, desto höher die Liquidität. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRCurrentRatio(5, 2.5) Gibt 2 zurück. FRCurrentRatio(4.2, 2) Gibt 2.1 zurück. FRCurrentRatio(1.1, 2.2) Gibt 0,5 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRCurrentRatio ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. 498 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FRQuickRatio (Umlaufvermögen, Bestand, KurzfristigeVerbindlichkeiten) Basic- und Crystal-Syntax. Format FRQuickRatio(Umlaufvermögen, Bestand, KurzfristigeVerbindlichkeiten) Argumente • "Umlaufvermögen" ist eine Zahl oder Formel. Das Umlaufvermögen besteht in der Regel aus Barmitteln, Forderungen, Bestand, transitorischen Aktiva und börsengängigen Geldanlagen auf kurze Sicht in der Bilanz eines Unternehmens. • "Bestand" ist eine Zahl oder Formel. Der Bestand umfasst in der Regel Rohstoffe, unfertige Erzeugnisse und Enderzeugnisse in der Bilanz eines Unternehmens. • "KurzfristigeVerbindlichkeiten" ist eine Zahl oder Formel. Kurzfristige Verbindlichkeiten bestehen in der Regel aus Bankkrediten, Verbindlichkeiten, zahlbaren Dividenden/Einkommenssteuer und den langfristigen Darlehen, die innerhalb eines Jahres fällig sind, in der Bilanz eines Unternehmens. Aktion FRQuickRatio gibt das Verhältnis zwischen Umlaufvermögen (abzüglich Bestand) und kurzfristigen Verbindlichkeiten zurück (z. B. QuickRatio = (Umlaufvermögen - Bestand) / KurzfristigeVerbindlichkeiten). Crystal Reports-Anwenderhandbuch 499 8 8 Funktionen Zusätzliche Funktionen Typische Verwendungen Da die Umwandlung von Rohmaterial in Enderzeugnisse Zeit in Anspruch nimmt und Enderzeugnisse im Prinzip keine flüssigen Mittel darstellen, wird der Bestand bei der Berechnung der Liquidität des Unternehmens anhand dieser Relation aus dem Umlaufvermögen entfernt. Die Kennzahl gibt an, inwieweit kurzfristige Verbindlichkeiten durch Bargeld und gleichwertige Mittel gedeckt sind. Je höher die Kennzahl, desto höher die Liquidität. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRQuickRatio(7.2, 2.2, 2) Gibt 2.5 zurück. FRQuickRatio(3, 1.5, 3) Gibt 0,5 zurück. Hinweis: • Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. • Der Formula Workshop prüft automatisch, ob Bestand kleiner oder gleich Umlaufvermögen ist. Wenn Umlaufvermögen kleiner ist als Bestand, erhalten Sie eine Fehlermeldung. Anmerkungen FRQuickRatio ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. 500 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen FRDebtEquityRatio (GesObligo, GesEigenkapital) Basic- und Crystal-Syntax. Format FRDebtEquityRatio(GesObligo, GesEigenkapital) Argumente • "GesObligo" ist eine Zahl oder Formel. Das Gesamtobligo besteht in der Regel aus allen kurz- und langfristigen Verbindlichkeiten in der Bilanz eines Unternehmens. Einige Analytiker berücksichtigen jedoch nur kurzund langfristige Bankschulden beim Berechnen dieser Kennzahl. • "GesEigenkapital" ist eine Zahl oder Formel. Das Gesamteigenkapital besteht in der Regel aus Stammaktien, Vorzugsaktien, nicht aus Jahresüberschüssen stammenden Rücklagen und Gewinnrücklagen in der Bilanz eines Unternehmens. Aktion FRDebtEquityRatio gibt das Verhältnis zwischen Gesamtobligo und Gesamteigenkapital zurück (z.B. DebtEquityRatio = GesObligo / GesEigenkapital). Typische Verwendungen Mit diesem Verhältnis wird die Kapitalstruktur des Unternehmens gemessen. Dabei kann die Relation zwischen Gesamtobligo/-schulden und Eigenkapital eines Unternehmens ermittelt werden, aus der sich Rückschlüsse darauf ziehen lassen, ob das Unternehmen zu viele Kredite aufnimmt. Je höher die Kennzahl, desto größer das finanzielle Risiko. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRDebtEquityRatio(2.6, 1.3) Gibt 2 zurück. FRDebtEquityRatio(1.5, 2.5) Gibt 0.6 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Crystal Reports-Anwenderhandbuch 501 8 8 Funktionen Zusätzliche Funktionen Anmerkungen FRDebtEquityRatio ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FREquityVsTotalAssets (GesEigenkapital, GesVermögen) Basic- und Crystal-Syntax. Format FREquityVsTotalAssets(GesEigenkapital, GesVermögen) Argumente • "GesEigenkapital" ist eine Zahl oder Formel. Das Gesamteigenkapital besteht in der Regel aus Stammaktien, Vorzugsaktien, nicht aus Jahresüberschüssen stammenden Rücklagen und Gewinnrücklagen in der Bilanz eines Unternehmens. • "GesVermögen" ist eine Zahl oder Formel. Das Gesamtvermögen besteht in der Regel aus dem Gesamtumlaufvermögen, Reinvermögen und allen anderen Vermögenswerten in der Bilanz eines Unternehmens. Aktion FREquityVsTotalAssets gibt das Verhältnis zwischen Gesamteigenkapital und Gesamtvermögen zurück (z. B. EquityVsTotalAssets = GesEigenkapital / GesVermögen). Typische Verwendungen Mit diesem Verhältnis wird die Finanzstruktur eines Unternehmens gemessen. Je höher die Kennzahl, desto stärker die Kapitalstruktur des Unternehmens und desto besser seine Kapitalisierung. 502 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FREquityVsTotalAssets(2, 4) Gibt 0,5 zurück. FREquityVsTotalAssets(2.82, 18.8) Gibt 0.15 zurück. Hinweis: • Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. • "GesEigenkapital" muss kleiner oder gleich "GesVermögen", da Sie sonst eine Fehlermeldung erhalten. Anmerkungen FREquityVsTotalAssets ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FRNetProfitMargin (NettoGewinn, Verkauf) Basic- und Crystal-Syntax. Format FRNetProfitMargin(NettoGewinn, Verkauf) Argumente • "NettoGewinn" ist eine Zahl oder Formel. "NettoGewinn" zeigt das Einkommen eines Unternehmens aus dem Verkauf seiner Produkte oder Dienstleistungen abzüglich der Ausgabenposten in einem Geschäftsjahr an. Der Nettogewinn entspricht dem Saldo in der Gewinn- und Verlustrechnung eines Unternehmens. Crystal Reports-Anwenderhandbuch 503 8 8 Funktionen Zusätzliche Funktionen Einige Analytiker verwenden den Nettogewinn vor Sonderposten bzw. Einkommenssteuern unter Umständen zur Berechnung dieser Kennzahl. • "Verkauf" ist eine Zahl oder Formel. "Verkauf" zeigt die Gesamtverkäufe in dem Zeitraum, über den sich die Gewinn- und Verlustrechnung eines Unternehmens erstreckt, an. Aktion FRNetProfitMargin gibt das Verhältnis zwischen Nettogewinn und Verkauf zurück (z. B. NetProfitMargin = NettoGewinn / Verkauf). Typische Verwendungen Mit diesem Verhältnis wird gemessen, wie gewinnbringend ein Unternehmen arbeitet. Je höher das Ergebnis, desto gewinnbringender arbeitet das Unternehmen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRNetProfitMargin(3, 50) Gibt 0.06 zurück. FRNetProfitMargin(5.6, 100) Gibt 0.056 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRNetProfitMargin ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. 504 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen FRGrossProfitMargin (BruttoGewinn, Verkauf) Basic- und Crystal-Syntax. Format FRGrossProfitMargin(BruttoGewinn, Verkauf) Argumente • "BruttoGewinn" ist eine Zahl oder Formel. Der Bruttogewinn entspricht in der Regel dem Verkauf abzüglich der Selbstkosten in der Gewinn- und Verlustrechnung eines Unternehmens. • "Verkauf" ist eine Zahl oder Formel. "Verkauf" zeigt die Gesamtverkäufe in dem Zeitraum, über den sich die Gewinn- und Verlustrechnung eines Unternehmens erstreckt, an. Aktion FRGrossProfitMargin gibt das Verhältnis zwischen Bruttogewinn und Verkauf zurück (z. B. GrossProfitMargin = BruttoGewinn/Verkauf). Typische Verwendungen Mit diesem Verhältnis wird der Gewinn gemessen, der aus dem Warenverkauf vor Abzug aller anderen Ausgaben entsteht. Das Ergebnis variiert von Industriezweig zu Industriezweig und richtet sich danach, wie die Buchhaltung die in den Selbstkosten enthaltenen Fertigungskosten handhabt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRGrossProfitMargin(3.4, 50) Gibt 0.068 zurück. FRGrossProfitMargin(36.15, 120.5) Gibt 0.3 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Crystal Reports-Anwenderhandbuch 505 8 8 Funktionen Zusätzliche Funktionen Anmerkungen FRGrossProfitMargin ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FROperatingProfitMargin (Gewinn, Verkauf) Basic- und Crystal-Syntax. Format FROperatingProfitMargin(Gewinn, Verkauf) Argumente • "Betriebsgewinn" ist eine Zahl oder Formel. Der Betriebsgewinn entspricht in der Regel dem Bruttogewinn abzüglich aller Verwaltungs-, Vertriebs- und Allgemeinkosten in der Gewinn- und Verlustrechnung eines Unternehmens. • "Verkauf" ist eine Zahl oder Formel. "Verkauf" zeigt die Gesamtverkäufe in dem Zeitraum, über den sich die Gewinn- und Verlustrechnung eines Unternehmens erstreckt, an. Aktion FROperatingProfitMargin gibt das Verhältnis zwischen Betriebsgewinn und Verkauf zurück (z. B. OperatingProfitMargin = Betriebsgewinn/Verkauf). Typische Verwendungen Mit der Funktion FROperatingProfitMargin wird die Umsatzrendite nach Abzug aller direkt damit verbundenen Kosten gemessen. Das Ergebnis lässt Rückschlüsse darauf ziehen, wie rentabel die Geschäfte eines Unternehmens sind. Je höher das Ergebnis, desto höher die Rentabilität des Unternehmens. 506 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FROperatingProfitMargin(3.3, 30) Gibt 0.11 zurück. FROperatingProfitMargin(11, 16.5) Gibt 0.6875 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FROperatingProfitMargin ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FRInterestCoverage (Barmittelfluss, Zinsausgaben) Basic- und Crystal-Syntax. Format FRInterestCoverage(Barmittelfluss, Zinsausgaben) Argumente • "Barmittelfluss" ist eine Zahl oder Formel. Meistens entspricht CashFlow dem Nettogewinn des Unternehmens zuzüglich aller Ausgabenposten, für die keine Barmittel erforderlich sind (z. B. Abschreibungen, Kapitalverlust usw.), und abzüglich aller bargeldlosen Gewinne (z. B. Kapitalveräußerungsgewinne usw.). Diese Informationen sind in der Gewinn- und Verlustrechnung und dem Bericht zur Änderung der Finanzlage eines Unternehmens enthalten. Crystal Reports-Anwenderhandbuch 507 8 8 Funktionen Zusätzliche Funktionen • "Zinsausgaben" ist eine Zahl oder Formel. Zinsausgaben ist eine Zahl oder Formel, die die Gesamtzinsausgaben anzeigt, die in der Gewinnund Verlustrechnung eines Unternehmens offengelegt werden. Aktion FRInterestCoverage gibt das Verhältnis zwischen Barmittelfluss und Zinsausgaben zurück (z.B. InterestCoverage = Barmittelfluss/Zinsausgaben). Typische Verwendungen Mit diesem Verhältnis wird die Fähigkeit eines Unternehmens, die Zinsbelastungen für seine Schulden mit dem Barmittelfluss aus seinen Transaktionen zu zahlen, gemessen. Die Kennzahl entspricht in der Regel einer Anzahl von Malen (z.B. 3X usw.). Je höher das Ergebnis, desto größer die Fähigkeit des Unternehmens, seine Zinszahlungen auch bei einem Anstieg des Zinssatzes einzuhalten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRInterestCoverage(120, 50) Gibt 2.40 zurück. FRInterestCoverage(30, 100) Gibt 0.3 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRInterestCoverage ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. 508 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen FRCashFlowVsTotalDebt (Barmittelfluss, GesSchulden) Basic- und Crystal-Syntax. Format FRCashFlowVsTotalDebt(Barmittelfluss, GesSchulden) Argumente • "Barmittelfluss" ist eine Zahl oder Formel. Meistens entspricht CashFlow dem Nettogewinn des Unternehmens zuzüglich aller Ausgabenposten, für die keine Barmittel erforderlich sind (z. B. Abschreibungen, Kapitalverlust usw.), abzüglich aller bargeldlosen Gewinne (z. B. Kapitalveräußerungsgewinne usw.). Diese Informationen sind in der Gewinn- und Verlustrechnung und dem Bericht zur Änderung der Finanzlage eines Unternehmens enthalten. • "GesSchulden" ist eine Zahl oder Formel. In der Regel sind die kurzfristigen und langfristigen Gesamtbankdarlehen darunter zu verstehen. Einige Analytiker betrachten sogar alle Kurz- und Langzeitverbindlichkeiten als Teil der Gesamtschulden. Diese Informationen sind in der Gewinn- und Verlustrechnung eines Unternehmens enthalten. Aktion FRCashFlowVSTotalDebt gibt das Verhältnis zwischen Cashflow und Gesamtverschuldung zurück (z. B. CashFlowVsTotalDebt = Cashflow / Gesamtverschuldung). Typische Verwendungen Mit diesem Verhältnis wird die Fähigkeit eines Unternehmens, seine Gesamtschulden durch in Transaktionen erzeugtem Barmittelfluss zu bezahlen, gemessen. In der Regel entspricht das Ergebnis einer Anzahl von Malen. Je höher das Ergebnis, desto größer die Fähigkeit des Unternehmens, seine Schulden abzubezahlen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRCashFlowVsTotalDebt(45, 30) Gibt 1.5 zurück. Crystal Reports-Anwenderhandbuch 509 8 8 Funktionen Zusätzliche Funktionen FRCashFlowVsTotalDebt(74.4, 93) Gibt 0.8 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRCashFlowVsTotalDebt ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FRReturnOnEquity (NettoGewinn, GesEigenkapital) Basic- und Crystal-Syntax. Format FRReturnOnEquity(NettoGewinn, GesEigenkapital) Argumente 510 • "NettoGewinn" ist eine Zahl oder Formel. "NettoGewinn" zeigt das Einkommen eines Unternehmens aus dem Verkauf seiner Produkte oder Dienstleistungen abzüglich der Ausgabenposten in einem Geschäftsjahr an. Der Nettogewinn entspricht dem Saldo in der Gewinn- und Verlustrechnung eines Unternehmens. Einige Analytiker verwenden den Nettogewinn vor Sonderposten bzw. Einkommenssteuern unter Umständen zur Berechnung dieser Kennzahl. • "GesEigenkapital" ist eine Zahl oder Formel. Das Gesamteigenkapital besteht in der Regel aus Stammaktien, Vorzugsaktien, nicht aus Jahresüberschüssen stammenden Rücklagen und Gewinnrücklagen in der Bilanz eines Unternehmens. Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Aktion FRReturnOnEquity gibt das Verhältnis zwischen Nettogewinn und Gesamteigenkapital zurück (z. B. ReturnOnEquity = Nettogewinn / Gesamteigenkapital). Typische Verwendungen Mit diesem Verhältnis wird der Ertrag aus dem für den Unternehmensbetrieb erforderlichen Gesamtkapital gemessen. Je höher das Ergebnis, desto höher der Ertrag. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRReturnOnEquity(34.5,150) Gibt 0.23 zurück. FRReturnOnEquity(12, 15) Gibt 0.8 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRReturnOnEquity ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. Crystal Reports-Anwenderhandbuch 511 8 8 Funktionen Zusätzliche Funktionen FRReturnOnNetFixedAssets (NettoGewinn, Reinvermögen) Basic- und Crystal-Syntax. Format FRReturnOnNetFixedAssets(NettoGewinn, Reinvermögen) Argumente • "NettoGewinn" ist eine Zahl oder Formel. "NettoGewinn" zeigt das Einkommen eines Unternehmens aus dem Verkauf seiner Produkte oder Dienstleistungen abzüglich der Ausgabenposten in einem Geschäftsjahr an. Der Nettogewinn entspricht dem Saldo in der Gewinn- und Verlustrechnung eines Unternehmens. Einige Analytiker verwenden den Nettogewinn vor Sonderposten bzw. Einkommenssteuern unter Umständen zur Berechnung dieser Kennzahl. • "Reinvermögen" ist eine Zahl oder Formel. Sie entspricht dem Gesamtanlagevermögen abzüglich der aufgelaufenen Abschreibung in der Bilanz eines Unternehmens. Aktion FRReturnOnNetFixedAssets gibt das Verhältnis zwischen Nettogewinn und Reinvermögen zurück (z.B. ReturnOnNetFixedAssets = NettoGewinn/ Reinvermögen). Typische Verwendungen Mit diesem Verhältnis wird der Ertrag aus investiertem Anlagevermögen gemessen. Diese Kennzahl wird in der Regel dazu verwendet, die Rentabilität von Fertigungsbetrieben oder Dienstleistungsunternehmen zu ermitteln, die ihr Anlagevermögen investieren müssen, um ihre Dienstleistungen anbieten zu können (z. B. Fluggesellschaften usw.). Je höher die Kennzahl, desto höher der Ertrag. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRReturnOnNetFixedAssets(34, 50) Gibt 0.68 zurück. 512 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen FRReturnOnNetFixedAssets(50.4, 42) Gibt 1,2 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRReturnOnNetFixedAssets ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FRReturnOnTotalAssets (NettoGewinn, GesVermögen) Basic- und Crystal-Syntax. Format FRReturnOnTotalAssets(NettoGewinn, GesVermögen) Argumente • "NettoGewinn" ist eine Zahl oder Formel. "NettoGewinn" zeigt das Einkommen eines Unternehmens aus dem Verkauf seiner Produkte oder Dienstleistungen abzüglich der Ausgabenposten in einem Geschäftsjahr an. Der Nettogewinn entspricht dem Saldo in der Gewinn- und Verlustrechnung eines Unternehmens. Einige Analytiker verwenden den Nettogewinn vor Sonderposten bzw. Einkommenssteuern unter Umständen zur Berechnung dieser Kennzahl. • "GesVermögen" ist eine Zahl oder Formel. Das Gesamtvermögen besteht in der Regel aus dem Gesamtumlaufvermögen, Reinvermögen und allen anderen Vermögenswerten in der Bilanz eines Unternehmens. Crystal Reports-Anwenderhandbuch 513 8 8 Funktionen Zusätzliche Funktionen Aktion FRReturnOnTotalAssets gibt das Verhältnis zwischen Nettogewinn und Gesamtvermögen zurück (z.B. ReturnOnTotalAssets = NettoGewinn/ GesVermögen). Typische Verwendungen Mit diesem Verhältnis wird der Ertrag aus investiertem Gesamtkapital gemessen. Das Ergebnis gibt Aufschluss darüber, wie rentabel das Unternehmen sein Gesamtkapital investiert. Je höher das Ergebnis, desto höher die Rentabilität des Unternehmens. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRReturnOnTotalAssets(23, 100) Gibt 0.23 zurück. FRReturnOnTotalAssets(442, 340) Gibt 1,3 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRReturnOnTotalAssets ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. 514 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen FRReturnOnInvestedCapital (NettoGewinn, GesBankschulden, GesEigenkapital) Basic- und Crystal-Syntax. Format FRReturnOnInvestedCapital(NettoGewinn, GesBankschulden, GesEigenkapital) Argumente • "NettoGewinn" ist eine Zahl oder Formel. "NettoGewinn" zeigt das Einkommen eines Unternehmens aus dem Verkauf seiner Produkte oder Dienstleistungen abzüglich der Ausgabenposten in einem Geschäftsjahr an. Der Nettogewinn entspricht dem Saldo in der Gewinn- und Verlustrechnung eines Unternehmens. Einige Analytiker verwenden den Nettogewinn vor Sonderposten bzw. Einkommenssteuern unter Umständen zur Berechnung dieser Kennzahl. • "GesBankschulden" ist eine Zahl oder Formel. "GesBankschulden" zeigt alle kurz- und langfristigen Bankschulden eines Unternehmens an. Diese Informationen werden in der Bilanz eines Unternehmens offengelegt. • "GesEigenkapital" ist eine Zahl oder Formel. Das Gesamteigenkapital besteht in der Regel aus Stammaktien, Vorzugsaktien, nicht aus Jahresüberschüssen stammenden Rücklagen und Gewinnrücklagen in der Bilanz eines Unternehmens. Aktion FRReturnOnInvestedCapital gibt das Verhältnis zwischen Nettogewinn und investiertem Kapital (d. h. Gesamtbankschulden zuzüglich Gesamteigenkapital) zurück (z.B. ReturnOnInvestedCapital = NettoGewinn/ (GesBankschulden + GesEigenkapital)). Typische Verwendungen Mit diesem Verhältnis wird der Ertrag aus dem investierten Kapital eines Unternehmens gemessen, einschließlich aller Bankdarlehen und des Gesamteigenkapitals des Unternehmens. Je höher der Ertrag, desto besser. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRReturnOnInvestedCapital(23, 17, 33) Gibt 0.46 zurück. Crystal Reports-Anwenderhandbuch 515 8 8 Funktionen Zusätzliche Funktionen FRReturnOnInvestedCapital(54, 23, 17) Gibt 1.35 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRReturnOnInvestedCapital ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FRReturnOnCommonEquity (NettoGewinn, Vorzugsdividende, Stammaktienkapital) Basic- und Crystal-Syntax. Format FRReturnOnCommonEquity (NettoGewinn, Vorzugsdividende, Stammaktienkapital) Argumente • • 516 "NettoGewinn" ist eine Zahl oder Formel. "NettoGewinn" zeigt das Einkommen eines Unternehmens aus dem Verkauf seiner Produkte oder Dienstleistungen abzüglich der Ausgabenposten in einem Geschäftsjahr an. Der Nettogewinn entspricht dem Saldo in der Gewinn- und Verlustrechnung eines Unternehmens. Einige Analytiker verwenden den Nettogewinn vor Sonderposten bzw. Einkommenssteuern unter Umständen zur Berechnung dieser Kennzahl. "Vorzugsdividende" ist eine Zahl oder Formel. "Vorzugsdividende" zeigt die insgesamt an die Vorzugsaktieninhaber in der betreffenden Abrechnungsperiode ausgeschüttete Dividende an. Diese Informationen sind in der Gewinn- und Verlustrechnung und dem Bericht zur Änderung der Finanzlage eines Unternehmens enthalten. Sie können auch der Unternehmensbilanz entnommen werden. Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen • Stammaktienkapital ist eine Zahl oder Formel. "Stammaktienkapital" zeigt in der Regel die Summe aller Stammaktien, eingebrachten Gewinne und Gewinnrücklagen an. Diese Informationen werden in der Bilanz eines Unternehmens offengelegt. Aktion FRReturnOnCommonEquity gibt das Verhältnis zwischen dem an Stammaktieninhaber ausschüttbaren Nettogewinn (NettogewinnVorzugsdividende) und Stammaktienkapital zurück (z. B. ReturnOnCommonEquity = (Nettogewinn - Vorzugsdividende) / Stammaktienkapital). Typische Verwendungen Mit diesem Verhältnis wird der Gewinn aus Stammaktienkapital gemessen. Beachten Sie, dass Dividenden von Vorzugsaktien nicht bei der Berechnung berücksichtigt werden. Je höher das Ergebnis, desto höher der Ertrag. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRReturnOnCommonEquity(340, 40, 600) Gibt 0,5 zurück. FRReturnOnCommonEquity(245, 50, 150) Gibt 1,3 zurück. Hinweis: • Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. • Der Formula Workshop prüft automatisch, ob NettoGewinn kleiner als Vorzugsdividende ist. Wenn der NettoGewinn kleiner ist als die Vorzugsdividende, erhalten Sie eine Fehlermeldung. Anmerkungen FRReturnOnCommonEquity ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. Crystal Reports-Anwenderhandbuch 517 8 8 Funktionen Zusätzliche Funktionen FREarningsPerCommonShare (NettoGewinn, Vorzugsdividende, AnzStammaktien) Basic- und Crystal-Syntax. Format FREarningsPerCommonShare(NettoGewinn, Vorzugsdividende, AnzStammaktien) Argumente • "NettoGewinn" ist eine Zahl oder Formel. "NettoGewinn" zeigt das Einkommen eines Unternehmens aus dem Verkauf seiner Produkte oder Dienstleistungen abzüglich der Ausgabenposten in einem Geschäftsjahr an. Der Nettogewinn entspricht dem Saldo in der Gewinn- und Verlustrechnung eines Unternehmens. Einige Analytiker verwenden den Nettogewinn vor Sonderposten bzw. Einkommenssteuern unter Umständen zur Berechnung dieser Kennzahl. • "Vorzugsdividende" ist eine Zahl oder Formel. "Vorzugsdividende" zeigt die insgesamt an die Vorzugsaktieninhaber in der betreffenden Abrechnungsperiode ausgeschüttete Dividende an. Diese Informationen sind in der Gewinn- und Verlustrechnung und dem Bericht zur Änderung der Finanzlage eines Unternehmens enthalten. Sie können auch der Unternehmensbilanz entnommen werden. • "AnzStammaktien" ist eine Zahl oder Formel. Die Anzahl der Stammaktien entspricht in der Regel der Anzahl ausgegebener und in den Händen des Publikums befindlicher Aktien. Diese Informationen sind in der Bilanz eines Unternehmens enthalten. Aktion FREarningsPerCommonShare gibt das Verhältnis zwischen dem an Stammaktieninhaber ausschüttbaren Nettogewinn (NettoGewinnVorzugsdividende) und der Anzahl von Stammaktien zurück (z.B. EarningPerCommonShare = (NettoGewinn - Vorzugsdividende)/ AnzStammaktien). Typische Verwendungen Mit diesem Verhältnis wird die Gewinnberechtigung für eine Stammaktie berechnet. Die Kennzahl wird Seite an Seite mit der Dividende pro Stammaktie verwendet, um das Dividendenausschüttungsverhältnis zu ermitteln. Einige Analytiker führen unter Umständen eine Berechnung des Gewinns je Aktie unter Annahme einer Gewinnverbreiterung durch. Sie müssen dabei alle Stammaktien berücksichtigen, die aus den Vorzugsaktien mit Umtauschrecht umgewandelt werden. 518 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FREarningsPerCommonShare(550000, 50000, 100000) Gibt 5 zurück. FREarningsPerCommonShare(450000, 10000, 2000000) Gibt 0,22 zurück. Hinweis: • Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. • Der NettoGewinn kann nicht kleiner sein als die Vorzugsdividende, da Sie sonst eine Fehlermeldung erhalten. Anmerkungen FREarningsPerCommonShare ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FRAccRecTurnover (Forderungen, Verkauf, AnzTage) Basic- und Crystal-Syntax. Format FRAccRecTurnover(Forderungen, Verkauf, AnzTage) Argumente • "Forderungen" ist eine Zahl oder Formel. "Forderungen" zeigt die Gesamtforderungen in der Bilanz eines Unternehmens an. • "Verkauf" ist eine Zahl oder Formel. "Verkauf" zeigt die Gesamtverkäufe in dem Zeitraum, über den sich die Gewinn- und Verlustrechnung eines Unternehmens erstreckt, an. Crystal Reports-Anwenderhandbuch 519 8 8 Funktionen Zusätzliche Funktionen • "AnzTage"ist eine Zahl oder Formel. In der Regel ist es die Anzahl von Tagen, die einem Geschäftsjahr entspricht. Einige Analytiker verwenden 360 Tage, andere 365. Der Standardwert für diese Funktion ist 360. Aktion FRAccRecTurnover gibt den durchschnittlichen Forderungsumschlag in Tagen zurück (z. B. AccRecTurnover = (Forderungen/Verkauf) * 360). Typische Verwendungen Mit diesem Verhältnis wird der Forderungsumschlag in Tagen gemessen. Eine niedrigere Kennzahl gibt einen höheren Umschlag an, d. h., die Forderungen werden unmittelbar nachdem sie gemacht worden sind bezahlt. Ein höherer Umschlag ist in der Regel einem niedrigeren Umschlag vorzuziehen, der möglicherweise auf zweifelhafte Forderungen hindeutet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRAccRecTurnover(100, 600, 360) Gibt 60 zurück. FRAccRecTurnover(200, 300, 360) Gibt 240 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRAccRecTurnover ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. 520 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen FRInventoryTurnover (Bestand, Verkauf, AnzTage) Basic- und Crystal-Syntax. Format FRInventoryTurnover(Bestand, Verkauf, AnzTage) Argumente • Bestand ist eine Zahl oder Formel. Sie zeigt den Gesamtbestand in der Bilanz eines Unternehmens an. In der Regel fallen darunter Rohstoffe, unfertige Erzeugnisse und Enderzeugnisse. • "Verkauf" ist eine Zahl oder Formel. "Verkauf" zeigt die Gesamtverkäufe in dem Zeitraum, über den sich die Gewinn- und Verlustrechnung eines Unternehmens erstreckt, an. • "AnzTage"ist eine Zahl oder Formel. Sie entspricht in der Regel der Anzahl von Tagen in einem Geschäftsjahr. Einige Analytiker verwenden 360 Tage, andere 365. Der Standardwert für diese Funktion ist 360. Aktion FRInventoryTurnover gibt die durchschnittliche Umschlagshäufigkeit des Warenbestands in Tagen zurück (z. B. InventoryTurnover = (Bestand/Verkauf) * 360). Typische Verwendungen Mit diesem Verhältnis wird die Umschlagshäufigkeit des Warenbestands in Tagen gemessen. Eine niedrige Kennzahl stellt einen höheren Umschlag dar, d. h., der Warenbestand wird schnell verkauft und nicht lange im Lager gehalten. Eine hohe Umschlagshäufigkeit wird in der Regel einer niedrigen vorgezogen, die unter Umständen auf einen veralteten und überholten Warenbestand hindeutet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRInventoryTurnover(40, 400, 360) Gibt 36 zurück. FRInventoryTurnover(36, 90, 360) Gibt 144 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Crystal Reports-Anwenderhandbuch 521 8 8 Funktionen Zusätzliche Funktionen Anmerkungen FRInventoryTurnover ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FRPriceEarningsRatio (Marktpreis, GewinnProAktie) Basic- und Crystal-Syntax. Format FRPriceEarningsRatio(Marktpreis, GewinnProAktie) Argumente • "Marktpreis" ist eine Zahl oder Formel. "Marktpreis" zeigt den aktuellen Marktpreis der Stammaktien eines Unternehmens an. Diese Informationen sind für die Öffentlichkeit zugänglich, wenn die Aktien des Unternehmens an der Börse gehandelt werden. • "GewinnProAktie" ist eine Zahl oder Formel. Sie zeigt den Gewinn an, der auf jede Stammaktie zuzurechnen ist. Diese Informationen werden in den Finanzberichten eines Unternehmens offengelegt. Aktion FRPriceEarningsRatio gibt das Verhältnis zwischen Marktpreis und Gewinn pro Aktie zurück (z.B. PriceEarningsRatio = Marktpreis/GewinnProAktie (12 Monate)). Typische Verwendungen Dieses Verhältnis dient als Vergleich zwischen dem Marktpreis einer Aktie und ihrem Gewinnpotential. Anhand dieser nützlichen Kennzahl lässt sich die Ertragsfähigkeit eines Unternehmens leicht mit der eines anderen vergleichen. 522 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRPriceEarningsRatio(3.5, 2) Gibt 1,75 zurück. FRPriceEarningsRatio(27, 1.5) Gibt 18 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRPriceEarningsRatio ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. FRDividendYield (Dividende, Marktpreis) Basic- und Crystal-Syntax. Format FRDividendYield(Dividende, Marktpreis) Argumente • Dividende ist eine Zahl oder Formel. Sie zeigt die nachgewiesene Jahresdividende pro Stammaktie an. • "Marktpreis" ist eine Zahl oder Formel. "Marktpreis" zeigt den aktuellen Marktpreis der Stammaktien eines Unternehmens an. Diese Informationen sind für die Öffentlichkeit zugänglich, wenn die Aktien des Unternehmens an der Börse gehandelt werden. Crystal Reports-Anwenderhandbuch 523 8 8 Funktionen Zusätzliche Funktionen Aktion FRDividendYield gibt das Verhältnis zwischen Dividende und Marktpreis zurück (z. B. DividendYield = Dividende/Marktpreis). Typische Verwendungen Dieses Verhältnis ermöglicht es einem Kapitalanleger, Rückschlüsse auf die Rendite für Stammaktien zu ziehen. Dabei wird ein oberflächlicher Vergleich der Aktien verschiedener Unternehmen angestellt. Einige Analytiker verwenden diese Funktion unter Umständen auch zur Berechnung der Rendite für Vorzugsaktien. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: FRDividendYield(3,25) Gibt 0,12 zurück. FRDividendYield(5, 80) Gibt 0,0625 zurück. Hinweis: Die Argumente dürfen nicht negativ sein. Stellen Sie sicher, dass keine negativen Werte verwendet werden, bevor Sie die Argumente weitergeben. Anmerkungen FRDividendYield ist eines von zahlreichen Finanzanalysetools, mit denen die finanzielle Lage eines Unternehmens interpretiert werden kann. Wie bei allen Kennzahlen muss dieses Tool mit Vorsicht eingesetzt werden. Es sollte lediglich als Anhaltspunkt dienen, nicht als ausschließlicher Faktor zur Beurteilung der finanziellen Lage eines Unternehmens. Keine der Kennzahlen kann allein für Finanzanalysen verwendet werden, und es bestehen keine festen Regeln bezüglich der Ergebnisse der Kennzahlen. Die Ergebnisse variieren nicht nur von Industriezweig zu Industriezweig, sondern weichen auch zwischen verschiedenen Unternehmen innerhalb desselben Industriezweigs und in verschiedenen Abrechnungsperioden voneinander ab. Sie sollten deshalb nur für einen relativen Vergleich und Trendanalysen verwendet und nicht als absolute Tatsache betrachtet werden. Now Basic- und Crystal-Syntax. Rückgabewert Textzeichenfolge 524 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen Aktion Now druckt die aktuelle Uhrzeit auf einen Bericht. Die Uhrzeit wird anhand der internen Uhr Ihres Computers ermittelt. Typische Verwendung Verwenden Sie Now immer dann, wenn die aktuelle Zeit auf Ihrem Bericht stehen soll. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Jetzt Gibt 04:45:18 zurück, wenn Sie mit dem Drucken des Berichts um 04:45:18 beginnen. Jetzt Gibt 17:14:33 zurück, wenn Sie mit dem Drucken des Berichts um 17:14:33 beginnen. Anmerkungen • Das verwendete Uhrzeitformat richtet sich nach den Ländereinstellungen in der Windows-Systemsteuerung. • Die Funktion Current Time gibt denselben Wert zurück wie die Funktion Now, die Bestandteil der früheren Versionen vom Programm ist. Now wird nur bereitgestellt, um die Kompatibilität zu Berichten zu gewährleisten, die mit früheren Versionen vom Programm erstellt wurden. Für neue Berichte sollten Sie die Funktion CurrentTime verwenden. Picture (Zchnflge, Bild) Basic- und Crystal-Syntax. Argumente • Zchnflge ist eine Textzeichenfolge, die entsprechend des Argumentes Bild formatiert wird. • Bild ist eine Textzeichenfolge, die festlegt, wie die Zeichen der Zeichenfolge Zchnflge gedruckt werden sollen. Rückgabewert Zeichenfolge Crystal Reports-Anwenderhandbuch 525 8 8 Funktionen Zusätzliche Funktionen Aktion Picture (Zchnflge, Bild) druckt eine Zeichenfolge oder Werte einer Textzeichenfolge in einem vorgegebenen Format. Typische Verwendung Picture kann verwendet werden, um die Zeichenfolge „2065555555“ im Format einer Telefonnummer als „(206) 555-5555“ oder andere Zeichenfolgen in festen Formaten zu drucken. Ein Datenbankfeld kann nur als Zeichenfolge verwendet werden, wenn seine Länge fest und bekannt ist. Hinweis: Im Argument Bild können keine Sternchen als Platzhalter verwendet werden. Wenn Sie ein Sternchen in das Argument einfügen, wird es in der resultierenden Zeichenfolge auch als Sternchen angezeigt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Picture ({Kunde.FAX},"(xxx) xxx-xxxx" ) Druckt die Werte des Feldes {Kunde.FAX} im Format (805) 555-5555, (313) 555-2555 usw. Picture ({Kunde.Region}, "[xx]") Druckt die Werte des Feldes {Kunde.Region} im Format [NW], [MV] usw. Die Größe der Zeichenfolge, die Sie im Parameter "Picture" festlegen, d.h. die Anzahl der verwendeten x-Zeichen, muss größer oder gleich dem höchsten Wert der Zeichenfolge sein. Um beispielsweise Ortsnamen in eckigen Klammern auszugeben, verfahren Sie wie folgt: Picture ({Kunde.ORT}, „[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]“) Auf diese Weise würde [Hamburg],[Bremen],[Berlin] usw. ausgegeben. Die Funktion Picture passt die Größe der Daten in den einzelnen Zeilen an. Hinweis: Es können maximal 252 x-Zeichen eingegeben werden. Kommentare 526 • Der Wert des Argumentes Bild muss in Anführungszeichen gesetzt werden. • Verwenden Sie in der jeweiligen Maske das Zeichen „x“, um die Zeichen der Zeichenfolge zuzuordnen. • Wenn ein Datenbankfeld Klammern oder andere Formatierungen, z. B. (xxx) xxx-xxxx, enthält, kann es nicht in xxxxxxx konvertiert werden. Die Klammern und der Bindestrich werden weiterhin angezeigt. Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen LooksLike (Zchnflge, Maske) Basic- und Crystal-Syntax. Argumente • Zchnflge ist die Textzeichenfolge oder das Feld, das die Textzeichenfolgen enthält, die mit der Maske verglichen werden. • Maske ist eine Textzeichenfolge, die die Maske angibt, mit der der Wert des Argumentes Zchnflge verglichen wird. Rückgabewert Boolescher Wert Aktion Ermöglicht Ihnen die Suche nach Feldwerten mit einem standardmäßigen DOS-Platzhalter (? = Platzhalter für ein Zeichen, * = Platzhalter für beliebig viele Zeichen). Dazu wird eine Zeichenfolge mit einer Maske verglichen, die einen oder mehrere Platzhalter enthält. Die Funktion gibt True zurück, wenn die Zeichenfolge mit der Maske übereinstimmt. Ist dies nicht der Fall, gibt die Funktion den Wert False zurück. Typische Verwendungen Verwenden Sie diese Funktion, wenn Sie anhand von zwei oder mehr Feldwerten, die zwar unterschiedlich geschrieben sind, aber ähnlich aussehen (deren Aufbau also prinzipiell ähnlich ist), Datensätze suchen möchten. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: LooksLike ("Snyder","Sn?der") Gibt TRUE (Wahr) zurück. LooksLike ("Schneider","S?der") Gibt FALSE zurück. LooksLike ("Schneider", "S?????der") Gibt TRUE (Wahr) zurück. Das folgende Beispiel gilt für die Crystal-Syntax: If LooksLike ({customer.CONTACT FIRST NAME},"?ris" Then {Kunde.KONTAKT, VORNAME} Else "" Crystal Reports-Anwenderhandbuch 527 8 8 Funktionen Zusätzliche Funktionen Gibt Cris, Kris und Iris, aber nicht Chris zurück (vorausgesetzt, diese Werte befinden sich alle im Datenbankfeld {Kunde.KONTAKT VORNAME}). Soundex (Zchnflge) Basic- und Crystal-Syntax. Argumente • Zchnflge ist eine von zwei oder mehreren Zeichenfolgen, die ähnlich klingen. Rückgabewert Textzeichenfolge Aktion Soundex (Zchnflge) wertet eine Textzeichenfolge aus und gibt einen aus vier Zeichen bestehenden Wert zurück, der den Klang der Zeichenfolge symbolisiert. Typische Verwendungen Verwenden Sie diese Funktion, wenn Sie ausgehend von zwei oder mehr Feldwerten, die unterschiedlich geschrieben, aber ähnlich ausgesprochen werden, nach Datensätzen suchen möchten. Mit dieser Funktion kann auch nach falsch geschriebenen Kundennamen gesucht werden. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: If Soundex{customer.LAST NAME} = Soundex ("Snider") Then {Kunde.NACHNAME} Else "" Führt die Funktion Soundex mit allen Werten im Feld {Kunde.NACHNAME} aus und druckt nur die Werte, deren Soundex-Wert dem Soundex-Wert des Namens Snider entspricht. Diese Formel gibt die Namen Sneider, Schneider, Snyder und Snider zurück, sofern diese in der Datenbank enthalten sind. Anmerkungen • 528 Die Zeichenfolge Zchnflge muss in Anführungszeichen stehen. Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen • Soundex kann nur mit Werten verwendet werden, die mit demselben Buchstaben beginnen. Soundex gibt z.B. für Chris und Cris (C620) denselben Wert zurück, aber nicht für Kris (K620). • Soundex erstellt einen Code, der sich aus dem ersten Zeichen der Zeichenfolge sowie den drei nächsten Zeichen ergibt, die wie folgt ausgewertet werden: • Zeichen, die keine Buchstaben sind (z.B. Ziffern und Satzzeichen), werden zu einer -1. • Die Buchstaben a, e, i, o, u, y, h und w werden ignoriert (es sei denn, der jeweilige Buchstabe ist das erste Zeichen der ursprünglichen Zeichenfolge). • • • • • • Die Buchstaben b, f, p und v werden zu einer 1. Die Buchstaben c, g, j, k, q, s, x und z werden zu einer 2. Die Buchstaben d und t werden zu einer 3. Der Buchstabe l wird zu einer 4. Die Buchstaben m und n werden zu einer 5. Der Buchstabe r wird zu einer 6. • Falls der sich ergebende Code nur 2 oder 3 Zeichen lang ist, füllt Soundex den Code mit Nullen auf vier Zeichen auf. Beispielsweise werden bei dem Namen Helga nur die Buchstaben H, l und g umgewandelt (Hlg), so dass Soundex den Code H420 zurückgibt. • Ist der sich ergebende Code länger als 4 Zeichen, werden alle Zeichen nach dem vierten Zeichen ignoriert. Beispielsweise können bei dem Namen Patrick die Buchstaben P, t, r, c und k umgewandelt werden (Ptrck), aber der von Soundex zurückgegebene Code besteht nur aus 4 Zeichen: P362. DateTimeTo2000 (DatumUhrzeit, Zahl) Basic- und Crystal-Syntax. Argumente • DateTime: akzeptiert nur gültige Datum-/Zeitfelder mit zwei- oder vierstelligen Jahreszahlen. • Ein als Datums-/Zeitfeld definiertes Datenbankfeld. Die Option Datei|Berichtoptionen sollte auf Datum-Uhrzeit-Felder in Datum-Zeit konvertieren eingestellt werden. (Diese Option kann nur für ODBCDatenquellen in 6.0 verwendet werden.) Crystal Reports-Anwenderhandbuch 529 8 8 Funktionen Zusätzliche Funktionen • • Die CDateTime-Funktion (CDateTime(yyyy, MM, dd, hh, mm, ss)). Diese Funktion setzt vierstellige Jahreszahlen voraus. Wenn zweistellige Jahreszahlen eingegeben werden, geht die Funktion von 00xx aus (Beispiel: 98 AD). Zahl: eine Zahl zwischen 0 und 99, die mit dem gewünschten Jahr im Wertebereich übereinstimmt. Rückgabewert Ein Datums-/Zeitfeld mit einer vierstelligen Jahreszahl Aktion • Zweistellige Jahreszahlen (xx) Wenn die Jahreszahl größer ist als die Zahl im Wertebereich, wird der zweistelligen Zahl 19 vorangestellt (19xx). Wenn die Jahreszahl kleiner als oder gleich der Zahl im Wertebereich ist, wird 20 vorangestellt (20xx). • 4stellige Jahreszahlen (19xx) Wenn die beiden letzten Stellen in der Jahreszahl größer als die Zahl im Wertebereich sind, wird die Jahreszahl im Datumsfeld beibehalten (19xx). Wenn die beiden letzten Stellen in der Jahreszahl kleiner oder gleich der Zahl im Wertebereich sind, werden die ersten beiden Stellen in 20 (20xx) umgeändert. Wenn die ersten beiden Stellen im Jahresfeld 20 entsprechen, wird die Jahreszahl im Datumsfeld beibehalten (20xx). Hinweis: Beachten Sie, dass das Datum nicht geändert wird, wenn die Jahreszahl kleiner als oder gleich 1899 und größer als oder gleich 100 ist. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: In diesem Beispiel ist der Wert im Wertebereich größer als die Jahreszahl, die deshalb in 20XX umgeändert wird. DateTimeTo2000(CDateTime(1998,12,12,3,2,1), 99) Gibt 12.12.2098 03:02:01 zurück. In diesem Beispiel ist der Wert im Wertebereich kleiner als die Jahreszahl, die deshalb nicht umgeändert wird. DateTimeTo2000(CDateTime(1995,1,2,3,2,1), 94) Gibt 02.01.1995 03:02:01 zurück. Andere Beispiele Nachstehend sind Datumsbeispiele aufgeführt, auf die die Funktion keinen Einfluss nimmt. 530 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen DateTimeTo2000(CDateTime(1899,12,12,5,6,7), 99) Gibt 12.12.1899 5:06:07 zurück. DateTimeTo2000(CDateTime(999,12,12,5,6,7), 99) Gibt 12.12.999 5:06:07 zurück. Einige Datenbanken verwalten die Jahreszahl in einem Datum als zweistelliges Feld, so dass das Datumsfeld in diesen Beispielen simuliert wird. DateTimeTo2000(CDateTime (93,12,12,5,6,7), 96) Gibt 12.12.2093 5:06:07 zurück. DateTimeTo2000(CDateTime (98,12,12,5,6,7), 50) sollte 12.12.1998 5:06:07 zurückgeben. DateTimeTo2000(CDateTime (9,12,12,5,6,7), 10) sollte 12.12.2009 5:06:07 zurück. DateTimeTo2000(CDateTime (2,12,12,5,6,7), 1) sollte 12.12.1902 5:06:07 zurückgeben. DTSToDateTime (DatumUhrzeitFolge) Basic- und Crystal-Syntax. Argumente • "DatumUhrzeitFolge" ist eine Zeichenfolge mit einem Datums- und TimeWert. Rückgabewert DateTime-Wert Aktion Wertet die angegebene Zeichenfolge aus und gibt Daten vom Typ DateTime zurück. Beispiele DTSToDateTime ("2000/01/13 11:30:15") Gibt den Date-Wert 13. Januar 2000 11:30:15 zurück. Der Monat muss als 01 eingegeben werden, nicht nur als 1. Anmerkungen Verwenden Sie für neue Formeln die Funktionen CDateTime oder DateTimeValue anstelle der Funktion DTSToDateTime. Mit den Funktionen CDateTime und DateTimeValue können mehr Zeichenfolgetypen verarbeitet werden. Crystal Reports-Anwenderhandbuch 531 8 8 Funktionen Zusätzliche Funktionen DTSToTimeField (DatumUhrzeitFolge) Basic- und Crystal-Syntax. Argumente • DatumUhrzeitFolge ist eine Zeichenfolge mit einem Datums- und TimeWert. Rückgabewert Time-Wert Aktion Wertet die angegebene Zeichenfolge aus und gibt Daten vom Typ Zeit zurück. Beispiele DTSToTimeField ("2000/01/13 11:30:15") Gibt den Time-Wert 11:30:15 zurück. Der Monat muss als 01 eingegeben werden, nicht nur als 1. Anmerkungen Verwenden Sie für neue Formeln die Funktionen CTime oder TimeValue anstelle der Funktion DTSToTimeField. Mit den Funktionen CTime und TimeValue können mehr Zeichenfolgetypen verarbeitet werden. DateTimeToDate (dateTime) Basic- und Crystal-Syntax. Argumente • datumUhrzeit ist ein DateTime-Wert. Rückgabewert Date-Wert Aktion Wertet den angegebenen DateTime-Wert aus und wandelt ihn in einen DateWert um. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: 532 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen DateTimeToDate(#11/01/1998 11:15:00 AM#) Gibt den Date-Wert 11/01/1998 zurück. Anmerkungen Für neue Formeln können Sie die Funktionen CDate oder DateValue anstelle der Funktion DateTimeToDate verwenden, wenn Sie einen DateTime-Wert in einen Date-Wert konvertieren möchten. Die Funktionen CDate und DateValue sind effizienter, da sie keine UFLs sind. DateTimeToTime (DatumUhrzeit) Basic- und Crystal-Syntax. Argumente • datumUhrzeit ist ein DateTime-Wert. Rückgabewert Time-Wert Aktion Wertet den angegebenen DateTime-Wert aus und wandelt ihn in einen TimeWert um. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DateTimeToTime(#11/01/1998 11:15:00 AM#) Gibt 11:15:00 am zurück. Anmerkungen Für neue Formeln können Sie die Funktionen CTime oder TimeValue anstelle der Funktion DateTimeToTime verwenden, wenn Sie einen DateTime-Wert in einen Time-Wert konvertieren möchten. Die Funktionen CTime und TimeValue sind effizienter, da sie keine UFLs sind. DateTimeToSeconds (DatumUhrzeit) Basic- und Crystal-Syntax. Argumente • datumUhrzeit ist ein DateTime-Wert. Crystal Reports-Anwenderhandbuch 533 8 8 Funktionen Funktionen zum Duplizieren von Gruppenfeldern Rückgabewert Time-Wert (in Sekunden) Aktion Wertet den DateTime-Wert aus und gibt die Anzahl der Sekunden von 00:00:00 (Mitternacht) bis zur angegebenen Zeit zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: DateTimeToSeconds(#11/01/1998 11:30:15 AM#) Gibt 41415 zurück. Anmerkungen Anstelle von DateTimeToSeconds (dt) können Sie folgenden Ausdruck verwenden: DateDiff ("s", #12:00 am#, CDateTime (CDate(0,0,0), CTime (dt))) Dieser Ausdruck verwendet keine UFLs und ist daher effizienter. Funktionen zum Duplizieren von Gruppenfeldern Verwenden Sie diese Funktionen zum Duplizieren von Gruppenfeldern in Formeln. Hinweis: Wenn Sie diese Funktionen verwenden möchten, müssen Sie in Ihrem Bericht vorher ein Gruppenfeld mit den Parametern eingeben, die Sie in der Formel duplizieren möchten. Das kann z. B. das gleiche Feld, das gleiche Feld "Nach Feld sortieren und gruppieren", die gleiche verwendete Datums- bzw. boolesche Bedingung oder die gleiche Aktion (Durchschnitt, Anzahl) sein. Nach Feld sortieren und gruppieren = Zeichen, Zahl oder Currency-Wert Average (Feld, BedFeld) Siehe Average Count (Feld, BedFeld) Siehe Count 534 Crystal Reports-Anwenderhandbuch Funktionen Funktionen zum Duplizieren von Gruppenfeldern DistinctCount (Feld, BedFeld) Siehe DistinctCount Maximum (Feld, BedFeld) Siehe Maximum Minimum (Feld, BedFeld) Siehe Minimum PopulationStdDev (Feld, BedFeld) Siehe PopulationStdDev PopulationVariance (Feld, BedFeld) Siehe PopulationVariance StdDev (Feld, BedFeld) Siehe StdDev Sum (Feld, BedFeld) Siehe Sum Variance (Feld, BedFeld) Siehe Variance Nach Feld sortieren und gruppieren = Datums- oder boolesche Bedingung Average (Feld, BedFeld, Bed) Siehe Average Count (Feld, BedFeld, Bed) Siehe Count DistinctCount (Feld, BedFeld, Bed) Siehe DistinctCount Maximum (Feld, BedFeld, Bed) Siehe Maximum Minimum (Feld, BedFeld, Bed) Siehe Minimum PopulationStdDev (Feld, BedFeld, Bed) Siehe PopulationStdDev Crystal Reports-Anwenderhandbuch 535 8 8 Funktionen Gesamtergebnis-Funktionen PopulationVariance (Feld, BedFeld, Bed) Siehe PopulationVariance StdDev (Feld, BedFeld, Bed) Siehe StdDev Sum (Feld, BedFeld, Bed) Siehe Sum Variance (Feld, BedFeld, Bed) Siehe Variance Gesamtergebnis-Funktionen Verwenden Sie diese Funktionen zum Auswerten aller Werte für den gesamten Bericht in einem angegebenen Feld mit Rückgabe eines errechneten Wertes, z. B. dem Durchschnitt oder der Anzahl für ein Gesamtergebnis Average (Feld) Siehe Average Count (Feld) Siehe Count DistinctCount (Feld) Siehe DistinctCount Maximum (Feld) Siehe Maximum Minimum (Feld) Siehe Minimum PopulationStdDev (Feld) Siehe PopulationStdDev PopulationVariance (Feld) Siehe PopulationVariance StdDev (Feld) Siehe StdDev 536 Crystal Reports-Anwenderhandbuch Funktionen Konditionale Formatierungsfunktionen Sum (Feld) Siehe Sum Variance (Feld) Siehe Variance Konditionale Formatierungsfunktionen GridRowColumnValue (Name) CurrentFieldValue DefaultAttribute RGB (Rot, Grün, Blau) GridRowColumnValue (Name) Basic- und Crystal-Syntax. Argumente • Name ist ein Zeichenfolgewert, der ein Alias für Formeln ist. Dieser Alias für Formeln ist ein Name, den Sie für eine Dimensionsebene in einem OLAP-Raster oder einer Kreuztabelle festgelegt haben. Rückgabewert Wert einer Dimensionsebene in einem OLAP-Raster oder einer Kreuztabelle, der durch das Argument Name festgelegt wurde. Der Typ des Wertes ist daher abhängig von dem in der angegebenen Dimension. Aktion GridRowColumnValue gibt den Wert einer angegebenen Dimensionsebene in einem OLAP-Raster oder einer Kreuztabelle zurück. Typische Verwendungen Formatieren von Zellen auf Dimensionsebene in einem OLAP-Raster oder einer Kreuztabelle auf Grundlage des Wertes der Dimensionsebene. Die Schriftfarbe für Zellen kann in einer Dimensionsebene auf der Grundlage des Wertes dieser Dimensionsebene formatiert werden. Die Attribute einer Zelle, die mit einer Formel bedingt formatiert werden können, umfassen Schriftart, Rahmen, Objektpositionierung usw. Auf diese Attribute kann über den Format-Editor zugegriffen werden. Crystal Reports-Anwenderhandbuch 537 8 8 Funktionen Konditionale Formatierungsfunktionen Beispiele Das folgende Beispiel gilt sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Es wird von einem OLAP-Raster ausgegangen, in dem die Produkte in den Zeilen und die Regionen in den Spalten aufgeführt sind. Angenommen, Sie möchten mit der Funktion GridRowColumnValue Zellen auf Ebene 1 der Regionen-Dimension und auf Ebene 2 der ProdukteDimension bedingt formatieren. Die Schriftfarbe der Gesamtumsätze verschiedener Produkte für Europa soll rot und die Gesamtumsätze für Nordamerika blau formatiert werden. 1. Erstellen Sie ein Alias für Formeln mit dem Namen „Kontinent“ für Ebene 1 der Regionen-Dimension. (Sie können dazu den OLAP BerichtsAssistenten oder den Befehl OLAP-Rasterobjekt formatieren verwenden. Nachdem Sie den erforderlichen Alias für Formeln erstellt haben, können Sie die Formatierungsbedingung wie folgt angeben: wenn GridRowColumnValue(„Kontinent“) den Wert „Europa“ zurückgibt, dann soll die Schriftfarbe der Zellen für Ebene 2 der Produkt-Dimension rot sein. Ansonsten soll die Schriftfarbe blau sein, da in diesem Beispiel nur zwei Kontinente verwendet werden. 2. Klicken Sie im OLAP-Raster auf eine der Zellen, die die Gesamtumsätze für ein bestimmtes Produkt (Ebene 2) für Europa darstellen. Die Zellen aller Produkte auf Ebene 2 verbunden mit den Regionen der Ebene 1 werden ebenfalls markiert. Die Formatierung einer dieser Zellen wird auf alle anderen markierten Zellen übertragen. 538 Crystal Reports-Anwenderhandbuch Funktionen Konditionale Formatierungsfunktionen 3. Geben Sie mit dem Befehl Feld formatieren eine Formel für bedingte Formatierung für die markierten Zellen ein. In der Crystal-Syntax können Sie z. B. folgende Formel verwenden: If GridRowColumnValue(“Continent”) = “Europa” Then crRed Else crBlue In der Basic-Syntax wird folgende Formel verwendet: If GridRowColumnValue(“Kontinent”) = “Europa” Then formula = crRed Else formula = crBlue Die Gesamtumsätze verschiedener Produkte für Europa werden rot und die entsprechenden Gesamtumsätze für Nordamerika blau markiert. CurrentFieldValue Basic- und Crystal-Syntax. Rückgabewert Jeder beliebige Feldtyp kann zurückgegeben werden Aktion Die Funktion CurrentFieldValue gibt den aktuellen Wert des Feldes zurück, das ausgedruckt wird. Typische Verwendung Sie können die Funktion CurrentFieldValue zum bedingten Formatieren von Feldelementen, Feldobjekten und Gruppenergebnissen und Beschriftungen in Kreuztabellen verwenden. Crystal Reports-Anwenderhandbuch 539 8 8 Funktionen Konditionale Formatierungsfunktionen Beispiele In der Crystal-Syntax können Sie z. B. folgende Formel verwenden: if CurrentFieldValue = 0 then crRed In der Basic-Syntax wird folgende Formel verwendet: If CurrentFieldValue = 0 Then formula = crRed Die Schriftfarbe des Objekts ist beim Druck rot formatiert, wenn der Wert des Feldes Null ist. Anmerkungen • Die Funktion CurrentFieldValue ist nur verfügbar, wenn Feldformatierungsformeln eingegeben werden. • Der Typ des Rückgabewertes ist vom Formelkontext abhängig. Wenn Sie z.B. ein Zeichenfolgefeld formatieren, wird mit der Funktion CurrentFieldValue ein Zeichenfolgetyp zurückgegeben, und wenn Sie ein Datumsfeld formatieren, wird mit CurrentFieldValue ein Datumstyp zurückgegeben. DefaultAttribute Basic- und Crystal-Syntax. Rückgabewert Jeder beliebige Feldtyp kann zurückgegeben werden Aktion Der durch die Funktion DefaultAttribute zurückgegebene Wert ist abhängig von dem Wert, der für das als Attributwert formatierte Attribut ausgewählt wurde. Beispiele Die Funktion DefaultAttribute kann zusammen mit der Funktion CurrentFieldValue zum bedingten Formatieren von Feldern auf Grundlage ihrer Werte und Standardbedingungen verwendet werden. Die folgenden Beispiele gelten für die Crystal-Syntax: if CurrentFieldValue < 0 then DefaultAttribute else crBlack In der Basic-Syntax wird folgende Formel verwendet: If CurrentFieldValue < 0 Then formula = DefaultAttribute Else formula = crBlack End If 540 Crystal Reports-Anwenderhandbuch Funktionen Konditionale Formatierungsfunktionen Durch die Formatierung des Objekts wird die Schrift in der Standardfarbe gedruckt, wenn der Feldwert kleiner als Null ist. Bei einem Feldwert größer als Null wird die Schrift schwarz gedruckt. Anmerkungen Die Funktion DefaultAttribute ist nur verfügbar, wenn Formatierungsformeln eingegeben werden. RGB (Rot, Grün, Blau) RGB und Color (Rot, Grün, Blau) sind gleichwertige Funktionen. RGB wird in der Basic-Syntax bevorzugt, Color dagegen in der Crystal-Syntax. Argumente • Rot ist ein Zahlenwert zwischen 0 und 255 für die Rot-Komponente der Ergebnisfarbe. • Grün ist ein Zahlenwert zwischen 0 und 255 für die Grün-Komponente der Ergebnisfarbe. • Blau ist ein Zahlenwert zwischen 0 und 255 für die Blau-Komponente der Ergebnisfarbe. Rückgabewert Schriftfarbenattribut. Aktion RGB gibt das Farbattribut als Definition der Komponenten Rot, Grün und Blau zurück. Typische Verwendung Um beim Schreiben einer Formel für bedingte Formatierung eine benutzerdefinierte Farbe für die Schrift oder den Hintergrund eines Berichtfeldes festzulegen. Beispiel Das folgende Beispiel gilt für die Basic-Syntax: If CurrentFieldValue > 10000 Then formula = RGB (150,230,150) Else formula = RGB (10,19,200) End If Crystal Reports-Anwenderhandbuch 541 8 8 Funktionen Konditionale Formatierungsfunktionen Diese Formel formatiert ein Zahlenfeld so, dass es in der durch RGB (150,230,150) festgelegten Farbe angezeigt wird, wenn sein aktueller Wert größer als 10.000 ist, und andernfalls in der Farbe RGB (10,19,200). Siehe auch • Color (Rot, Grün, Blau) Color (Rot, Grün, Blau) Color und RGB (Rot, Grün, Blau) sind gleichwertige Funktionen. RGB wird in der Basic-Syntax bevorzugt, Color dagegen in der Crystal-Syntax. Argumente • Rot ist ein Zahlenwert zwischen 0 und 255 für die Rot-Komponente der Ergebnisfarbe. • Grün ist ein Zahlenwert zwischen 0 und 255 für die Grün-Komponente der Ergebnisfarbe. • Blau ist ein Zahlenwert zwischen 0 und 255 für die Blau-Komponente der Ergebnisfarbe. Rückgabewert Schriftfarbenattribut. Aktion Color gibt das Farbattribut als Definition der Komponenten Rot, Grün und Blau zurück. Typische Verwendung Um beim Schreiben einer Formel für bedingte Formatierung eine benutzerdefinierte Farbe für die Schrift oder den Hintergrund eines Berichtfeldes festzulegen. Beispiel Das folgende Beispiel gilt für die Crystal-Syntax: if CurrentFieldValue > 10000 then Color (150,230,150) Else Color (10,19,200) Diese Formel formatiert ein Zahlenfeld so, dass es in der durch RGB (150,230,150) festgelegten Farbe angezeigt wird, wenn sein aktueller Wert größer als 10.000 ist, andernfalls in der Farbe RGB (10,19,200). 542 Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen des SQL-Ausdrucks-Editors Siehe auch • RGB (Rot, Grün, Blau) Zusätzliche Funktionen des SQL-AusdrucksEditors Der SQL-Ausdrucks-Editor verwendet einen Standardsatz ODBC-kompatibler Funktionen. Die folgende Liste enthält Serverfunktionen für SQLErweiterungen, die spezifisch für Teradata sind. Detaillierte Informationen zur Verwendung der Funktionen finden Sie in der Dokumentation über Teradata SQL-Erweiterungen. Klicken Sie auf eine Verknüpfung, um zum jeweiligen Abschnitt zu gelangen: • • • • • • • • Attributfunktionen CASE-Ausdrücke Datum-/Uhrzeitfunktionen Hash-bezogene Funktionen Numerische Funktionen Logische Prädikate Zeichenfolgefunktionen Integrierte Funktionen Attributfunktionen Ausführliche Informationen zur Verwendung der folgenden Attributfunktionen finden Sie in der Teradata-Referenzdokumentation: • • • • • • BYTES CHARACTER_LENGTH FORMAT OCTET_LENGTH TITLE TYPE Crystal Reports-Anwenderhandbuch 543 8 8 Funktionen Zusätzliche Funktionen des SQL-Ausdrucks-Editors CASE-Ausdrücke Ausführliche Informationen zur Verwendung der folgenden CASE-Ausdrücke finden Sie in der Teradata-Referenzdokumentation: • • • • Bewertete CASE-Ausdrücke Gesuchte CASE-Ausdrücke COALESCE NULLIF Datum-/Uhrzeitfunktionen Ausführliche Informationen zur Verwendung der folgenden Datum-/ Uhrzeitfunktionen finden Sie in der Teradata-Referenzdokumentation: • • ADD_MONTHS EXTRACT Hash-bezogene Funktionen Ausführliche Informationen zur Verwendung der folgenden Hash-bezogenen Funktionen finden Sie in der Teradata-Referenzdokumentation: • • • • HASHAMP HASHBAKAMP HASHBUCKET HASHROW Numerische Funktionen Ausführliche Informationen zur Verwendung der folgenden numerischen Funktionen finden Sie in der Teradata-Referenzdokumentation: • • • • • • • • 544 ACOS ACOSH ASIN ASINH ATAN2 ATANH CASE_N COSH Crystal Reports-Anwenderhandbuch Funktionen Zusätzliche Funktionen des SQL-Ausdrucks-Editors • • • • • • • • LN NULLIFZERO RANDOM RANGE_N SINH TANH WIDTH_BUCKET ZEROIFNULL Logische Prädikate Ausführliche Informationen zur Verwendung der folgenden logischen Prädikate finden Sie in der Teradata-Referenzdokumentation: • • • • • • • • • ALL ANY BETWEEN/NOT BETWEEN EXISTS/NOT EXISTS IN/NOT IN IS NULL/IS NOT NULL LIKE SOME OVERLAPS Zeichenfolgefunktionen Ausführliche Informationen zur Verwendung der folgenden Zeichenfolgenfunktionen finden Sie in der Teradata-Referenzdokumentation: • • • • • • • • • • CHAR2HEXINT LOWER POSITION SOUNDEX SUBSTRING/SUBSTR TRANSLATE TRANSLATE_CHK TRIM UPPER VARGRAPHIC Crystal Reports-Anwenderhandbuch 545 8 8 Funktionen Zusätzliche Funktionen des SQL-Ausdrucks-Editors Integrierte Funktionen Ausführliche Informationen zur Verwendung der folgenden integrierten Funktionen finden Sie in der Teradata-Referenzdokumentation: • • • • • • • • • 546 ACCOUNT CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP DATABASE PROFILE ROLE SESSION USER Crystal Reports-Anwenderhandbuch Kapitel Operatoren 9 Operatoren Arithmetische Operatoren Arithmetische Operatoren Arithmetische Operatoren werden zum Berechnen von numerischen Werten oder Währungsbeträgen verwendet. • • • • • • • • • Additionsoperator Subtraktionsoperator Multiplikationsoperator Divisionsoperator Prozent-Operator Ganzzahldivision (x \ y) Modul (x Mod y) Negationsoperator Potenzieren (x ^ y) Additionsoperator Basic- und Crystal-Syntax. Verwendung x+y Fügt die Werte x und y hinzu. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: 5 + 6 Gibt 11 zurück. {Datei.MENGE1} + {Datei.MENGE2}. Gibt 1.487 zurück, wobei {Datei.MENGE1} = 366 und {Datei.MENGE2} = 1.121 entspricht. {Datei.PREIS1} + {Datei.PREIS2} + {Datei.PREIS3} + {Datei.PREIS4} Gibt 20 zurück, wobei {Datei.PREIS1} = 2, {Datei.PREIS2} = 4, {Datei.PREIS3} = 6 und {Datei.PREIS4} = 8 entspricht. {Datei.KLASSE1} + 25 Gibt 37 zurück, wobei {Datei.KLASSE1} = 12 entspricht. CDate (1991, 04, 05) + 12 Gibt den Datumswert 17. April 1991 zurück. 548 Crystal Reports-Anwenderhandbuch Operatoren Arithmetische Operatoren Subtraktionsoperator Basic- und Crystal-Syntax. Verwendung x-y Subtrahiert den Wert y vom Wert x. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: 244 - 112 Gibt 132 zurück. {Datei.UMSATZ} - {Datei.KOSTEN GESAMTER WARENLIEFERUNG} {Datei.S&A} Gibt den Wert 214.972 zurück, wobei {Datei.UMSATZ} = 455.031, {Datei.KOSTEN GESAMTER WARENLIEFERUNG} = 188.213 und {Datei.S&A} = 51.846 entspricht. {Datei.AUF LAGER} - 877 Gibt 114 zurück, wobei {Datei.AUF LAGER} = 991 entspricht. CDate (1991, 04, 15) - 12 Gibt 03. Apr. 91 zurück. Multiplikationsoperator Basic- und Crystal-Syntax. Verwendung x*y Multipliziert den Wert x mit dem Wert y. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: 2883 * 1999 Gibt 5.763.117 zurück. {Datei.MENGE} * {Datei.ANZAHL} * {Datei.RABATT} Gibt 26,25 zurück, wobei {Datei.MENGE} = 25,00, {Datei.ANZAHL} = 7 und {Datei.RABATT} = 0,15 entspricht. {Datei.BEFREIUNG} * 356.00 Gibt 152.012 zurück, wobei {Datei.BEFREIUNG} = 427 entspricht. Crystal Reports-Anwenderhandbuch 549 9 9 Operatoren Arithmetische Operatoren Divisionsoperator Basic- und Crystal-Syntax. Verwendung x/y Dividiert den Wert x durch den Wert y. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: 25/5 Gibt 5 zurück. 1/3 Gibt ,333333 zurück. {Datei.UMSATZ} / {Datei.PROGNOSE} Gibt 0,875 zurück, wobei {Datei.UMSATZ} = 52.533 und {Datei.PROGNOSE} = 60.000 entspricht. {Datei.FÄLLIGKEITSDATUM} / 5 Gibt 22 zurück, wobei {Datei.FÄLLIGKEITSDATUM} = 110 entspricht. Hinweis: Wenn der Nenner gleich 0 ist, wird der Bericht mit einem Schutz vor Division durch Null angehalten. Sie können ein solches Problem vermeiden, indem Sie einen Test vornehmen. Das folgende Beispiel gilt für die Crystal-Syntax: If {Datei.PROGNOSE} = 0 Then 0 Else {Datei.UMSATZ} / {Datei.PROGNOSE} Prozent-Operator Crystal-Syntax. Verwendung x % y Der Wert x wird als Prozentsatz des Wertes y berechnet. Dies entspricht (x/y) * 100. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: {Datei.AUSSTEHENDE BILANZ} % {Datei.KREDITGRENZE} 550 Crystal Reports-Anwenderhandbuch Operatoren Arithmetische Operatoren Gibt den Wert 30.00 zurück, wobei {Datei.AUSSTEHENDE BILANZ} = 1.500 € und {Datei.KREDITGRENZE} = 5.000 € entspricht. {Datei.MENGE} % {Datei.KREDITGRENZE} Gibt den Wert 32,26 zurück, wobei {Datei.MENGE} = 2.257,87 und {Datei.KREDITGRENZE} = 7.000 entspricht. Hinweis: Wenn der Nenner gleich 0 ist, wird der Bericht mit einem Schutz vor Division durch Null angehalten. Sie können ein solches Problem vermeiden, indem Sie einen Test vornehmen. If {Datei.PROGNOSE} = 0 Then 0 Else {Datei.UMSATZ} / {Datei.PROGNOSE} Ganzzahldivision (x \ y) Basic- und Crystal-Syntax. Verwendung x \ y Teilt den Zahlenwert x durch den Zahlenwert y und gibt den ganzzahligen Quotienten zurück. Hinweis: Wenn der Zahlenwert x oder y keine ganze Zahl ist, wird er vor der Operation zuerst gerundet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: 23 \ 5 Gibt 4 zurück. 3 \ 2 Gibt 1 zurück. Modul (x Mod y) Basic- und Crystal-Syntax. Verwendung x Mod y Teilt x durch y und gibt den ganzzahligen Rest zurück. Die Zahlenwerte x und y können positiv, negativ oder Dezimalwerte sein. Wenn x oder y ein Dezimalwert ist, wird der Wert zuerst gerundet, bevor der Modulus berechnet wird. Crystal Reports-Anwenderhandbuch 551 9 9 Operatoren Arithmetische Operatoren Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: 83 Mod 10 Gibt 3 zurück. 10 Mod 3 Gibt 1 zurück. -10 Mod 3 Gibt -1 zurück. 10 Mod -3 Gibt 1 zurück. 10 Mod 3.5 Gibt 2 zurück, da 3,5 zuerst auf 4 gerundet wird, bevor der Modulus berechnet wird. Negationsoperator Basic- und Crystal-Syntax. Verwendung [-(x)] Multipliziert den Wert in Klammern mit -1. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: -(-1) Gibt 1 zurück, da die Multiplikation zweier negativer Werte einen positiven Wert ergibt. -(1) Gibt -1 zurück, da die Multiplikation eines negativen und eines positiven Wertes einen negativen Wert ergibt. -(0-14) Gibt 14 zurück. -({Datei.AUF LAGER}) Gibt 144 zurück, wobei {Datei.AUF LAGER} = -144 entspricht. - (- (15-18) ) Gibt –3 zurück, da 15 - 18 = -3, -(-3) = +3, -(+3) = -3 entspricht. 552 Crystal Reports-Anwenderhandbuch Operatoren Konvertierungsoperatoren Potenzieren (x ^ y) Basic- und Crystal-Syntax. Verwendung x ^ y X hoch Y. Hinweis: Der Zahlenwert y kann ein Dezimalwert und positiv oder negativ sein. Der Zahlenwert x kann ein Dezimalwert sein, er kann aber nur negativ sein, wenn y eine ganze Zahl ist. Beispiele Die folgenden Beispiele gelten sowohl für die Crystal-Syntax als auch für die Basic-Syntax: 3 ^ 2 Gibt 9 zurück. 3 ^ .5 Gibt 1,73205 … zurück. (-3.5) ^ 2 Gibt 12,25 zurück. Beachten Sie, dass der Potenzierungsoperator eine höhere Priorität als die Negation hat, -3,5 ^ 2 hat folglich eine andere Bedeutung als (-3,5) ^ 2. 3 ^ (-2) Gibt 0,111 ... zurück. Hinweis: Bei Funktionen mit negativen Hochzahlen setzen Sie die Hochzahl in Klammern. Konvertierungsoperatoren Konvertierungsoperatoren werden zur Konvertierung von einem Datentyp in einen anderen verwendet. • In-Währung-Operator In-Währung-Operator Crystal-Syntax. Verwendung $x Konvertiert x von Nummer auf Währung. Crystal Reports-Anwenderhandbuch 553 9 9 Operatoren Vergleichsoperatoren Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Hinweis: In jedem Beispiel wird angenommen, dass Sie im Dialogfeld „Format-Editor“ auf der Registerkarte „Zahl“ (Dialogfeld „Benutzerdefiniertes Format“) die folgenden Formatierungsoptionen ausgewählt haben: Dezimalstellen = (1,00), Minuszeichen = (345,00-), Währungssymbol = (verschiebbar) und Tausendertrennzeichen = (1.000,00). $12345678 Gibt 12.345.678,00 $ zurück. $(123 * 456) Gibt 56.088,00 $ zurück $({Datei.MENGE} * 3) Gibt 42,00 $ zurück, wobei {Datei.MENGE} = 14 entspricht. $({Datei.KILOMETER} * {Datei.PFAND}) Gibt 27,95 $ zurück, wobei {Datei.KILOMETER} = 13 und {Datei.PFAND} = 2,15 entspricht. Hinweis: Die Multiplikation zweier Währungswerte ist nicht möglich und generiert einen Fehler. Vergleichsoperatoren Vergleichsoperatoren werden verwendet, um Daten in einem Datenfeld mit einer Konstanten, dem Inhalt eines anderen Datenfeldes oder einem Formelergebnis zu vergleichen. Hinweis: Eine Konstante ist ein fester Wert (z. B. eine eingegebene Textzeichenfolge, ein Datum, eine Zahl oder ein Dollar-Wert) der bei einer Berechnung unverändert bleibt. • • • • • • 554 Gleichheitsoperator (x=y) Not (Ungleichheit) Kleiner-als-Operator Größer-als-Operator Kleiner-als-oder-gleich-Operator Größer-oder-gleich-Operator Crystal Reports-Anwenderhandbuch Operatoren Vergleichsoperatoren Gleichheitsoperator (x=y) Basic- und Crystal-Syntax. Verwendung x = y x ist gleich y Der Gleichheitsoperator weist Crystal Reports an, einen Ausdruck (x=y) auszuwerten und TRUE (wenn x gleich y ist) oder FALSE (wenn x nicht gleich y ist) zurückzugeben. Beispiele Die folgenden Beispiele gelten sowohl für die Crystal-Syntax als auch für die Basic-Syntax: {Datei.MENGE} = 3 Gibt TRUE zurück, wobei {Datei.MENGE} dem Wert 3 entspricht. {Datei.MENGE} = 3 sonst FALSE. {Datei.AUFGELAUFENER JAHRESUMSATZ} = {Datei.AUFGELAUFENER JAHRESUMSATZ VORJAHR} Gibt TRUE zurück, wenn der Wert des Feldes {Datei.AUFGELAUFENER JAHRESUMSATZ} mit dem Wert des Feldes {Datei.AUFGELAUFENER JAHRESUMSATZ VORJAHR} übereinstimmt. {Datei.AUFGELAUFENER JAHRESUMSATZ} = {Datei.AUFGELAUFENER JAHRESUMSATZ VORJAHR} sonst FALSE. ({Datei.UMSATZ} - {Datei.KOSTEN GESAMTER WARENLIEFERUNG}) = 22.654 Gibt TRUE zurück, wobei die Berechnung des Ausdrucks {Datei.UMSATZ}-{Datei.KOSTEN GESAMTER WARENLIEFERUNG} den Wert 22.654 ergibt, z. B. {Datei.UMSATZ} = 109.986 und {Datei.KOSTEN GESAMTER WARENLIEFERUNG} = 87.332. ({Datei.UMSATZ} - {Datei.KOSTEN GESAMTER WARENLIEFERUNG}) = 22.654 sonst FALSE. {Kunde.NACHNAME} = "Becker" Gibt TRUE zurück, wobei die Textzeichenfolge des Feldes {Kunde.NACHNAME} „Becker“ lautet. {Kunde.NACHNAME} = "Becker" sonst FALSE. Crystal Reports-Anwenderhandbuch 555 9 9 Operatoren Vergleichsoperatoren Anmerkungen Dieser Operator wird häufig in Ausdrücken mit If-Then-Else-Operatoren verwendet. Zum Beispiel in Crystal-Syntax: If {Datei.KÄUFE} = 0 Then "Auf Ihrem Konto fanden diesen Monat keine Bewegungen statt." Else ""; Diese Formel gibt den Satz „Auf Ihrem Konto ...“ aus, wenn das Feld {Datei.KÄUFE} einen Nullwert enthält, und es findet keine Ausgabe statt (die Zeichenfolge ist leer „“), wenn dieses Feld einen anderen Wert als einen Nullwert enthält. Not (Ungleichheit) Basic- und Crystal-Syntax. Verwendung x <> y x ist nicht gleich y. Der Ungleich-Operator weist Crystal Reports an, einen Ausdruck (x<>y) auszuwerten und TRUE (wenn x nicht gleich y ist) oder FALSE (wenn x gleich y ist) zurückzugeben. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Aufträge.Auftragssumme} <> 400 TRUE, wobei{Aufträge.Auftragssumme} gleich 200 oder {Aufträge.Auftragssumme} gleich 401 ist usw. {Aufträge.Auftragssumme} <> 400 Gibt FALSE zurück, wobei {Aufträge.Auftragssumme} gleich 400 ist. {Datei.TAG} <> "Donnerstag" TRUE, wenn {Datei.TAG} = „Freitag“. {Datei.TAG} <> "Donnerstag" FALSE, wenn {Datei.TAG} = „Donnerstag“ {Datei.AUF LAGER} <>0 TRUE, wobei der Wert von {Datei.AUF LAGER} 10 oder -5 entspricht. {Datei.AUF LAGER} <>0 FALSE, wenn der Wert der {Datei.AUF LAGER} Null ist. 556 Crystal Reports-Anwenderhandbuch Operatoren Vergleichsoperatoren {Datei.AUF LAGER} - {Datei.VERBRAUCHT} <>10 TRUE, wobei der Wert des Feldes {Datei.AUF LAGER} minus dem Wert des Feldes {Datei.VERBRAUCHT} ein Ergebnis ungleich 10 ergibt. {Datei.AUF LAGER} - {Datei.VERBRAUCHT} <>10 FALSE, wobei der Wert 10 beträgt. Anmerkungen Dieser Operator wird häufig mit If-Then-Else-Operatoren verwendet. Zum Beispiel in Crystal-Syntax: If {Datei.GESCHLECHT} <> "M" Then "WEIBLICH" Else "MÄNNLICH" Das Wort „WEIBLICH“ wird gedruckt, wenn der Wert im Feld {Datei.GESCHLECHT} nicht gleich „M“ ist. Ansonsten wird immer das Wort „MÄNNLICH“ gedruckt. Kleiner-als-Operator Basic- und Crystal-Syntax. Verwendung x < y x ist kleiner als y Der Kleiner-als-Operator weist das Dialogfeld „Formel-Editor“ an, einen Ausdruck (x<y) auszuwerten, und gibt den Wert TRUE (wenn x kleiner als y ist) oder FALSE (wenn x größer als oder gleich y ist) zurück. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Datei.GEWICHT} < 200 Gibt TRUE zurück, wobei {Datei.GEWICHT} = 150 oder {Datei.GEWICHT} = 199 entspricht. {Datei.GEWICHT} < 200 Gibt FALSE zurück, wobei {Datei.GEWICHT} = 200 oder {Datei.GEWICHT} = 400 entspricht. {Datei.UNKOSTEN} < {Datei.PREIS} Gibt TRUE zurück, wobei {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 400 entspricht. {Datei.UNKOSTEN} < {Datei.PREIS} Crystal Reports-Anwenderhandbuch 557 9 9 Operatoren Vergleichsoperatoren Gibt FALSE zurück, wobei {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 350 oder {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 325 entspricht. Größer-als-Operator Basic- und Crystal-Syntax. Verwendung x > y x ist größer als y. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Datei.GEWICHT} > 200 Gibt FALSE zurück, wobei {Datei.GEWICHT} = 150, {Datei.GEWICHT} = 199 oder {Datei.GEWICHT} = 200 entspricht. {Datei.GEWICHT} > 200 Gibt TRUE zurück, wobei {Datei.GEWICHT} = 400 oder {Datei.GEWICHT} = 201 entspricht. {Datei.UNKOSTEN} > {Datei.PREIS} Gibt FALSE zurück, wobei {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 400 oder {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 350 entspricht. {Datei.UNKOSTEN} > {Datei.PREIS} Gibt TRUE zurück, wobei {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 325 entspricht. Kleiner-als-oder-gleich-Operator Basic- und Crystal-Syntax. Verwendung x <= y x ist kleiner als oder gleich y. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Datei.GEWICHT} <= 200 558 Crystal Reports-Anwenderhandbuch Operatoren Vergleichsoperatoren Gibt TRUE zurück, wobei {Datei.GEWICHT} = 150, {Datei.GEWICHT} = 200 oder {Datei.GEWICHT} = 199 entspricht. {Datei.GEWICHT} <= 200 Gibt FALSE zurück, wobei {Datei.GEWICHT} = 400 entspricht. {Datei.UNKOSTEN} <= {Datei.PREIS} Gibt TRUE zurück, wobei {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 400 oder {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 350 entspricht. {Datei.UNKOSTEN} <= {Datei.PREIS} Gibt FALSE zurück, wobei {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 325 entspricht. Größer-oder-gleich-Operator Basic- und Crystal-Syntax. Verwendung x >= y x ist größer als oder gleich y. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Datei.GEWICHT} >= 200 Gibt FALSE zurück, wobei {Datei.GEWICHT} = 150 oder {Datei.GEWICHT} = 199 entspricht. {Datei.GEWICHT} >= 200 Gibt TRUE zurück, wobei {Datei.GEWICHT} = 400, {Datei.GEWICHT} = 201 oder {Datei.GEWICHT} = 199 entspricht. {Datei.UNKOSTEN} >= {Datei.PREIS} Gibt FALSE zurück, wobei {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 400 entspricht. {Datei.UNKOSTEN} >= {Datei.PREIS} Gibt TRUE zurück, wobei {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 325 oder {Datei.UNKOSTEN} = 350 und {Datei.PREIS} = 350 entspricht. Crystal Reports-Anwenderhandbuch 559 9 9 Operatoren Zeichenfolgeoperatoren Zeichenfolgeoperatoren Zeichenfolgeoperatoren werden verwendet, um Textzeichenfolgen miteinander zu verketten (verbinden), Teilzeichenfolgen aus Textzeichenfolgen zu extrahieren oder Textzeichenfolgen auf bestimmte Teilzeichenfolgen zu überprüfen. Hinweis: Die Operatoren unterliegen der Groß- und Kleinschreibung. Zum Beispiel ist „ABC“ nicht gleich „abc“. „abc“ ist auch nicht Teil der Zeichenfolge „ABCDEF“. • • • • • Verkettungsoperator (x +y) Verketten (x & y) Index in Arrays und Zeichenfolgen In-Zeichenfolge-Operator Leere Zeichenfolge einfügen Verkettungsoperator (x +y) Basic- und Crystal-Syntax. Verketten (x & y) und Verketten (x + y) sind synonym, wenn sowohl Operand x als auch Operand y eine Zeichenfolge sind. Verwendung x + y Verkettet (verbindet) Zeichenfolge x mit der Zeichenfolge y zu einer zusammenhängenden Zeichenfolge. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: "Brot" + " und " + "Butter" Gibt „Brot und Butter“zurück. "Ihre Kundennummer ist" + ({Kunde.KUNDENNUMMER}) + ", und Ihr Ansprechpartner ist " + ({Kunde.KONTAKTPERSON.VORNAME}) + "." Gibt Folgendes zurück: „Ihre Kundennummer ist 64 und Ihr Ansprechpartner ist Dirk.“ Wobei die Kundennummer =„64“ und der Vorname = „Dirk“ lautet. 560 Crystal Reports-Anwenderhandbuch Operatoren Zeichenfolgeoperatoren Anmerkungen • Dieser Operator kann nur verwendet werden, wenn alle Elemente, die Sie verbinden möchten, Zeichenfolgen sind. • Wenn Sie einen Wert aus einem numerischen Feld übernehmen möchten (z. B. einen Kontostand), müssen Sie diesen Wert mit der Funktion ToText erst in eine Textzeichenfolge konvertieren. "Ihr Kontostand beträgt " + ToText({Datei.KONTOSTAND}) + "." Verwandte Themen: • Verketten (x & y) Verketten (x & y) Basic- und Crystal-Syntax. Verketten (x & y) und Verkettungsoperator (x +y) sind synonym, wenn sowohl Operand x als auch Operand y eine Zeichenfolge sind. Verwendung x & y Verkettet die Werte von x und y und gibt das Ergebnis als Zeichenfolge zurück. x und y können von einem der folgenden Typen sein: Zahl, Boolesch, Währung, Datum, Uhrzeit, DatumUhrzeit oder Zeichenfolge. Beispiele Die folgenden Beispiele gelten sowohl für die Crystal-Syntax als auch für die Basic-Syntax: 10 & 20 Gibt die Zeichenfolge „10,0000020,00000“ zurück, wobei durch die Zahlenformatierung für dieses Formelfeld 5 Dezimalstellen festgelegt sind. Verwenden Sie CStr, wenn Sie festlegen möchten, wie eine Zeichenfolge bei der Umwandlung aus einem anderen Typ formatiert werden soll. Bei diesem Beispiel können Sie auf die Zahlenwerte "a" und "b" die Funktion CStr anwenden, um sie zu Zeichenfolgen zu konvertieren und zu formatieren, und die daraus resultierenden Zeichenfolgen anschließend zu verketten. TRUE & FALSE Gibt die Zeichenfolge „TrueFalse“ zurück. "Meeting am " & #15 Nov. 1999# 1999# Gibt die Zeichenfolge „The meeting is 11/15/99 12:00:00 AM“ zurück. "Junge" & "Mädchen" Gibt die Zeichenfolge „JungeMädchen“ zurück. Crystal Reports-Anwenderhandbuch 561 9 9 Operatoren Zeichenfolgeoperatoren Anmerkungen Das Format des Rückgabewertes wird durch das Format bestimmt, das für dieses Formelfeld des entsprechenden Operandentyps eingerichtet wurde. Sie können jedoch CStr verwenden, wenn Sie einen Wert eines anderen Typs in eine Zeichenfolge umwandeln und dabei die Möglichkeit haben möchten, für die daraus resultierende Zeichenfolge ein Format festzulegen. Verwandte Themen: • Verkettungsoperator (x +y) Index in Arrays und Zeichenfolgen Index (x(y)) Basic-Syntax Verwendung x(y) Extrahiert das Element y aus der Zeichenfolge x. x(y To z) Extrahiert den Elementenbereich y bis z aus der Zeichenfolge x. x(n) Extrahiert das Element n aus dem Array x. Hinweis: Die Indexbereiche haben die Basis 1, d. h., sie beginnen bei 1 statt bei 0. Ein Index wird verwendet, um ein oder mehrere Zeichen aus einer Zeichenfolge oder ein Element aus einem Array zu extrahieren. Beispiele Die folgenden Beispiele gelten für die Basic-Syntax: LNAME (1) Gibt „S“ zurück, wenn LNAME = „Schmidt“. Postal (6) Gibt den Wert „V“ zurück, wobei die Postleitzahl „T5A 9V2“ lautet (das Leerzeichen zwischen A und 9 zählt als ein Element). {Kunde.PLZ} (5 to 7) Gibt „9V2“ zurück, wenn die Postleitzahl „T5A 9V2“ lautet. {Datei.ARTIKELNUMMER} (4 to 5) Gibt „40“ zurück, wobei die Artikelnummer A1/4020/B10 lautet. 562 Crystal Reports-Anwenderhandbuch Operatoren Zeichenfolgeoperatoren Anmerkungen • Sie müssen einen Array indizieren, indem Sie in Basic-Syntax zuerst den Array deklarieren und danach auf den Variablennamen des Arrays verweisen: Hier ein Beispiel: 'Deklaration des Arrays MeinName Dim MeinName () As String MeinName = Array ("Firma A", "Firma B", "Firma C") 'Verweis auf den Array anhand seines Namens formula = MyName (1) • Verwechseln Sie Indexe nicht mit dem In-Zeichenfolge-Operator. Während durch einen Index eine Zeichenfolge nach einem Element durchsucht und dieses Element, sobald gefunden, aus der Zeichenfolge extrahiert wird, wird durch In Zeichenfolge lediglich geprüft, ob das gesuchte Element in der Zeichenfolge enthalten ist. Verwandte Themen: • Index (x[y]) Crystal-Syntax Index (x[y]) Crystal-Syntax Verwendung x[y] Extrahiert das Element y aus der Zeichenfolge x. x[y to z] Extrahiert den Elementenbereich y bis z aus der Zeichenfolge x. x[n] Extrahiert das Element n aus dem Array x. Hinweis: Die Indexbereiche haben die Basis 1, d. h., sie beginnen bei 1 statt bei 0. Ein Index wird verwendet, um ein oder mehrere Zeichen aus einer Zeichenfolge oder ein Element aus einem Array zu extrahieren. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: [100,233,466,998][3] Gibt 466 zurück; 466 ist das dritte Element des Arrays. LNAME [1] Gibt „S“ zurück, wenn LNAME = „Schmidt“. Crystal Reports-Anwenderhandbuch 563 9 9 Operatoren Zeichenfolgeoperatoren Postal [6] Gibt den Wert „V“ zurück, wobei die Postleitzahl „T5A 9V2“ lautet (das Leerzeichen zwischen A und 9 zählt als ein Element). {Kunde.PLZ} [5 to 7] Gibt „9V2“ zurück, wenn die Postleitzahl „T5A 9V2“ lautet. {Datei.ARTIKELNUMMER} [4 to 5] Gibt „40“ zurück, wobei die Artikelnummer A1/4020/B10 lautet. Anmerkungen Verwechseln Sie Indexe nicht mit dem In-Zeichenfolge-Operator. Während durch einen Index eine Zeichenfolge nach einem Element durchsucht und dieses Element, sobald gefunden, aus der Zeichenfolge extrahiert wird, wird durch In Zeichenfolge lediglich geprüft, ob das gesuchte Element in der Zeichenfolge enthalten ist. Verwandte Themen: • Index (x(y)) Basic-Syntax In-Zeichenfolge-Operator Basic- und Crystal-Syntax. Verwendung x in y Überprüft die Zeichenfolge y auf Vorkommen der Zeichenfolge x. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: "Bero" in {Kunde.ADRESSE1} Gibt TRUE zurück, wobei {Kunde.ADRESSE1} „Berowitz-Straße 35“ lautet. "Bero" in {Kunde.ADRESSE1} Gibt TRUE zurück, wobei {Kunde.ADRESSE1} „Berowitz-Straße 35“ lautet. "bero" in {Datei.MOTTO} Gibt FALSE zurück, wenn {Datei.MOTTO} = „Klein aber oho“. (Die Buchstaben „ber“ am Ende des Wortes „aber“ und das „o“ am Anfang von „oho“ sind durch ein Leerzeichen voneinander getrennt, das selbst als Element gezählt wird.) 564 Crystal Reports-Anwenderhandbuch Operatoren Bereichsoperatoren "ber o" in {Datei.MOTTO} Gibt TRUE zurück, wenn {Datei.MOTTO} = „Klein aber oho“. (In diesem Beispiel enthält die Suchzeichenfolge „ber o“ ein Leerzeichen zwischen „ber“ und dem „o“, so dass es zu einer Übereinstimmung kommt.) Hinweis: Mit dem Operator „in“ können Sie nach einer Zeichenfolge in einem Textbereich suchen. Zum Beispiel, „V5B“ in „V0A“ bis „V9Z“. Leere Zeichenfolge einfügen Basic- und Crystal-Syntax. Verwendung Fügt eine leere Zeichenfolge ein. Beispiele Durch Einfügen einer leeren Zeichenfolge können Sie überprüfen, ob für den Kundennamen ein Eintrag vorliegt oder nicht. Wenn der Kundenname fehlt, können Sie anstelle des Kundennamens die Kontaktperson für diesen Kunden zurückgeben lassen. if {Kunde.Kundenname}="" then ({Kunde.Kontaktperson, Vorname}+" "+{Kunde.Kontaktperson, Nachname})'' Else {Kunde.Kundenname} Bereichsoperatoren Bereichsoperatoren werden verwendet, um Bereiche zu erstellen und zu überprüfen, ob ein bestimmter Wert in diesem Bereich liegt. Mit diesen Operatoren können Sie überprüfen, ob zusammenhängende Werte, wie Datumsangaben, Text oder Beträge, innerhalb eines Bereichs liegen. • • • • • • • • • In-Bereich-Operator (x in y) To (x To y) – Bereicherstellungs-Operator _To (x _To y) Bereich mit Ausschluss des Startpunkts To_ (x To_ y) Bereich mit Ausschluss des Endpunkts _To_ (x _To_ y) – Bereich mit Ausschluss von Start- und Endpunkt Is > x Is < x Ist >= x Ist <= x Crystal Reports-Anwenderhandbuch 565 9 9 Operatoren Bereichsoperatoren • • • • upFrom (upFrom x) – Ab upFrom_ (upFrom_ x) – Ab aber nicht einschließlich Bis (upTo x) upTo_ (upTo_ x) – Bis aber nicht einschließlich In-Bereich-Operator (x in y) Basic- und Crystal-Syntax. Verwendung x in y Durchsucht einen Bereich von Wert (y), um zu prüfen, ob ein Wert (x) innerhalb des angegebenen Bereichs liegt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: CurrentDate in CDate(1990, 09, 01) to CDate(1990, 09, 20) Gibt True zurück, wenn das heutige Datum der 15. September 1990 ist. CurrentDate in CDate(1990, 09, 01) to CDate(1990, 09, 20) Gibt False zurück, wenn das heutige Datum der 21. September 1990 ist. {Datei.MENGE} in {Datei.AUF LAGER} to ({Datei.DERZEIT NICHT LIEFERBAR} + {Datei.BESTELLT}) Gibt TRUE zurück, wobei {Datei.MENGE} = 20, {Datei.AUF LAGER} = 10, {Datei.DERZEIT NICHT LIEFERBAR} = 5 und {Datei.BESTELLT} = 25 entspricht. (Liegt 20 im Bereich zwischen 10 und der Summe aus 5 und 25?). {Datei.MENGE} in {Datei.AUF LAGER} to ({Datei.DERZEIT NICHT LIEFERBAR} + {Datei.BESTELLT}) Gibt FALSE zurück, wobei {Datei.MENGE} = 31, {Datei.AUF LAGER} = 10, {Datei.DERZEIT NICHT LIEFERBAR} = 5 und {Datei.BESTELLT} = 25 entspricht. (Liegt 31 im Bereich zwischen 10 und der Summe aus 5 und 25?). Anmerkungen Die Kombination aus dem To (x To y) – Bereicherstellungs-Operator und dem In-Bereich-Operator wird häufig zusammen mit den If-Then-Else-Operatoren verwendet. Zum Beispiel in Crystal-Syntax Formel: If ({Datei.MENGE} in (100.00 to 250.00)) Then (.10 * {Datei.MENGE}) Else 0; 566 Crystal Reports-Anwenderhandbuch Operatoren Bereichsoperatoren Liegt der Wert von {Datei.MENGE} im Bereich von 100,00 bis 250,00, wird {Datei.MENGE} mit 0,10 multipliziert. Ist dies nicht der Fall, wird Null zurückgeben. Verwandte Themen: • Funktion DateTime To (x To y) – Bereicherstellungs-Operator Basic- und Crystal-Syntax. Verwendung x to y Erstellt den Bereich x bis y. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: 100.00 to 250.00 Der Bereich fortlaufender numerischer Werte von 100,00 bis 250,00 (einschließlich der Endwerte). CDate(1990, 09, 01) to CDate(1990, 09, 20) Der Bereich fortlaufender Datumsangaben, die mit dem 1. September 1990 beginnen und mit dem 20. September 1990 enden. Sowohl der 1. September als auch der 20. September sind im Bereich enthalten. "Anton" to "Lisa" Ein Bereich fortlaufender Textwerte von „Anton“ bis „Lisa“, wobei die Endwerte eingeschlossen sind. Anmerkungen • Sie können keine Formel erstellen, die einen Bereich als Ergebnis liefert. Daher wird der Bereicherstellungs-Operator immer in Verbindung mit anderen Operatoren wie dem In-Bereich-Operator (x in y) verwendet. Mit der Kombination aus Bereich erstellen und In Bereich können Sie eine Formel erstellen, die nur einen der Werte Wahr oder Falsch zurückgibt, aber keinen Bereich. • Es wird eine Reihe von vordefinierten Datumsbereiche, z. B. YearToDate, zur Verfügung gestellt. Crystal Reports-Anwenderhandbuch 567 9 9 Operatoren Bereichsoperatoren _To (x _To y) Bereich mit Ausschluss des Startpunkts Basic- und Crystal-Syntax. Verwendung x _To y x _To y wird zum Festlegen eines Bereichs von Werten verwendet, die größer als der Wert x (ohne x selbst) und zugleich kleiner als oder gleich dem Wert y sind. x und y können von einem der folgenden Typen sein: Zahl (Number), Boolesch (Boolean), Währung (Currency), Datum (Date), Zeit (Time), Datum/Uhrzeit (DateTime) und Zeichenfolge (String). Beispiele Das folgende Beispiel gilt für die Basic-Syntax: Dim BlackoutZeit As Date Range Rem Blackout period is Jan. 1, 1999 to March 31, 1999, inclusive BlackoutDates = CDate(#12/31/1998#) _To CDate(#3/ 31/1999#) If CurrentDate In BlackoutZeit Then formula = "Blackout" Else formula = "Frei für Handelsgeschäfte" End If Wenn das heutige Datum der 31. Dezember 1998 ist, dann wird "Frei für Handelsgeschäfte" zurückgegeben, da es vor dem Blackoutzeitraum liegt. Wenn das heutige Datum der 1. Januar 1999 ist, dann wird "Blackout" zurückgegeben, da es innerhalb des Blackoutzeitraums liegt. Wenn das heutige Datum der 31. März. 1999 ist, dann wird „Blackout“ zurückgegeben, da es innerhalb des Blackoutzeitraums liegt. Wenn das heutige Datum der 30. Oktober 1999 ist, dann wird "Frei für Handelsgeschäfte" ausgegeben, da es nach dem Blackoutzeitraum liegt. To_ (x To_ y) Bereich mit Ausschluss des Endpunkts Basic- und Crystal-Syntax. Verwendung x 568 To_ y Crystal Reports-Anwenderhandbuch Operatoren Bereichsoperatoren x To_ y wird zum Festlegen eines Bereichs von Werten verwendet, die größer als oder gleich dem Wert x und zugleich kleiner als der Wert y (ohne y selbst) sind. x und y können von einem der folgenden Typen sein: Zahl (Number), Boolesch (Boolean), Währung (Currency), Datum (Date), Zeit (Time), Datum/Uhrzeit (DateTime) und Zeichenfolge (String). Beispiele Das folgende Beispiel gilt für die Basic-Syntax: Dim BlackoutZeit As Date Range Rem Blackout period is Jan. 1, 1999 to March 31, 1999, inclusive BlackoutDates = CDate(#1/1/1999#) To_ CDate(#4/1/1999#) If CurrentDate In BlackoutZeit Then formula = "Blackout" Else formula = "Frei für Handelsgeschäfte" End If Wenn das heutige Datum der 31. Dezember 1998 ist, dann wird "Frei für Handelsgeschäfte" zurückgegeben, da es vor dem Blackoutzeitraum liegt. Wenn das heutige Datum der 1. Januar 1999 ist, dann wird "Blackout" zurückgegeben, da es innerhalb des Blackoutzeitraums liegt. Wenn das heutige Datum der 31. März. 1999 ist, dann wird „Blackout“ zurückgegeben, da es innerhalb des Blackoutzeitraums liegt. Wenn das heutige Datum der 1. April 1999 ist, dann wird „Frei für Handelsgeschäfte“ zurückgegeben, da es nach dem Blackoutzeitraum liegt. _To_ (x _To_ y) – Bereich mit Ausschluss von Start- und Endpunkt Basic- und Crystal-Syntax. Verwendung x _To_ y x _To_ y wird zum Festlegen eines Bereichs von Werten verwendet, die größer als der Wert x (ohne x selbst) und zugleich kleiner als der Wert y (ohne y selbst) sind. x und y können von einem der folgenden Typen sein: Zahl (Number), Boolesch (Boolean), Währung (Currency), Datum (Date), Zeit (Time), Datum/Uhrzeit (DateTime) und Zeichenfolge (String). Crystal Reports-Anwenderhandbuch 569 9 9 Operatoren Bereichsoperatoren Beispiele Das folgende Beispiel gilt für die Basic-Syntax: Dim BlackoutZeit As Date Range Rem Blackout period is Jan. 1, 1999 to March 31, 1999, inclusive BlackoutDates = CDate(#12/31/1998#) _To_ CDate(#4/1/1999#) If CurrentDate In BlackoutZeit Then formula = "Blackout" Else formula = "Frei für Handelsgeschäfte" End If Wenn das heutige Datum der 31. Dezember 1998 ist, dann wird "Frei für Handelsgeschäfte" zurückgegeben, da es vor dem Blackoutzeitraum liegt. Wenn das heutige Datum der 1. Januar 1999 ist, dann wird "Blackout" zurückgegeben, da es innerhalb des Blackoutzeitraums liegt. Wenn das heutige Datum der 31. März. 1999 ist, dann wird „Blackout“ zurückgegeben, da es innerhalb des Blackoutzeitraums liegt. Wenn das heutige Datum der 1. April 1999 ist, dann wird „Frei für Handelsgeschäfte“ zurückgegeben, da es nach dem Blackoutzeitraum liegt. Is > x Basic- und Crystal-Syntax. Is > x wird in der Basic-Syntax bevorzugt, upFrom_ (upFrom_ x) – Ab aber nicht einschließlich dagegen in der Crystal-Syntax. Verwendung Is > x Is > x wird zum Festlegen eines Bereichs von Werten verwendet, die größer als der Wert x sind. x kann von jedem Typ sein: Zahl (Number), Währung (Currency), Datum (Date), Uhrzeit (Time), DatumUhrzeit (DateTime) und Zeichenfolge (String). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Is > 250 Alle Zahlen größer als 250. 570 Crystal Reports-Anwenderhandbuch Operatoren Bereichsoperatoren Is > CDate (2000, 3, 17) Alle Datumsangaben ab dem 18. März 2000, einschließlich dem 18. März 2000. Is < x Basic- und Crystal-Syntax. Is < x wird in der Basic-Syntax bevorzugt, upTo_ (upTo_ x) – Bis aber nicht einschließlich dagegen in der Crystal-Syntax. Verwendung Is < x Is < x wird zum Festlegen eines Bereichs von Werten verwendet, die kleiner als der Wert x sind. x kann von jedem Typ sein: Zahl (Number), Währung (Currency), Datum (Date), Uhrzeit (Time), DatumUhrzeit (DateTime) und Zeichenfolge (String). Beispiele Das folgende Beispiel gilt für die Basic-Syntax: Dim BlackoutZeit() As Date Range Rem Der Blackoutzeitraum umfasst jedes Datum vor 1999 oder jedes Datum im März 1999 BlackoutDates = Array (Is < CDate(1999, 1, 1), _ CDate(1999, 3, 1) To CDate (1999, 3, 31)) If CurrentDate In BlackoutZeit Then formula = "Blackout" Else formula = "Frei für Handelsgeschäfte" End If Wenn das heutige Datum der 30. Dezember 1998 ist, dann wird "Blackout" zurückgegeben, da es innerhalb des Blackoutzeitraums vor 1999 liegt. Wenn das heutige Datum der 1. Januar 1999 ist, dann wird "Frei für Handelsgeschäfte" zurückgegeben, da es innerhalb keines Blackoutzeitraums liegt. Wenn das heutige Datum der 31. März 1999 ist, dann wird „Blackout“ zurückgegeben, da es innerhalb des Blackoutmonats März liegt. Wenn das heutige Datum der 30. Oktober 1999 ist, dann wird "Frei für Handelsgeschäfte" zurückgegeben, da es innerhalb keines Blackoutzeitraums liegt. Crystal Reports-Anwenderhandbuch 571 9 9 Operatoren Bereichsoperatoren Ist >= x Basic- und Crystal-Syntax. Is >= x wird in der Basic-Syntax bevorzugt, upFrom (upFrom x) – Ab dagegen in der Crystal-Syntax. Verwendung Is >= x Is >= x wird zum Festlegen eines Bereichs von Werten verwendet, die größer als oder gleich dem Wert x sind. x kann von jedem Typ sein: Zahl (Number), Währung (Currency), Datum (Date), Uhrzeit (Time), DatumUhrzeit (DateTime) und Zeichenfolge (String). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Is >= 250 Alle Zahlen größer als oder gleich 250. Is >= CDate (2000, 3, 17) Alle Datumsangaben ab dem 17. März 2000, einschließlich dem 17. März 2000. Ist <= x Basic- und Crystal-Syntax. Is <= x wird in der Basic-Syntax bevorzugt, Bis (upTo x) dagegen in der Crystal-Syntax. Verwendung Is <= x Is <= x wird zum Festlegen eines Bereichs von Werten verwendet, die kleiner als oder gleich dem Wert x sind. x kann von jedem Typ sein: Zahl (Number), Währung (Currency), Datum (Date), Uhrzeit (Time), DatumUhrzeit (DateTime) und Zeichenfolge (String). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Is <= 250 Alle Zahlen kleiner als oder gleich 250. 572 Crystal Reports-Anwenderhandbuch Operatoren Bereichsoperatoren Is <= CDate (2000, 3, 17) Alle Datumsangaben vor dem 17. März 2000, einschließlich dem 17. März 2000. upFrom (upFrom x) – Ab Basic- und Crystal-Syntax. upFrom x wird in der Crystal-Syntax bevorzugt, Ist >= x dagegen in der BasicSyntax. Verwendung upFrom x upFrom x wird zum Festlegen eines Bereichs von Werten verwendet, die größer als oder gleich dem Wert x sind. x kann von jedem Typ sein: Zahl (Number), Boolesch (Boolean), Währung (Currency), Datum (Date), Zeit (Time), Datum/Uhrzeit (DateTime) und Zeichenfolge (String). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: upFrom 250 Alle Zahlen größer als oder gleich 250. upFrom CDate (2000, 3, 17) Alle Datumsangaben ab dem 17. März 2000, einschließlich dem 17. März 2000. upFrom_ (upFrom_ x) – Ab aber nicht einschließlich Basic- und Crystal-Syntax. UpFrom_ x wird in der Crystal-Syntax bevorzugt, Is > x dagegen in der BasicSyntax. Verwendung upFrom_x upFrom_ x wird zum Festlegen eines Bereiches von Werten verwendet, die größer als, aber nicht gleich dem Wert x sind. x kann von jedem Typ sein: Zahl (Number), Boolesch (Boolean), Währung (Currency), Datum (Date), Zeit (Time), Datum/Uhrzeit (DateTime) und Zeichenfolge (String). Crystal Reports-Anwenderhandbuch 573 9 9 Operatoren Bereichsoperatoren Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: upFrom_ 250 Alle Zahlen größer als 250. upFrom_ CDate (2000, 3, 17) Alle Datumsangaben ab dem 18. März 2000, einschließlich dem 18. März 2000. Bis (upTo x) Basic- und Crystal-Syntax. upTo x wird in der Crystal-Syntax bevorzugt, Ist <= x dagegen in der BasicSyntax. Verwendung upTo x upTo x wird zum Festlegen eines Bereichs von Werten verwendet, die kleiner als oder gleich dem Wert x sind. x kann von jedem Typ sein: Zahl (Number), Boolesch (Boolean), Währung (Currency), Datum (Date), Zeit (Time), Datum/Uhrzeit (DateTime) und Zeichenfolge (String). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: upTo 250 Alle Zahlen kleiner als oder gleich 250. upTo CDate (2000, 3, 17) Alle Datumsangaben vor dem 17. März 2000, einschließlich dem 17. März 2000. upTo_ (upTo_ x) – Bis aber nicht einschließlich Basic- und Crystal-Syntax. upTo_ x wird in der Crystal-Syntax bevorzugt, Is < x dagegen in der BasicSyntax. 574 Crystal Reports-Anwenderhandbuch Operatoren Boolesche Operatoren Verwendung upTo_ x upTo_x wird zum Festlegen eines Bereichs von Werten verwendet, die kleiner als aber nicht gleich dem Wert x sind. x kann von jedem Typ sein: Zahl (Number), Boolesch (Boolean), Währung (Currency), Datum (Date), Zeit (Time), Datum/Uhrzeit (DateTime) und Zeichenfolge (String). Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: upTo_ 250 Alle Zahlen kleiner als 250. upTo_ CDate (2000, 3, 17) Alle Datumsangaben vor dem 17. März 2000, ausschließlich dem 17. März 2000. Boolesche Operatoren Boolesche Operatoren werden zum Erstellen von Bedingungen verwendet, die eine logische Beziehung zwischen zwei oder mehreren Werten erfordern. Bedingungen, die boolesche Operatoren verwenden, werden als boolesche Ausdrücke bezeichnet. "A und B" sagt aus, dass sowohl A als auch B wahr sein müssen, damit die Bedingung erfüllt ist (der Wert TRUE zurückgegeben wird). "A oder B" sagt aus, dass entweder A oder B wahr sein muss (oder beide wahr sein können), damit die Bedingung erfüllt ist (der Wert TRUE zurückgegeben wird). • • • • • • Not (Ungleich-Operator) And (Und) Or (Oder) Xor (logischer Ausschluss) Eqv (logische Äquivalenz) Imp (logische Implikation) Crystal Reports-Anwenderhandbuch 575 9 9 Operatoren Boolesche Operatoren Not (Ungleich-Operator) Basic- und Crystal-Syntax. Verwendung not (x) Kehrt den Wert Wahr oder Falsch von x um. Wert von x Not x True False False True • • Not (Not(False)) = False Not (Not(True)) = True Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: not (A>B and B>C) Wenn A = 5, B = 4, C = 3, ist der Ausdruck (A>B and B>C) TRUE. Beide durch den booleschen Operator "And" verbundene Bedingungen sind TRUE. Daher besitzt die gesamte Anweisung den Wert TRUE. Durch den Operator "Not" bekommt der Ausdruck den Wert FALSE. not (A>B and B>C) Wenn A = 3, B = 4, C = 3, ist der Ausdruck (A>B and B>C) FALSE. Eine der durch den booleschen Operator "And" verbundenen Bedingungen ist FALSE. Daher hat die gesamte Anweisung den Wert FALSE. Durch den Operator "Not" bekommt der Ausdruck den Wert TRUE. not ({Datei.AUF LAGER} - {Datei.AUFTRAG} > 0) Gibt TRUE zurück, wenn {Datei.AUF LAGER} = 10 und {Datei.AUFTRAG} = 11 entspricht. not ({Datei.AUF LAGER} - {Datei.AUFTRAG} > 0) Gibt FALSE zurück, wenn {Datei.AUF LAGER} = 10 und {Datei.AUFTRAG} = 9 entspricht. And (Und) Basic- und Crystal-Syntax. 576 Crystal Reports-Anwenderhandbuch Operatoren Boolesche Operatoren Verwendung x And y Wert von x Wert von y x And y True True True True False False False True False False False False Beispiele Das folgende Beispiel gilt für die Crystal-Syntax: If {Datei.KREDITRAHMEN} = 5000 and {Datei.VERKÄUFER} = "SP" Then {Datei.MENGE} Else 0 Wenn der Kreditrahmen 5.000 beträgt und der Verkäufer SP ist (also beide Bedingungen erfüllt sind), wird der Wert des Feldes {Datei.MENGE} zurückgegeben, andernfalls wird Null zurückgegeben. A > B and B > C Gibt den Wert TRUE zurück, wobei A = 10, B = 6 und C = 3 entspricht (beide Bedingungen sind erfüllt). Gibt FALSE zurück, wenn A = 10, B = 6 und C = 7 (nur eine der beiden Bedingungen ist erfüllt). (A>B) and (A * C - D > E) and (E / D <= B) Gibt den Wert TRUE zurück, wobei A = 7, B = 5, C = 3, D = 2 und E = 10 entspricht (alle drei Bedingungen sind erfüllt). Or (Oder) Basic- und Crystal-Syntax. Verwendung x Or y Wert von x Wert von y x Or y True True True True False True False True True False False False Crystal Reports-Anwenderhandbuch 577 9 9 Operatoren Boolesche Operatoren Beispiele Das folgende Beispiel gilt für die Crystal-Syntax: If {Datei.KREDITRAHMEN} = 5000 or {Datei.VERKÄUFER} = "SP" Then {Datei.MENGE} Else 0; Diese Formel besagt: Wenn der Kreditrahmen 5.000 beträgt oder der Verkäufer SP ist (eine der beiden Bedingungen TRUE ist), dann wird der Wert im Feld {Datei.MENGE} zurückgegeben, ansonsten wird kein Wert zurückgegeben. Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: A > B or B > C Gibt den Wert TRUE zurück, wobei A = 10, B = 6 und C = 3 entspricht (beide Bedingungen sind erfüllt). A > B or B > C Gibt TRUE zurück, wenn A = 10, B = 6 und C = 7 (eine der beiden Bedingungen ist erfüllt). A > B or B > C Gibt FALSE zurück, wenn A = 5, B = 6 und C = 7 (keine der beiden Bedingungen ist erfüllt). (A>B) or (A * C - D > E) or (E / D<= B) Gibt TRUE zurück, wobei A = 5, B = 5, C = 3, D = 2 und E = 12 entspricht. (Mindestens eine der drei Bedingungen wird erfüllt. In diesem Fall ist nur (A * C - D > E) TRUE.) Xor (logischer Ausschluss) Basic- und Crystal-Syntax. Verwendung x Xor y 578 Wert von x Wert von y x Xor y True True False True False True False True True False False False Crystal Reports-Anwenderhandbuch Operatoren Boolesche Operatoren Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Kunde.VERKAUF} Xor {Kunde.REG_GENEHMIGUNG} Vermittlung ist wahr (TRUE), wenn entweder {Kunde.VERKAUF} oder {Kunde.REG_GENEHMIGUNG} wahr (TRUE) und der andere Operand falsch (FALSE) ist. Eqv (logische Äquivalenz) Basic- und Crystal-Syntax. Verwendung x Eqv y Wert von x Wert von y X Eqv y True True True True False False False True False False False True Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Kunde.VERKAUF} Eqv {Kunde.REG_GENEHMIGUNG} Genehmigung ist wahr (TRUE), wenn sowohl {Kunde.VERKAUF} als auch {Kunde.REG_GENEHMIGUNG} wahr (TRUE) ist oder sowohl {Kunde.VERKAUF} als auch {Kunde.REG_GENEHMIGUNG} falsch (FALSE) ist. Imp (logische Implikation) Basic- und Crystal-Syntax. Verwendung x Imp y Wert von x Wert von y x Imp y True True True True False False Crystal Reports-Anwenderhandbuch 579 9 9 Operatoren Arrayoperatoren Wert von x Wert von y x Imp y False True True False False True Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Kunde.VERKAUF} Imp {Kunde.REG_GENEHMIGUNG} GenehmigungOderAufheben ist wahr (TRUE), wenn sowohl {Kunde.VERKAUF} als auch {Kunde.REG_GENEHMIGUNG} übereinstimmen (d. h., wenn beide Wahr oder Falsch sind) oder wenn nur {Kunde.REG_GENEHMIGUNG} übereinstimmt (d. h., wenn nur {Kunde.REG_GENEHMIGUNG} TRUE ist) und Vorrang hat. Arrayoperatoren Arrayoperatoren werden verwendet, um eine Liste mit Datenfeldern, Konstanten oder Textzeichenfolgen zu erstellen. Anhand dieser Listen können Sie dann überprüfen, ob ein Feld in der entsprechenden Liste vorkommt und an welcher Listenposition sich das extrahierte Element befindet. Während mit Bereichsoperatoren überprüft wird, ob ein Element in einem Wertebereich vorkommt, können Sie mit Hilfe der Datenfeldoperatoren feststellen, ob sich ein Element unter einer Reihe nicht zusammenhängender Werte befindet. • • • • • Arrayerstellung Index (x[y]) In Array Redim Redim Preserve Arrayerstellung Crystal-Syntax. Der Array-Erstellungs-Operator kann nur mit Crystal-Syntax verwendet werden. Die Array-Funktion kann nur mit Basic-Syntax verwendet werden. Siehe Arrays (Basic-Syntax). 580 Crystal Reports-Anwenderhandbuch Operatoren Arrayoperatoren Verwendung [x,y,z,...n] Erstellt ein Array mit den Elementen x, y, z, ... n. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: [100,200,300,400] [{Datei.MENGEA}, {Datei.MENGEB}, {Datei.MENGEC}] [({Datei.PREIS1} * .5),({Datei.PREIS2} * .5), ({Datei.PREIS3} * .25)] [500, ({Datei.MENGE} / 3)] Hinweis: In einem Array kann nur ein Datentyp vorkommen. Index (x[y]) Siehe Index in Arrays und Zeichenfolgen. In Array Basic- und Crystal-Syntax. Verwendung x in [y] Ist x in dem Array y enthalten? Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: Rem Basic-Syntax {Kunde.Region} in Array ("NW", "HE", "TH") //Crystal-Syntax {Kunde.Region} in [("NW", "HE", "TH"] Ist der Wert des Feldes {Kunde.Region} im Array der Bundesländerabkürzungen enthalten? Die folgenden Beispiele gelten für die Crystal-Syntax: {Datei.FARBE} in ["Rot", "Weiß", "Blau"] Ist der Wert im Feld {Datei.FARBE} im Array der Farben, die in Klammern aufgelistet sind, enthalten? DayofWeek({Datei.DATUM}) in [2, 4, 6] Ist der Wert im Feld {Datei.DATUM}, der in eine Zahl umgewandelt wurde, die DayOfWeek entspricht, im Array der in Klammern aufgelisteten Zahlen enthalten? (Sonntag = 1, Samstag = 7) Crystal Reports-Anwenderhandbuch 581 9 9 Operatoren Arrayoperatoren Redim Basic-Syntax x(n) Verwenden Sie in der Crystal-Syntax nur Redim x[n] (mit eckigen Klammern) und in der Basic-Syntax nur Redim x(n) (mit runden Klammern). Verwendung Redim x(n) Ändern Sie die Größe des Arrays x zur Größe n, wobei x ein Array und n eine positive ganze Zahl ist, mit der die neue Größe von x festgelegt wird. Beispiele Das folgende Beispiel gilt für die Basic-Syntax: Dim x () As String 'Initialisierung der ersten drei Array-Elemente x = Array ("a", "bb", "ccc") 'Änderung der Größe von x zu 4; alte Werte werden ignoriert 'x ist jetzt gleich dem Array ("", "", "", "") Redim x(4) 'x ist jetzt gleich dem Array ("", "", "", "dddd") x(4) = "dddd" formula = x(4) Anmerkungen Wenn die Größe eines Arrays mit Redim geändert wird, werden die Elemente des Arrays mit Standardwerten für den betreffenden Typ gefüllt. Crystal-Syntax x[n] • Verwenden Sie in der Crystal-Syntax nur Redim x[n] (mit eckigen Klammern) und in der Basic-Syntax nur Redim x(n) (mit runden Klammern). • Im Gegensatz zu Redim x(n) in der Basic-Syntax kann eine RedimAnweisung in der Crystal-Syntax nicht mehrere Arrays besitzen. Verwendung Redim x[n] Änderung der Größe des Arrays x zur Größe n, wobei x ein Array und n eine positive ganze Zahl ist, mit der die neue Größe von n festgelegt wird. 582 Crystal Reports-Anwenderhandbuch Operatoren Arrayoperatoren Beispiele Das folgende Beispiel gilt für die Crystal-Syntax: Local StringVar array x:= ["a", "bb", "ccc"]; // Änderung der Arraygröße auf 4; alte Werte werden ignoriert // und durch Standardwerte in Form leerer Zeichenfolgen ersetzt Redim x [4]; x[4] := "dddd"; // nur x[4] wird initialisiert Anmerkungen Wenn die Größe eines Arrays mit Redim geändert wird, werden die Elemente des Arrays mit Standardwerten für den betreffenden Typ gefüllt. Redim Preserve Basic-Syntax x(n) Verwendung Redim Preserve x(n) Ändern Sie die Größe des Arrays x zur Größe n unter Beibehaltung der in x ursprünglich enthaltenen Werte. x ist ein Array, und n ist eine positive ganze Zahl, mit der die neue Größe von x festgelegt wird. Beispiele Das folgende Beispiel gilt für die Basic-Syntax: Dim x () As String 'Initialisierung der ersten drei Array-Elemente x = Array ("a", "bb", "ccc") 'Änderung der Größe von x auf 4; alte Werte bleiben erhalten Redim Preserve x(4) 'Initialisiert x(4) x(4) = "dddd" 'gibt "dddd" zurück formula = x(4) Crystal-Syntax x[n] • Verwenden Sie in der Crystal-Syntax nur Redim Preserve x[n] (mit eckigen Klammern) und in der Basic-Syntax nur Redim Preserve x(n) (mit runden Klammern). • Im Gegensatz zu Redim Preserve x(n) in der Basic-Syntax können in der Crystal-Syntax in einer einzigen Redim Preserve-Anweisung nicht mehrere Arrays angegeben werden. Crystal Reports-Anwenderhandbuch 583 9 9 Operatoren Musteroperatoren Verwendung Redim Preserve x[n] Änderung der Größe des Arrays x zur Größe n unter Beibehaltung der in x ursprünglich enthaltenen Werte. x ist ein Array, und n ist eine positive ganze Zahl, mit der die neue Größe von n festgelegt wird. Beispiele Das folgende Beispiel gilt für die Crystal-Syntax: Local StringVar array x:= ["a", "bb", "ccc"]; // Änderung der Arraygröße auf 4 unter Beibehaltung der alten Werte. Redim Preserve x [4]; // jetzt x = ["a", "bb", "ccc", "dddd"] x [4] := "dddd"; x[4] // Gibt "dddd" zurück Musteroperatoren Musteroperatoren werden verwendet, um Zeichenfolgen mit einem festgelegten Muster zu vergleichen. Sie eignen sich besonders als Operatoren zum Auswählen von Datensätzen, wobei ein Teil einer Zeichenfolge (like (Wie Muster)) oder eine teilweise unbekannte Zeichenfolge (Beginnt-mit-Operator (x startsWith y)) mit dem Muster übereinstimmen muss. • • Beginnt-mit-Operator (x startsWith y) like (Wie Muster) Beginnt-mit-Operator (x startsWith y) Basic- und Crystal-Syntax. Der Beginnt-Mit-Operator ist dann hilfreich, wenn Datensätze zum Einfügen in Berichte oder Entfernen aus Berichten ausgewählt werden sollen. Verwendung x startsWith y {feldname} startsWith "abc" Dieser Operator überprüft, ob der Inhalt von {Feldname}mit der angegebenen Zeichenfolge beginnt: „abc“. Wenn der Inhalt des Feldes mit „abc“ beginnt, gibt die Formel den Wert TRUE zurück. Wenn das Feld anders beginnt, gibt die Formel FALSE zurück. 584 Crystal Reports-Anwenderhandbuch Operatoren Musteroperatoren Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Kunde.Kundenname} startsWith "A" Gibt TRUE zurück, wenn {Kunde.Kundenname} = ABC Ltd. {Kunde.Kundenname} startsWith "C" Gibt FALSE zurück, wenn {Kunde.Kundenname} = ABC Ltd. {Kunde.Kundenname} startsWith "ABC" Gibt TRUE zurück, wenn {Kunde.Kundenname} = ABC Inc. oder ABC Ltd. {Kunde.Kundenname} startsWith "ABC" Gibt FALSE zurück, wenn {Kunde.Kundenname} = XYZ Inc. like (Wie Muster) Basic- und Crystal-Syntax. Der like-Operator ist dann hilfreich, wenn Datensätze zum Einfügen in Berichte oder Entfernen aus Berichten ausgewählt werden sollen. Verwendung x like y {Feldname} like "c?n*" Dieser Operator prüft, ob der Inhalt von {Feldname} mit der Zeichenfolge „c?n*“, die als Muster angegeben wurde, übereinstimmt. Wenn der Inhalt des Feldes mit dem Muster „c?n*“ übereinstimmt, gibt die Formel den Wert TRUE zurück. Wenn das Feld anders beginnt, gibt die Formel FALSE zurück. Verwenden Sie die Platzhaltersymbole ? und * als Zeichenvariablen. Das Fragezeichen (?) steht für ein einzelnes Zeichen. Das Symbol * steht für eine beliebige Anzahl von Zeichen. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: {Kunde.VORNAME} like "T?m" Gibt TRUE zurück, wenn {Kunde.VORNAME} = Tim oder Tom. {Kunde.VORNAME} like "T?m" Gibt FALSE zurück, wenn {Kunde.VORNAME} = Dirk oder Jan. {Kunde.NACHNAME} like "*s?n*" Gibt TRUE zurück, wenn {Kunde.NACHNAME} = Jansen oder Bessen. {Kunde.NACHNAME} like "*s?n*" Gibt FALSE zurück, wenn {Kunde.NACHNAME} = Schmitt oder Becker. Crystal Reports-Anwenderhandbuch 585 9 9 Operatoren Operatoren für Kontrollstrukturen Operatoren für Kontrollstrukturen Bei Formeln ohne Steuerelementstrukturen wird beim Auswerten der Formel jede Anweisung genau einmal abgearbeitet. Die Anweisungen werden von der ersten Anweisung der Formel bis zur letzten in sequentieller Reihenfolge abgearbeitet. Mit Hilfe von Steuerelementstrukturen können Sie diese feststehende Abfolge ändern. Je nachdem, welche Steuerelementstruktur Sie wählen, können Sie abhängig davon, ob bestimmte Bedingungen erfüllt werden, eine Folge von Anweisungen überspringen oder mehrmals auswerten lassen. Steuerelementstrukturen sind das wichtigste Hilfsmittel, um betriebswirtschaftliche Abläufe auszudrücken, und werden in Standardberichtsformeln häufig dafür eingesetzt. Basic-Syntax – Operatoren für Kontrollstrukturen • • • • • • • If-Anweisungen (Basic-Syntax) Select-Anweisungen (Basic-Syntax) For/Next-Schleifen (Basic-Syntax) Verwenden der Exit For-Anweisung (Basic-Syntax) While-Schleifen (Basic-Syntax) Do-Schleifen (Basic-Syntax) Option-Schleife (Basic-Syntax) Crystal-Syntax – Operatoren für Kontrollstrukturen • • • • • If-Ausdrücke (Crystal-Syntax) Select-Ausdrücke (Crystal-Syntax) For-Schleifen (Crystal-Syntax) While-Schleifen (Crystal-Syntax) Option-Schleife (Crystal-Syntax) Andere Operatoren Mit anderen Operatoren können Sie Variablen Werte zuweisen, eine Verarbeitungsreihenfolge zum Ausführen der Berechnungen bestimmen, Anmerkungen von Formeln trennen, Datumskonstanten definieren oder Funktionen aufrufen. • 586 Klammeroperatoren Crystal Reports-Anwenderhandbuch Operatoren Andere Operatoren • • • Zuweisungsoperatoren Kommentare Datum-Uhrzeit-Literal (#…#) Klammeroperatoren Basic- und Crystal-Syntax. Verwendung (x + y) * z Die Berechnungen innerhalb der Klammern werden zuerst ausgeführt. Um die Verarbeitungsreihenfolge zu steuern, in der eine Formel vom Dialogfeld „Format-Editor“ berechnet wird, werden Klammern verwendet. In der Basic-Syntax werden Klammern auch als Index für Arrays und Zeichenfolgen verwendet. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: 8 + 6 * 3 - 6 / 2 Gibt 23 zurück. (8 + 6) * 3 - 6 / 2 Gibt 39 zurück. (8 + 6) * (3 - 6 / 2) Gibt 0 zurück. (8 + 6 * 3 - 6) / 2 Gibt 10 zurück. {Datei.UMSATZ} - {Datei.KOSTEN GESAMTER WARENLIEFERUNG} {Datei.S&A} * .8 Gibt 1000 zurück, wobei UMSATZ = 25.000, KOSTEN GESAMTER WARENLIEFERUNG = 12.000 und S&A = 15.000 entspricht. {Datei.UMSATZ} - (({Datei.KOSTEN GESAMTER WARENLIEFERUNG} {Datei.S&A}) * .8) Gibt 27.400 zurück, wobei UMSATZ = 25.000, KOSTEN GESAMTER WARENLIEFERUNG = 12.000 und S&A = 15.000 entspricht. ({Datei.UMSATZ} - {Datei.KOSTEN GESAMTER WARENLIEFERUNG} {Datei.S&A}) * .8 Gibt –1.600 zurück, wobei UMSATZ = 25.000, KOSTEN GESAMTER WARENLIEFERUNG = 12.000 und S&A = 15.000 entspricht. Crystal Reports-Anwenderhandbuch 587 9 9 Operatoren Andere Operatoren Zuweisungsoperatoren Basic syntax (x = y) Sie können den Zuweisungsoperator (=) und das Zuweisungsschlüsselwort „Let“ (Let x = y). nur in der Basic-Syntax verwenden. Die Crystal-Syntax verwendet den anderen Zuweisungsoperator (:=). Verwendung x = y Weist y der Variablen x zu; x muss vor der Zuweisung bereits deklariert sein. y muss vom selben Typ wie x oder ein mit x kompatibler Typ sein. Let x = y Weist y der Variablen x zu; x muss vor der Zuweisung bereits deklariert sein. y muss vom selben Typ wie x oder ein mit x kompatibler Typ sein. Beispiele Das folgende Beispiel gilt für die Basic-Syntax: Dim n As Number Dim b As Boolean Dim c As Currency Dim d As Date Dim t As Time Dim s As String Dim ZahlenArray () As Number 'n wird die Zahl 100 zugewiesen. n = 100 'b wird der boolesche Wert True zugewiesen b = True 'c wird der Währungswert 5.000 zugewiesen c = CCur (5000) 'd wird der Datumswert 10. Okt. 1999 zugewiesen 10, 1999 d = CDate ("10, 10, 1999") 't wird der Zeitwert 12:50 zugewiesen t = CTime ("12:50am") 's wird eine Zeichenfolge zugewiesen, die aus einer Verkettung von zwei Teilzeichenfolgen und einem Feldwert besteht s = "Der Gesamtumsatz beläuft sich auf " & {Aufträge.Auftragssumme} & " Milliarden." 'ZahlenArray wird ein Array aus Zahlenwerten zugewiesen numArray = Array (10, 20, 30) formula = s 588 Crystal Reports-Anwenderhandbuch Operatoren Andere Operatoren Anmerkungen • Eine Variable muss in einer separaten Anweisung deklariert worden sein, bevor ihr in der Basic-Syntax ein beliebiger Wert zugewiesen werden kann. • Bei einer Zuweisung wird lediglich einer Variablen ein Wert zugewiesen. Wenn eine Formel einen Rückgabewert liefert, wird dieser der Variablen formula zugewiesene Wert so formatiert, wie dies für dieses Formelfeld des entsprechenden Typs festgelegt wurde. Crystal-Syntax (x := y) Sie können den Zuweisungsoperator (:=) nur in der Crystal-Syntax verwenden. Verwendung x := n Weist der Variable x den Wert n zu. (x muss in der Formel bereits deklariert worden sein.) Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: Amount:= 0 Initialisiert die Variable MENGE (setzt die Variable auf Null). Amount:= 100 Weist der Variablen Amount den Wert 100 zu. MENGE := MENGE + {Datei.MENGE} Weist der Variablen MENGE das Ergebnis einer Berechnung zu. Bei der Berechnung handelt es sich um die Addition des Wertes im Mengenfeld ({Datei.MENGE}) und des aktuellen Wertes der Variablen MENGE. MENGE:= {Datei.MENGE1} + {Datei.MENGE2} + {Datei.MENGE3} Summiert die drei Mengenfelder und weist der Variablen MENGE die Summe zu. Kunde:= "Westside Motors" Die Zeichenfolge „Westside Motors“ wird der Variablen Customer zugewiesen. Kunde:= {Kunde.VORNAME} + {Kunde.NACHNAME} Verkettet zwei Felder und weist der Variablen Customer den verketteten Wert beider Felder zu. Kunde := TrimRight({Kunde.VORNAME}) + {Kunde.NACHNAME} Crystal Reports-Anwenderhandbuch 589 9 9 Operatoren Andere Operatoren Entfernt die Leerzeichen hinter dem Vornamen im Feld {Kunde.VORNAME}, verkettet dieses Feld mit dem Feld für den Nachnamen ({Kunde.NACHNAME}) und weist den verketteten Wert der Variablen Kunde zu. "Hr . {Kunde.NACHNAME} Concatenates the string “Mr. Verkettet die Zeichenfolge „Herr“ mit dem Wert des Nachnamenfeldes {Kunde .NACHNAME} und weist der Variablen Customer den verketteten Wert zu. Amount:= 100; Customer:= "Westside Motors" Weist die Konstante 100 der Zahlenvariablen Amount und die Zeichenfolge „Westside Motors“ der Zeichenfolgenvariablen Customer zu. Sie können mehreren Variablen Werte zuweisen, indem Sie die Zuweisungsanweisungen mit Semikolons voneinander trennen. Kommentare Formelkommentare sind Hinweise, die den Aufbau und die Funktion der Formel erklären. Kommentare werden nicht ausgedruckt und haben keinen Einfluss auf die Formel. Sie werden nur im Formula Workshop angezeigt. Basic-Syntax (Rem) Verwendung Rem Text Der Text, der auf den Operator folgt, ist ein Kommentar. Beispiele Die folgenden Beispiele gelten für die Basic-Syntax: Rem Diese Formel gibt die Gesamtzahl aller Tage zurück, an denen in einem Jahr gearbeitet wurde. Der Kommentar steht in einer eigenen Zeile. formula = TageGesamt : Rem Gesamtzahl aller Tage, an denen in einem Jahr gearbeitet wurde. Der Kommentar folgt auf eine Formelanweisung und einen Doppelpunkt. formula = TageGesamt : Rem Diese Formel gibt die Gesamtzahl aller Tage zurück, _ an denen in einem Jahr gearbeitet wurde. Der Kommentar folgt auf eine Formelanweisung und einen Doppelpunkt und verwendet das Zeilenfortsetzungszeichen, um in der nächsten Zeile fortgesetzt werden zu können. 590 Crystal Reports-Anwenderhandbuch Operatoren Andere Operatoren Anmerkungen • Der Kommentar kann sich ober- oder unterhalb der Formel befinden. Er kann in einer eigenen Zeile beginnen oder auch in derselben Zeile nach der Formel folgen, wenn ihm ein Doppelpunkt (:) vorangestellt wird. • Innerhalb eines Kommentars kann ein Zeilenfortsetzungszeichen („_“) verwendet werden, mit dem der Kommentar in der nächsten Zeile fortgesetzt werden kann. • Der Kommentaroperator (//) kann nur in der Crystal-Syntax verwendet werden, während die anderen Kommentaroperatoren (’) und (Rem) in der Basic-Syntax verwendet werden. Basic-Syntax (') Verwendung ' Text Der Text, der auf den Operator folgt, ist ein Kommentar. Beispiele Die folgenden Beispiele gelten für die Basic-Syntax: 'Diese Formel gibt die Gesamtzahl aller Tage zurück, an denen in einem Jahr gearbeitet wurde. Der Kommentar steht in einer eigenen Zeile. formula = TageGesamt 'Gesamtzahl aller Tage, an denen in einem Jahr gearbeitet wurde. Der Kommentar folgt auf eine Formelanweisung. formula = TageGesamt 'Diese Formel gibt die Gesamtzahl aller Tage zurück, _ an denen in einem Jahr gearbeitet wurde. Der Kommentar folgt auf eine Formelanweisung und verwendet das Zeilenfortsetzungszeichen, um in der nächsten Zeile fortgesetzt werden zu können. Anmerkungen • Der Kommentar kann sich ober- oder unterhalb der Formel befinden. Er kann in einer eigenen Zeile beginnen oder auch in derselben Zeile auf die Formel folgen, wenn ihm ein Apostroph (’) vorangestellt wird. • Innerhalb eines Kommentars kann ein Zeilenfortsetzungszeichen („_“) verwendet werden, mit dem der Kommentar in der nächsten Zeile fortgesetzt werden kann. Crystal Reports-Anwenderhandbuch 591 9 9 Operatoren Andere Operatoren • Der Kommentaroperator (//) kann nur in der Crystal-Syntax verwendet werden, während die anderen Kommentaroperatoren (’) und (Rem) in der Basic-Syntax verwendet werden. Crystal-Syntax (//) Verwendung // Text Der auf diesen Operator folgende Text ist ein Kommentar; er wird nicht als Teil der Formel betrachtet und nicht ausgegeben. Beispiele Die folgenden Beispiele gelten für die Crystal-Syntax: {Datei.UMSATZ} - {Datei.UNKOSTEN} // berechnet den Bruttogewinn Die Formel lautet {Datei.UMSATZ} - {Datei.UNKOSTEN}; alles andere wird vom Dialogfeld „Formel-Editor“ ignoriert. ({Datei.UMSATZ} - {Datei.SPANNE}) *0,06 // berechnet die Verkaufskommission Die Formel lautet ({Datei.UMSATZ} - {Datei.SPANNE}) * 0,06; alles andere wird vom Dialogfeld „Formel-Editor“ ignoriert. //Es folgt //eine Formel. Beachten Sie, dass Sie nach //einem erzwungenen Zeilenumbruch //die neue Zeile wieder mit dem //Operator "Kommentar" beginnen müssen. If {Datei.UNKOSTEN} > {Datei.VERKAUFSPREIS} Then "Verlust" Else ""; //Dies war eine Formel. Alle kommentierten Zeilen, die vor oder nach der Formel angezeigt werden, werden ignoriert. Anmerkungen • Der Kommentar kann sich ober- oder unterhalb der Formel befinden oder sogar am Ende einer Formelzeile stehen, wenn er durch zwei Schrägstriche eingeleitet wird. • Sie können den Kommentaroperator (//) nur in der Crystal-Syntax verwenden und die anderen Kommentaroperatoren (') und (Rem) in der Basic-Syntax. Datum-Uhrzeit-Literal (#…#) Basic- und Crystal-Syntax. 592 Crystal Reports-Anwenderhandbuch Operatoren Variablendeklarationsoperatoren Verwendung # Alphanumerische Zeichenfolge # Dieser Operator wandelt die eingeschlossene alphanumerische Zeichenfolge in einen Datum-Uhrzeit-Wert um. Die alphanumerische Zeichenfolge muss eine allgemein verwendete Datums-, Uhrzeit- oder Datum-Uhrzeit-Angabe enthalten. Viele Formate werden unterstützt. Beispiele Die folgenden Beispiele gelten sowohl für die Basic-Syntax als auch für die Crystal-Syntax: #10:10am# Gibt den DateTime-Wert 10:10:00 zurück. #Oct. 19, 1999 # Gibt den DateTime-Wert 19. Oktober 1999 12:00:00 zurück. #Oct. 19, 1999 10:10am# Gibt den DateTime-Wert 19. Oktober 1999 10:10:00 zurück. Anmerkungen Wenn eine Formel einen Datum-Uhrzeit-Wert zurückgibt, wird das Format dieses Rückgabewertes durch die für dieses Formelfeld gültige DatumUhrzeit-Formatierung bestimmt. Variablendeklarationsoperatoren Alle Variablennamen müssen in der Formelsprache deklariert worden sein, bevor Sie ihn in einer Formel einsetzen können. • • Variablendeklaratoren für Basic-Syntax Variablendeklaratoren für Crystal-Syntax Variablendeklaratoren für Basic-Syntax Mit Hilfe von Variablendeklaratoren können Sie eine Variable definieren, indem Sie ihr einen Namen zuweisen. Sie haben auch die Möglichkeit, einer Variablen bei der Deklaration einen Wert zuzuweisen, und zwar unter Verwendung des Zuweisungsoperators. Die folgenden Variablendeklaratoren gelten für die Basic-Syntax. Verwendung • • Dim x Dim x () Crystal Reports-Anwenderhandbuch 593 9 9 Operatoren Variablendeklarationsoperatoren • • • • • • • • • • • • • • • • • • • • • • • • • • Dim x As Boolean Dim x As Number Dim x As Currency Dim x As Date Dim x As Time Dim x As DateTime Dim x As String Dim x As Number Range Dim x As Currency Range Dim x As Date Range Dim x As Time Range Dim x As DateTime Range Dim x As String Range Dim x () As Boolean Dim x () As Number Dim x () As Currency Dim x () As Date Dim x () As Time Dim x () As DateTime Dim x () As String Dim x () As Number Range Dim x () As Currency Range Dim x () As Date Range Dim x () As Time Range Dim x () As DateTime Range Dim x () As String Range Deklariert eine Variable x, die Daten eines Datentyps aufnehmen kann, der dem verwendeten Variablendeklarator entspricht. Anmerkungen 594 • Eine Variable muss mit einem Variablendeklarator deklariert worden sein, bevor Sie sie in einer Formel einsetzen können. • Dim gibt eine Variable mit lokalem Gültigkeitsbereich an. Sie können die verschiedenen Bereiche mit den Schlüsselwörtern Local (lokal), Global und Shared (freigegeben) anstelle von Dim angeben. Local und Dim sind gleichwertige Schlüsselwörter. Crystal Reports-Anwenderhandbuch Operatoren Variablendeklarationsoperatoren Variablendeklaratoren für Crystal-Syntax Mit Hilfe von Variablendeklaratoren können Sie eine Variable definieren, indem Sie ihr einen Namen zuweisen. Sie haben auch die Möglichkeit, einer Variablen bei der Deklaration einen Wert zuzuweisen, und zwar unter Verwendung des Zuweisungsoperators. Die folgenden Variablendeklaratoren gelten für die Crystal-Syntax. Verwendung • • • • • • • • • • • • • • • • • • • • • • • • • • Local BooleanVar x Local NumberVar x Local CurrencyVar x Local DateVar x Local TimeVar x Local DateTimeVar x Local StringVar x Local NumberVar range x Local CurrencyVar range x Local DateVar range x Local TimeVar range x Local DateTimeVar range x Local StringVar range x Local BooleanVar array x Local NumberVar array x Local CurrencyVar array x Local DateVar array x Local TimeVar array x Local DateTimeVar array x Local StringVar array x Local NumberVar range array x Local CurrencyVar range array x Local DateVar range array x Local TimeVar range array x Local DateTimeVar range array x Local StringVar range array x Deklariert eine lokale Variable x, die Daten eines Datentyps aufnehmen kann, der dem verwendeten Variablendeklarator entspricht. Crystal Reports-Anwenderhandbuch 595 9 9 Operatoren Bereichsoperatoren Lokale Variablen erhalten ihren Wert nur für die Auswertung der Formel, in der sie verwendet werden. Anmerkungen • Eine Variable muss mit einem Variablendeklarator deklariert worden sein, bevor Sie sie in einer Formel einsetzen können. • Local (Lokal) legt eine Variable mit lokalem Gültigkeitsbereich fest. Zur Angabe anderer Bereiche können Sie die Schlüsselwörter Global und Shared (freigegeben) anstelle von Local verwenden. Sie können das Bereichsschlüsselwort auch auslassen und die Deklaration der Variablen mit dem Typnamen beginnen. Dies entspricht der Deklaration einer globalen Variablen. Bereichsoperatoren Der Gültigkeitsbereich einer Variablen ist ein Attribut, das angibt, wo und wie Sie die Variable verwenden können, z. B. innerhalb der Formel, in der sie definiert ist oder auch außerhalb dieser Formel. • • Variablenbereiche für Basic-Syntax Variablenbereiche für Crystal-Syntax Variablenbereiche für Basic-Syntax Mit der Deklaration eines Bereichs für eine Variable wird ihre Verwendbarkeit für verschiedene Bereiche eines Berichts festgelegt. Folgende Bereiche stehen für Variablen zur Verfügung: • • • • Dim Local (Lokal) Global Shared (Freigegeben) Dim gibt eine Variable mit lokalem Gültigkeitsbereich an. Local und Dim sind gleichwertige Schlüsselwörter. Variablenbereiche für Crystal-Syntax Mit der Deklaration eines Bereichs für eine Variable wird ihre Verwendbarkeit für verschiedene Bereiche eines Berichts festgelegt. Folgende Bereiche stehen für Variablen zur Verfügung: • 596 Global Crystal Reports-Anwenderhandbuch Operatoren Bereichsoperatoren Die Variable steht für Formeln im gesamten aktuellen Bericht zur Verfügung. • Shared (Freigegeben) Die Variable kann sowohl in einem Unterbericht als auch im gesamten aktuellen Bericht verwendet werden. • Local (Lokal) Die Variable kann nur in der Formel verwendet werden, in der sie definiert ist. Wenn Sie Variablenbereiche verwenden, müssen Sie den für die Variable zu deklarierenden Bereich zu Beginn der Anweisung für die Variablendeklaration hinzufügen. Sie können das Bereichsschlüsselwort auch auslassen und die Deklaration der Variablen mit dem Typnamen beginnen. Dies entspricht der Deklaration einer globalen Variablen. Beispiele NumberVar MENGE; Deklariert eine Variable namens MENGE, die beliebige Werte vom Datentyp Ganze Zahl oder Dezimal aufnehmen kann. Global NumberVar MENGE; Deklariert eine Variable namens MENGE, die beliebige Werte vom Datentyp Ganze Zahl oder Dezimal aufnehmen kann. Diese Variable wäre für alle Formeln des aktuellen Berichts verfügbar BooleanVar Outstanding; Deklariert eine globale Variable mit dem Namen Outstanding, die entweder den Wert Wahr oder Falsch besitzen kann. Shared BooleanVar Outstanding; Deklariert eine freigegebene Variable mit dem Namen "Outstanding", die den Wert Wahr oder Falsch besitzen kann. Diese Variable stünde sowohl im Hauptbericht als auch in allen im Hauptbericht enthaltenen Unterberichten zur Verfügung. StringVar Nachname := "Meier"; Deklariert die globale Variable „Nachname“, die einen Zeichenfolgenwert besitzen kann und der die Zeichenfolge „Meier“ zugewiesen wurde. Local StringVar Nachname : = "Meier"; Deklariert die lokale Variable „Nachname“, die einen Zeichenfolgenwert besitzen kann und der die Zeichenfolge „Meier“ zugewiesen wurde. Diese Variable stünde nur für die Formel zur Verfügung, in der sie deklariert wurde. Crystal Reports-Anwenderhandbuch 597 9 9 Operatoren Anweisungstrennzeichen Anmerkungen • Aufgrund Ihrer Variablendeklaration reserviert Crystal Reports einen bestimmten Speicherplatz, um den der Variablen zugewiesenen Wert aufzunehmen, und weist dem Speicherblock einen Standardwert zu. Welcher Standardwert zugewiesen wird, hängt vom Datentyp des verwendeten Variablendeklarators ab und davon, ob der Variablen bei der Deklaration ein Wert zugewiesen wurde. • Eine Variable, die in zwei Formeln deklariert wurde, verwendet ein und denselben Speicherblock (d. h., sie bezieht sich auf nur einen Wert). Hier ein Beispiel: //Formel Nr. 1 NumberVar(x); x := 5 //Formel Nr. 2 NumberVar(x); x = x +15 Der Wert von x ist nun 20. Anweisungstrennzeichen Crystal-Syntax. Operator (Symbol/Wort) ; Verwendung 1+1;"abc" 1+1 und „abc“ sind zwei unterschiedliche Formelausdrücke in einer Formel, die mehrere Ausdrücke enthält. Der Strichpunkt zwischen den Anweisungen gibt an, wo eine Anweisung endet und die Nächste beginnt. Ohne das Semikolon würden die Anweisungen zusammen als eine einzige Anweisung interpretiert werden. Anmerkungen Dieser Operator wird nur in der Crystal-Syntax zur Trennung aufeinander folgender Ausdrücke verwendet. In der Basic-Syntax werden zur Trennung von aufeinander folgenden Anweisungen Zeilenumbrüche oder Doppelpunkte verwendet. 598 Crystal Reports-Anwenderhandbuch Operatoren Konstanten Konstanten Dieser Abschnitt enthält Informationen über die verschiedenen Typen von Konstanten: • • • Konstanten für das Datum Konstanten zur Formatierung Mathematische Konstanten Diese Konstanten können in der Formelsprache für Folgendes verwendet werden: • • • • Datumsfunktionen bedingte Datumsformatierung bedingte Schriftartformatierung Textinterpretation im Report Designer Konstanten für das Datum Klicken Sie auf eine Verknüpfung, um zum jeweiligen Abschnitt zu gelangen: • • • • Konstanten für Wochentage Konstanten für die erste Jahreswoche Konstanten für die Wochentageinrahmung Datum-/Uhrzeitkonstanten Konstanten für Wochentage Die folgenden Konstanten werden mit den entsprechenden numerischen Werten definiert. Sie können sie zusammen mit Datumsfunktionen verwenden, die firstDayOfWeek als Parameter akzeptieren: Konstante Beschreibung crUseSystem 0 (Verwenden Sie die NLS API-Einstellung) crSunday 1 crMonday 2 crTuesday 3 crWednesday 4 crThursday 5 crFriday 6 crSaturday 7 Crystal Reports-Anwenderhandbuch 599 9 9 Operatoren Konstanten Konstanten für die erste Jahreswoche Die folgenden Konstanten werden mit den entsprechenden numerischen Werten definiert. Sie können sie zusammen mit Datumsfunktionen verwenden, die firstWeekOfYear als Parameter akzeptieren: Konstante Wert Beschreibung crUseSystem 0 Die NLS API-Einstellung wird verwendet. crFirstJan1 1 Es wird mit der Woche, in die der 1. Januar fällt, begonnen (Standardeinstellung). crFirstFourDays 2 Damit wird mit der ersten Woche des Jahres, die aus mindestens vier Tagen besteht, begonnen. crFirstFullWeek 3 Damit wird mit der ersten vollen Woche des Jahres begonnen. Konstanten für die Wochentageinrahmung Die folgenden Konstanten sind so definiert, dass die internationale Formatierung von Wochentagen, d. h. die mögliche Einfassung in runde oder eckige Klammern, unterstützt wird. 600 Konstante Beschreibung crDayOfWeekNotEnclosed Damit werden Wochentage in Date- oder DateTime-Feldern nicht in Klammern gesetzt. crDayOfWeekInParentheses Damit werden Wochentage in Date- oder DateTime-Feldern in runde Klammern gesetzt. Dies ist bei englischen Schriftarten die Standardeinstellung. crDayOfWeekInFWParentheses Damit werden Wochentage in Date- oder DateTime-Feldern in breite runde Klammern gesetzt, wie sie für japanische Schriften zur Verfügung stehen. crDayOfWeekInSquareBrackets Damit werden Wochentage in Date- oder DateTime-Feldern in eckige Klammern gesetzt. Dies ist bei englischen Schriftarten die Standardeinstellung. crDayOfWeekInFWSquareBrackets Damit werden Wochentage in Date- oder DateTime-Feldern in breite eckige Klammern gesetzt, wie sie für japanische Schriften zur Verfügung stehen. Crystal Reports-Anwenderhandbuch Operatoren Konstanten Datum-/Uhrzeitkonstanten Konstante Beschreibung crDateThenTime Zeigt das Datum und im Anschluss daran die Uhrzeit an. crTimeThenDate Zeigt die Uhrzeit und im Anschluss daran das Datum an. crDateOnly Zeigt nur das Datum an. crTimeOnly Zeigt nur die Uhrzeit an. Konstanten zur Formatierung Klicken Sie auf eine Verknüpfung, um zum jeweiligen Abschnitt zu gelangen: • • • • • Konstanten für den Schriftschnitt Konstanten für die Textinterpretation Konstanten für die Farbe Konstanten für die Ausrichtung Konstanten für die Linienart Konstanten für den Schriftschnitt Konstante Beschreibung crRegular Formatiert Schriftart im Schriftschnitt "Standard". crBold Formatiert Schriftart im Schriftschnitt "Fett". crItalic Formatiert Schriftart im Schriftschnitt "Kursiv". crBoldItalic Formatiert Schriftart im Schriftschnitt "Fett Kursiv". Crystal Reports-Anwenderhandbuch 601 9 9 Operatoren Konstanten Konstanten für die Textinterpretation Die folgenden Konstanten sind so definiert, dass sie das Importieren wichtiger Daten, die im RTF- oder HTML-Format vorformatiert sind, und das Einfügen der Daten in einem Bericht als Zeichenfolge- oder Memofelder unterstützen. Konstante Beschreibung crUninterpretedText Damit werden die Daten als reine Textdaten interpretiert. crRTFText Damit werden die Daten als RTF-Daten (Rich Text Format) interpretiert. crHTMLText Damit werden die Daten als HTML-Daten interpretiert. Konstanten für die Farbe 602 Konstante Beschreibung crBlack Die Farbe Schwarz. crMaroon Die Farbe Kastanienbraun. crGreen Die Farbe Grün. crOlive Die Farbe Olivgrün. crNavy Die Farbe Dunkelblau. crPurple Die Farbe Violett. crTeal Die Farbe Blaugrün. crGray Die Farbe Grau. crSilver Die Farbe Silber. crRed Die Farbe Rot. crLime Die Farbe Gelbgrün. crYellow Die Farbe Gelb. crBlue Die Farbe Blau. crFuchsia Die Farbe Lila. crAqua Die Farbe Aquamarin. crWhite Die Farbe Weiß. crNoColor Keine Farbe. Crystal Reports-Anwenderhandbuch Operatoren Konstanten Konstanten für die Ausrichtung Konstante Beschreibung crDefaultHorAligned Legt die horizontale Ausrichtung als Standard fest. crLeftAligned Richtet linksbündig aus. crRightAligned Richtet rechtsbündig aus. crCenteredHorizontally Zentriert horizontal. crJustified Legt den Blocksatz als Ausrichtung fest. crDefaultVerAligned Legt die vertikale Ausrichtung als Standard fest. crTopAligned Richtet am oberen Rand aus. crBottomAligned Richtet am unteren Rand aus. crCenteredVertically Zentriert vertikal. Konstanten für die Linienart Konstante Beschreibung crNoLine Keine Rahmenlinie. crSingleLine Einzelne Rahmenlinie. crDoubleLine Doppelte Rahmenlinie. crDashedLine Gestrichelte Rahmenlinie. crDottedLine Gepunktete Rahmenlinie. Mathematische Konstanten crPi – die mathematische Konstante pi, die den Wert 3,14 (auf zwei Dezimalstellen gerundet) aufweist. Crystal Reports-Anwenderhandbuch 603 9 9 Operatoren Konstanten 604 Crystal Reports-Anwenderhandbuch Anhang Business ObjectsInformationsressourcen A Business Objects-Informationsressourcen Dokumentations- und Informationsdienste Dokumentations- und Informationsdienste Business Objects bietet ein komplettes Dokumentationsset, in dem sowohl sämtliche Produkte als auch die Implementierung behandelt wird. Darüber hinaus wird zusätzlicher Support und sonstige Serviceleistungen bereitgestellt, damit Sie einen maximalen Nutzen aus Ihrer Business Intelligence-Investition ziehen können. In den folgenden Abschnitten erfahren Sie, wo die Business Objects-Dokumentation erhältlich ist und wie Sie die Business Objects-Ressourcen nutzen können, um Ihren Bedarf an technischem Support, Schulungs- und Beratungsleistungen zu decken. Dokumentation In der Dokumentation erhalten Sie Antworten auf Ihre Fragen zur Installation, Konfiguration, Implementierung sowie zum Einsatz der Business ObjectsProdukte. Was ist im Dokumentationsset enthalten? Lesen oder laden Sie den Business Objects-Dokumentationswegweiser herunter, der mit der Produktdokumentation unter der Adresse http://www.businessobjects.com/support/ zur Verfügung steht. Im Dokumentationswegweiser sind alle Business Objects-Handbücher aufgeführt, sodass Sie auf einen Blick erkennen können, welche Informationen wo und in welchem Format verfügbar sind. Wo finden Sie die Dokumentation? Sie können jederzeit innerhalb der Benutzeroberfläche der Produkte, über das Internet oder über die Produkt-CD auf die elektronische Dokumentation zugreifen. Dokumentation innerhalb der Produkte Online-Hilfe und Handbücher im Adobe PDF-Format sind über das Hilfemenü der jeweiligen Anwendung verfügbar. Sofern nur die Onlinehilfe zur Verfügung steht, enthält diese Onlinehilfedatei den gesamten Inhalt der PDFVersion des Handbuchs. 606 Crystal Report Explorer-Anwenderhandbuch Business Objects-Informationsressourcen Kunden-Support, Beratung und Schulung Dokumentation im Internet Die vollständige elektronische Dokumentation steht auf unserer Supportwebsite im Internet bereit: http://www.businessobjects.com/support/. Dokumentation auf der Produkt-CD Suchen Sie auf der Produkt-CD im Verzeichnis docs nach Handbuchversionen im Adobe PDF-Format. Senden Sie uns Ihr Feedback Haben Sie Vorschläge, wie die Business Objects-Dokumentation verbessert werden könnte? War etwas besonders hilfreich oder gut beschrieben? Schreiben Sie uns. Wir werden unser Bestes tun, damit Ihre Vorschläge bereits in die nächste Version der Dokumentation einfließen: [email protected]. Hinweis Wenn Ihr Problem nicht die Dokumentation, sondern ein Business Objects-Produkt betrifft, wenden Sie sich bitte an die Business Objects Customer Support-Experten. Informationen zum Kunden-Support finden Sie auf folgender Website: http://www.businessobjects.com/support/. Kunden-Support, Beratung und Schulung Ein weltweites Netz von erfahrenen Business Objects-Technikern bietet Ihnen Kunden-Support, Schulungen und Beratungen, damit Ihr Unternehmen einen optimalen Nutzen aus der Business Intelligence-Lösung ziehen kann. Wie erhalten Sie Unterstützung? Business Objects entwirft Kunden-Supportpläne für Sie, um eine auf Ihre Implementierungsanforderungen und -größe zugeschnittene Lösung zu finden. Kunden-Supportcenter werden in folgenden Ländern betrieben: • • • • • USA Australien Kanada Großbritannien Japan Crystal Report Explorer-Anwenderhandbuch 607 A A Business Objects-Informationsressourcen Kunden-Support, Beratung und Schulung Online Customer Support Die Customer Support-Website von Business Objects enthält Informationen zu Kunden-Support-Programmen und -Diensten. Außerdem finden Sie hier Links zu einem breiten Angebot an technischen Informationen, einschließlich Knowledge Base-Artikeln, Downloads und Support-Foren. http://www.businessobjects.com/support/ Suchen Sie nach der optimalen Implementierungslösung für Ihr Unternehmen? Die Business Objects-Berater können Sie von der ersten Analysephase an bis hin zur Lieferung Ihres Implementierungsprojekts begleiten. Es wird Ihnen Fachwissen und Know-how in den Bereichen relationale und multidimensionale Datenbanken, Konnektivität, Datenbank-Designtools, angepasste Integrationstechnologie und vielem mehr geboten. Weitere Informationen erhalten Sie in Ihrer örtlichen Verkaufsstelle oder indem Sie sich an Business Objects wenden unter: http://www.germany.businessobjects.com/services/ Suchen Sie Schulungsmöglichkeiten? Business Objects bietet Ihnen von traditionellen Gruppenkursen bis hin zu gezielten e-Learning-Seminaren ein Schulungspaket, das an Ihre Schulungserfordernisse und Ihren bevorzugten Lernstil angepasst ist. Weitere Informationen erhalten Sie auf der Business Objects Education-Website unter: http://www.businessobjects.com/services/training 608 Crystal Report Explorer-Anwenderhandbuch Business Objects-Informationsressourcen Nützliche Adressen auf einen Blick Nützliche Adressen auf einen Blick Adresse Inhalt Business ObjectsProduktinformationen http://www.businessobjects.com Informationen über das gesamte Business Objects-Produktangebot. Produktdokumentation http://www.businessobjects.com/ support Business ObjectsProduktdokumentation, einschließlich Business ObjectsDokumentationswegweiser. Business Objects-DokumentationsMailbox [email protected] Senden Sie uns Ihr Feedback oder Ihre Fragen zur Dokumentation. Online Customer Support http://www.businessobjects.com/ support/ Informationen zu KundenSupportprogrammen sowie Links zu technischen Artikeln, Downloads und Online-Foren. Business Objects-Beratungsdienste http://www.businessobjects.com/ services/consulting/ Informationen, auf welche Weise Business Objects zur Ertragsmaximierung Ihrer Business Intelligence-Investition beitragen kann. Business Objects-Schulungsdienste Informationen zu Business Objects-Schulungsangeboten und http://www.businessobjects.com/ -modulen. services/training Crystal Report Explorer-Anwenderhandbuch 609 A A Business Objects-Informationsressourcen Nützliche Adressen auf einen Blick 610 Crystal Report Explorer-Anwenderhandbuch Index Sonderzeichen _To (Operator) 568 _To_ (Operator) 569 A Abs (Funktion) 149 absteigende Sortierreihenfolge 47 ACCRINT (Funktion) 216 ACCRINTM (Funktion) 218 Aged0To30Days 410 Aged31To60Days 410 Aged61To90Days 410 AlertMessage (Funktion) 483 AllDatesFromToday (Funktion) 408 AllDatesFromTomorrow (Funktion) 409 AllDatesToToday (Funktion) 406 AllDatesToYesterday (Funktion) 407 Allgemein (Registerkarte im BereichsAssistenten) 88 Allgemein (Registerkarte im Dialogfeld "FormatEditor") 85 Am Ende der Seite drucken, Formatierungsoption 88 AmorDEGRC (Funktion) 219 AmorLINC (Funktion) 221 And (Operator) 576 Andere Operatoren 586 Datum-Uhrzeit-Literal 592 Klammern 587 Kommentare 590 Zuweisung 588 anmelden, bei BusinessObjects Enterprise 27 anordnen, Gruppen 36 Anweisungstrennzeichen 598 anzeigen, Bericht 51 anzeigen, erweiterte Dialogfelder 97 arithmetische Operatoren 548 Addition 548 Crystal-Syntax 128 Division 550 Integer-Division 551 Modul 551 Multiplikation 549 Negation 552 Potenz 553 Prozent 550 Subtraktion 549 Array (Funktion) 419 Array-Datentypen Crystal-Syntax 113 Arrayerstellungsoperator 580 Array-Funktionen 418 Array 419 Array-Gruppenergebnisfunktionen 422 Crystal-Syntax 125 MakeArray 420 UBound 420 Array-Gruppenergebnisfunktionen 422 Arrayoperatoren 580 Arrayerstellung 580 in Array 581 Indexoperator 562 Redim 582 Redim Preserve 583 AscW (Funktion) 343 Atn-Funktion 165 Aufsteigende Sortierreihenfolge 46 Ausblenden (Drilldown OK) (Formatierungsoption) 88 Ausdrücke (Crystal-Syntax) 105 Auswahl 136 Ausrichtung, Konstanten 603 Auswählen Felder 34 Gruppen nach Gruppenergebniswerten 50 Auswertungszeitpunktfunktionen 125, 448 BeforeReading Records 449 Crystal Report Explorer-Anwenderhandbuch 611 Index EvaluateAfter 452 WhilePrintingRecords 451 WhileReadingRecords 449 automatische Typkonvertierungen Crystal-Syntax 121 Average (Funktion) 173 B Bedingte Formatierung mit Crystal-Syntax 126 Bedingte Formatierungsfunktionen Color 542 RGB 541 Bedingungen für Gruppenergebnisfunktionen 170 BeforeReadingRecords (Funktion) 449 Beginnt-mit-Operator 584 Berater, Business Objects 608 Berechnungen Bearbeiten 60 Entfernen 61 Fehlermeldungen 62 Gruppenergebnisse 42 Hinzufügen 59 Löschen 61 Bereiche Formatieren 84 Verschieben und Ändern der Größe 79 Bereichs-Assistent, verwenden 84 Bereichsdatentypen (Crystal-Syntax) 111 Bereichsoperatoren 565, 596 _To 568 _To_ 569 in Bereich 566 is < x 571 is <= x 572 is > x 570 is >= x 572 To 567 To_ 568 upFrom 573 upFrom_ 573 upTo 574 upTo_ 574 Bericht (Registerkarte) verwenden 30 Bericht ändern (Seite) 28 612 Crystal Report Explorer-Anwenderhandbuch Bericht erstellen (Seite) 28 Berichte Ändern 27 Datenquelle auswählen 33 Erstellen 27 Exportieren 53 Formatieren 76 formatieren, Bereiche 79 formatieren, Objekte 79 mit Parametern 33 mit Vorlagen 77 speichern 53 Veröffentlichen 53 Berichte exportieren 53 Berichtsdatenquellen verwenden 32 Berichtviewer öffnen 30 boolesche Operatoren 575 And 576 Crystal-Syntax 129 Eqv 579 Imp 579 Or 577 ungleich 576 Xor 578 Business Elements Auswählen 34 Beschreibung 32 Business Objects Beratungsleistungen 608, 609 Schulungsangebote 608, 609 Support-Dienstleistungen 608 Business Views auswählen, Business Elements 34 verwenden, als Datenquelle 32 Business-Felder, Beschreibung 32 BusinessObjects Enterprise, anmelden bei 27 ByteToText (Funktion) 497 C Calendar1stHalf (Funktion) 416 Calendar1stQtr (Funktion) 415 Calendar2ndHalf (Funktion) 416 Calendar2ndQtr (Funktion) 415 Calendar3rdQtr (Funktion) 415 Calendar4thQtr (Funktion) 415 Index CBool (Funktion) 426 CCur (Funktion) 427 CDate (Funktion) 435 CDateTime (Funktion) 439 CDbl (Funktion) 428 Ceiling (Funktion) 158 Choose (Funktion) 442 ChrW (Funktion) 342 Color (Funktion) 542 ContentLocale (Funktion) 479 Correlation (Funktion) 190 Cos-Funktion 163 Count (Funktion) 186 CoupDayBS (Funktion) 224 CoupDays (Funktion) 225 CoupDaysNC (Funktion) 227 CoupNCD (Funktion) 229 CoupNum (Funktion) 230 CoupPCD (Funktion) 231 Covariance (Funktion) 192 crAqua 602 crBlack 602 crBlue 602 crBold 601 crBoldItalic 601 crBottomAligned 603 crCenteredHorizontally 603 crCenteredVertically 603 crDashedLine 603 crDateOnly 601 crDateThenTime 601 crDayOfWeekInFWParentheses 600 crDayOfWeekInFWSquareBrackets 600 crDayOfWeekInParentheses 600 crDayOfWeekInSquareBrackets 600 crDayofWeekNotEnclosed 600 crDefaultHorAligned 603 crDefaultVerAligned 603 crDottedLine 603 crDoubleLine 603 crFirstFourDay 600 crFirstFullWeek 600 crFirstJan1 600 crFriday 599 crFuchsia 602 crGray 602 crGreen 602 crHTMLText 602 crItalic 601 crJustified 603 crLeftAligned 603 crLime 602 crMaroon 602 crMonday 599 crNavy 602 crNoColor 602 crNoLine 603 crOlive 602 crPi 603 crPurple 602 crRed 602 crRegular 601 crRightAligned 603 crRTFText 602 crSaturday 599 crSilver 602 crSingleLine 603 crSunday 599 crTeal 602 crThursday 599 crTimeOnly 601 crTimeThenDate 601 crTopAligned 603 crTuesday 599 crUninterpretedText 602 crUseSystem 599 crWednesday 599 crWhite 602 crYellow 602 Crystal-Syntax 102 Array-Datentypen 113 Array-Variablen 119 Ausdrücke 105 Mehrfachausdrücke 105 bedingte Formatierung 126 Bereichsdatentypen 111 boolesche Werte 110 DatumUhrzeit-Werte 110 einfache Datentypen 108 Felder 103 Crystal Report Explorer-Anwenderhandbuch 613 Index Funktionen 122 Array 125 Auswertungszeit 125 Datumsbereiche 124 Gruppenergebnis 124 nicht berichtspezifische 123 Größenbeschränkungen 144 Grundlagen 102 If-Ausdrücke 107, 131 Kommentare 103 Operatoren 128 arithmetische 128 boolesche 129 NULL-Felder 130 Vergleich 129 Option Loop 144 Schleifen For-Schleifen 138 Sicherheitsmechanismus 143 While-Schleifen 141 Select-Ausdrücke 136 Steuerelementstrukturen 131 Variablen 113 automatische Typkonvertierungen 121 deklarieren 114 Gültigkeitsbereich 116 Verarbeitungsreihenfolge 128 Währung 108 Zahlen 108 Zeichenfolgen 109 Zuweisung 107 CStr (Funktion) 430 CTime (Funktion) 437 CumIPMT (Funktion) 232 CumPrinc (Funktion) 233 CurrentCEUserID-Funktion 478 CurrentCEUserName-Funktion 477 CurrentCEUserTimeZone (Funktion) 479 CurrentDate (Funktion) 356 CurrentDateTime (Funktion) 358 CurrentFieldValue (Funktion) 539 CurrentTime (Funktion) 357 Customer Support (Kundendienst) 608 614 Crystal Report Explorer-Anwenderhandbuch D Danach neue Seite, Formatierungsoption 89 DataDate (Funktion) 472 DataTime (Funktion) 473 DataTimeZone (Funktion) 474 Date (Funktion) 359 DateAdd (Funktion) 389 DateDiff (Funktion) 391 Daten absteigende Reihenfolge 47 aufsteigende Reihenfolge 46 Auswählen 34 durchsuchen 38 Ergebnisse bilden 42 Filtern 39 gruppieren 36 Sortieren 45 Daten (Registerkarte) Beschreibung 30 verwenden, zur Berichtsanzeige 51 Datenquellen auswählen 33 Berichtsdatenquellen 32 Business Views 32 DatePart (Funktion) 395 DateSerial (Funktion) 372 DateTime (Funktion) 363 DateTimeTo2000 (Funktion) 529 DateTimeToDate (Funktion) 532 DateTimeToSeconds (Funktion) 533 DateTimeToTime (Funktion) 533 DateTimeValue (Funktion) 369 DateTo2000 (Funktion) 485 DateValue (Funktion) 365 Datum (Registerkarte im Dialogfeld "FormatEditor") 88 Datum, Konstanten 599 Datum-/Uhrzeitfunktionen 355 Current Time 357 CurrentDate 356 CurrentDateTime 358 Date 359 DateAdd 389 DateDiff 391 DatePart 395 Index DateSerial 372 DateTime 363 DateTimeValue 369 DateValue 365 Day 381 DayOfWeek 383 Hour 385 IsDate 376 IsDateTime 378 IsTime 375 Minute 385 Month 380 MonthName 387 Second 386 ShiftDateTime 397 Time 361 Timer 389 TimeSerial 374 TimeValue 367 WeekDay 382 WeekdayName 388 Year 379 Datumsbereichsfunktionen 124, 399 Aged0To30Days 410 Aged31To60Days 410 Aged61To90Days 410 AllDatesFromToday 408 AllDatesFromTomorrow 409 AllDatesToToday 406 AllDatesToYesterday 407 Calendar1stHalf 416 Calendar1stQtr 415 Calendar2ndHalf 416 Calendar2ndQtr 415 Calendar3rdQtr 415 Calendar4thQtr 415 Last4WeeksToSun 403 Last7Days 402 LastFullMonth 405 LastFullWeek 404 LastYearMTD 416 LastYearYTD 417 MonthToDate 400 Next30Days 413 Next31To60Days 413 Next61To90Days 413 Next91To365Days 413 Over90Days 412 WeekToDateFromSun 399 YearToDate 401 Datumsreihenfolge (Formatierungsoption) 88 Datum-Uhrzeit-Literal-Operator 592 Davor neue Seite (Formatierungsoption) 89 Day (Funktion) 381 DayOfWeek (Funktion) 383 Days360 (Funktion) 238 DB (Funktion) 235 DDB (Funktion) 236 DefaultAttribute (Funktion) 540 Detailbereich, sortieren 47 Dezimalstelle festlegen (Formatierungsoption) 87 Dezimalzeichen (Formatierungsoption) 88 Diagramme Entfernen 76 Hinzufügen 76 DISC (Funktion) 239 DistinctCount (Funktionen) 188 Divisionsoperator 550 Dokumentation Auf der Produkt-CD 607 Feedback zu 607 im Internet 607 Wegweiser 606 Dokumenteigenschaftenfunktionen 468 ContentLocale 479 CurrentCEUserID 478 CurrentCEUserName 477 CurrentCEUserTimeZone 479 DataDate 472 DataTime 473 DataTimeZone 474 FileAuthor 476 FileCreationDate 476 Filename 475 GroupingLevel 478 ModificationDate 471 ModificationTime 472 PrintDate 469 PrintTime 470 PrintTimeZone 470 Crystal Report Explorer-Anwenderhandbuch 615 Index ReportComments 475 ReportTitle 474 SelectionLocale 480 DollarDE (Funktion) 241 DollarFR (Funktion) 242 DrillDownGroupLevel (Funktion) 467 Druckstatusfuntionen 453 Crystal-Syntax 125 DrillDownGroupLevel 467 GroupNumber 464 GroupSelection 465 HierarchyLevel 467 InRepeatedGroupHeader 466 IsNull 458 Next 456 NextIsNull 460 NextValue 457 OnFirstRecord 466 OnLastRecord 467 PageNofM 463 Previous 453 PreviousIsNull 459 PreviousValue 455 RecordNumber 463 RecordSelection 465 Seitenzahl 461 TotalPageCount 462 DTSTo2000 (Funktion) 487 DTSToDate (Funktion) 489 DTSToDateTime 531 DTSToSeconds (Funktion) 490 DTSToTimeField (Funktion) 532 DTSToTimeString (Funktion) 491 Duration (Funktion) 243 Durchgestrichen, Formatierungsoption 87 durchsuchen, Daten 38 E Effect (Funktion) 244 Einfache Datentypen (Crystal-Syntax) 108 Einstellungen anzeigen, erweiterte Dialogfelder 97 Entwurf (Registerkarte), Aussehen 98 festlegen, Standardregisterkarte 96 festlegen, Zeilen 98 616 Crystal Report Explorer-Anwenderhandbuch Hintergrundfarbe 95 Symbolleisteneinstellungen 96 wiederherstellen, Standardeinstellungen 95 Eng Horizontal, Formatierungsoption 86 Entfernen Diagramme 76 Felder 35 Filter 39 Gruppen 36 Gruppenergebnisse 42 Sortieren 51 Entwurf (Registerkarte) ändern, Aussehen 98 verwenden 30 Eqv (Operator) 579 erste Jahreswoche, Konstanten für 397, 600 Erstellen Berechnungen 59 Berichte 27 Formeln 59 erweiterte Dialogfelder, anzeigen 97 EvaluateAfter (Funktion) 452 EventNumber (Funktion) 495 ExchGetId (Adresse) (Funktion) 491 ExchGetOrganization (Funktion) 492 ExchGetPath (Funktion) 496 ExchGetSite (Funktion) 493 Exp (Funktion) 166 ExtractString (Funktion) 494 F Farbe (Registerkarte im Bereichs-Assistenten) 90 Farbe, Formatierungsoption 87 Farbe, Konstanten 602 Feedback zur Dokumentation 607 Fehlermeldungen, Formeln 62 Felder Auswählen 34 Filtern 39 gruppieren 36 Sortieren 45 suchen 38 umbenennen 34 Felder umbenennen 34 Feldobjekte formatieren 80 Index FileAuthor (Funktion) 476 FileCreationDate (Funktion) 476 Filename (Funktion) 475 Filter Entfernen 39 Hinzufügen 39 mehrere, hinzufügen 42 Filter (Funktion) 343 Finanzfunktionen 214 ACCRINT 216 ACCRINTM 218 AmorDEGRC 219 AmorLINC 221 CoupDayBS 224 CoupDays 225 CoupDaysNC 227 CoupNCD 229 CoupNum 230 CoupPCD 231 CumIPMT 232 CumPrinc 233 Days360 238 DB 235 DDB 236 DISC 239 DollarDE 241 DollarFR 242 Duration 243 Effect 244 FV 245 FVSchedule 247 IntRate 248 IPmt 249 IRR 251 ISPMT 252 MDuration 253 MIRR 255 Nominal 256 NPer 256 NPV 258 OddFPrice 259 OddFYield 261 OddLPrice 263 OddLYield 265 Pmt 267 PPmt 269 Price 271 PriceDisc 272 PriceMat 274 PV 276 Rate 277 Received 279 SLN 280 SYD 281 TBillEq 282 TBillPrice 283 TBillYield 285 VDB 286 XIRR 288 XNPV 290 YearFrac 291 Yield 292 YieldDisc 294 YieldMat 295 Fix (Funktion) 160 Floor (Funktion) 159 folgende Bereiche unterlegen (Formatierungsoption) 90 Format, Formatierungsoption 87, 88 formatieren Bereiche 84 Berichte 76 Diagramme 76 Feldobjekte 80, 91 Größe ändern, Objekte 79 Größe von Bereichen ändern 79 mit Vorlagen 77 Objekte und Bereiche 79 Optionen 85 Textobjekte 80, 90, 91 Formeln 56, 102 Array-Datentypen Crystal-Syntax 113 Ausdrücke, Crystal-Syntax 105 Bearbeiten 60 bedingte Formatierung Crystal-Syntax 126 Bereichsdatentypen Crystal-Syntax 111 Druckstatusfunktionen (Crystal-Syntax) 125 Crystal Report Explorer-Anwenderhandbuch 617 Index einfache Datentypen Crystal-Syntax 108 Entfernen 61 Fehlermeldungen 62 Felder Crystal-Syntax 103 Funktionen Crystal-Syntax 122 Größenbeschränkungen Crystal-Syntax 144 Grundlagen Crystal-Syntax 102 If-Ausdrücke in Crystal-Syntax 131 Kommentare Crystal-Syntax 103 Komponenten 57 Löschen 61 Operatoren Crystal-Syntax 128 Schleifen Crystal-Syntax 138 Select-Ausdrücke (Crystal-Syntax) 136 Steuerelementstrukturen Crystal-Syntax 131 Syntax 58 typische Anwendungsbeispiele 56 Variablen Crystal-Syntax 113 Verarbeitungsreihenfolge Crystal-Syntax 128 Zuweisung Crystal-Syntax 107 For-Schleifen (Crystal-Syntax) 138 Fortbildung. Siehe Schulung FRAccRecTurnover (Funktion) 519 FRCashFlowVsTotalDebt (Funktion) 509 FRCurrentRatio (Funktion) 497 FRDebtEquityRatio (Funktion) 501 FRDividendYield (Funktion) 523 FREarningsPerCommonShare (Funktion) 518 FREquityVsTotalAssets (Funktion) 502 FRGrossProfitMargin (Funktion) 505 FRInterestCoverage (Funktion) 507 FRInventoryTurnover (Funktion) 521 FRNetProfitMargin (Funktion) 503 618 Crystal Report Explorer-Anwenderhandbuch FROperatingProfitMargin (Funktion) 506 FRPriceEarningsRatio (Funktion) 522 FRQuickRatio (Funktion) 499 FRReturnOnCommonEquity (Funktion) 516 FRReturnOnEquity (Funktion) 510 FRReturnOnInvestedCapital (Funktion) 515 FRReturnOnNetFixedAssets (Funktion) 512 FRReturnOnTotalAssets (Funktion) 513 Funktionen Abs 149 ACCRINT 216 ACCRINTM 218 Aged0To30Days 410 Aged31To60Days 410 Aged61To90Days 410 AllDatesFromToday 408 AllDatesFromTomorrow 409 AllDatesToToday 406 AllDatesToYesterday 407 AmorDEGRC 219 AmorLINC 221 Array 419 Crystal-Syntax 125 Array-Funktionen 418 Array-Gruppenergebnisfunktionen 422 AscW 343 Atn 165 Auswertungszeit Crystal-Syntax 125 Auswertungszeitpunktfunktionen 448 Average 173 bedingte Formatierung Crystal-Syntax 126 BeforeReadingRecords 449 ByteToText 497 Calendar1stHalf 416 Calendar1stQtr 415 Calendar2ndHalf 416 Calendar2ndQtr 415 Calendar3rdQtr 415 Calendar4thQtr 415 CBool 426 CCur 427 CDate 435 CDateTime 439 Index CDbl 428 Ceiling 158 Choose 442 ChrW 342 Color 542 ContentLocale 479 Correlation 190 Cos 163 Count 186 CoupDayBS 224 CoupDays 225 CoupDaysNC 227 CoupNCD 229 CoupNum 230 CoupPCD 231 Covariance 192 Crystal-Syntax 122 CStr 430 CTime 437 CumIPMT 232 CumPrinc 233 Current Time 357 CurrentCEUserID 478 CurrentCEUserName 477 CurrentCEUserTimeZone 479 CurrentDate 356 CurrentDateTime 358 CurrentFieldValue 539 DataDate 472 DataTime 473 DataTimeZone 474 Date 359 DateAdd 389 DateDiff 391 DatePart 395 DateSerial 372 DateTime 363 DateTimeTo2000 529 DateTimeToDate 532 DateTimeToSeconds 533 DateTimeToTime 533 DateTimeValue 369 DateTo2000 485 DateValue 365 Datum-/Uhrzeitfunktionen 355 Datumsbereiche Crystal-Syntax 124 Datumsbereichsfunktionen 399 Day 381 DayOfWeek 383 Days360 238 DB 235 DDB 236 DefaultAttribute 540 DISC 239 DistinctCount 188 Dokumenteigenschaftenfunktionen 468 DollarDE 241 DollarFR 242 DrillDownGroupLevel 467 Druckstatus 453 Crystal-Syntax 125 DTSTo2000 487 DTSToDate 489 DTSToDateTime 531 DTSToSeconds 490 DTSToTimeField 532 DTSToTimeString 491 Duration 243 Effect 244 EvaluateAfter 452 EventNumber 495 ExchGetId 491 ExchGetOrganization 492 ExchGetPath 496 ExchGetSite 493 Exp 166 ExtractString 494 FileAuthor 476 FileCreationDate 476 Filename 475 Filter 343 Finanzfunktionen 214 Fix 160 Floor 159 FRAccRecTurnover 519 FRCashFlowVsTotalDebt 509 FRCurrentRatio 497 FRDebtEquityRatio 501 FRDividendYield 523 Crystal Report Explorer-Anwenderhandbuch 619 Index FREarningsPerCommonShare 518 FREquityVsTotalAssets 502 FRGrossProfitMargin 505 FRInterestCoverage 507 FRInventoryTurnover 521 FRNetProfitMargin 503 FROperatingProfitMargin 506 FRPriceEarningsRatio 522 FRQuickRatio 499 FRReturnOnCommonEquity 516 FRReturnOnEquity 510 FRReturnOnInvestedCapital 515 FRReturnOnNetFixedAssets 512 FRReturnOnTotalAssets 513 FV 245 FVSchedule 247 Gesamtergebnisfunktionen 536 GridRowColumnValue 537 GroupingLevel 478 GroupNumber 464 GroupSelection 465 Gruppenergebnis 169 Crystal-Syntax 124 Gruppenergebnisbedingungen 170 HierarchyLevel 467 Hour 385 IIF 444 InRepeatedGroupHeader 466 InStr 334 InStrRev 335 Int 150 IntRate 248 IPmt 249 IRR 251 IsDate 376 IsDateTime 378 IsNull 458 IsNumeric 313 ISPMT 252 IsTime 375 Join 347 Konstanten 599 Last4WeeksToSun 403 Last7Days 402 LastFullMonth 405 620 Crystal Report Explorer-Anwenderhandbuch LastFullWeek 404 LastYearMTD 416 LastYearYTD 417 LCase 309 Left 339 Len 298 Length 300 Log 167 LooksLike 527 LowerCase 310 LTrim 302 MakeArray 420 Mathematische Funktionen 148 Maximum 182 MDuration 253 Median 194 Mid 338 Minimum 184 Minute 385 MIRR 255 Mode 199 ModificationDate 471 ModificationTime 472 Month 380 MonthName 387 MonthToDate 400 MRound 157 Next 456 Next30Days 413 Next31To60Days 413 Next61To90Days 413 Next91To365Days 413 NextIsNull 460 NextValue 457 nicht berichtspezifische, Crystal-Syntax 123 Nominal 256 Now 524 NPer 256 NPV 258 NthLargest 197 NthMostFrequent 201 NthSmallest 198 NumericText 314 OddFPrice 259 OddFYield 261 Index OddLPrice 263 OddLYield 265 OnFirstRecord 466 OnLastRecord 467 Over90Days 412 PageNofM 463 PercentOfAverage 204 PercentOfCount 210 PercentOfDistinctCount 212 PercentOfMaximum 206 PercentOfMinimum 208 PercentOfSum 202 Pi 166 Picture 525 Pmt 267 PopulationStdDev 176 PopulationVariance 180 PPmt 269 Previous 453 PreviousIsNull 459 PreviousValue 455 Price 271 PriceDisc 272 PriceMat 274 PrintDate 469 PrintTime 470 PrintTimeZone 470 Programmierbefehle 442 ProperCase 311 PthPercentile 196 PV 276 Rate 277 Received 279 RecordNumber 463 RecordSelection 465 Remainder 161 Replace 345 ReplicateString 332 ReportComments 475 ReportTitle 474 RGB 541 Right 340 Rnd 168 Roman 350 Round 151 RoundUp 154 RTrim 305 Second 386 Seitenzahl 461 SelectionLocale 480 Sgn 150 ShiftDateTime 397 Sin 163 SLN 280 Soundex 528 Space 333 Split 348 Sqr 166 StdDev 174 StrCmp 337 StrReverse 312 Sum 171 Switch 445 SYD 281 Tan 164 TBillEq 282 TBillPrice 283 TBillYield 285 Time 361 Timer 389 TimeSerial 374 TimeValue 367 ToNumber 315 TotalPageCount 462 ToText 318 ToWords 329 Trim 302 TrimLeft 304 TrimRight 306 Truncate 155 Typkonvertierungsfunktionen 426 UBound 420 UCase 307 UpperCase 308 URLDecode 354 URLEncode 351 Val 341 Variance 178 VDB 286 Warnfunktionen 481 Crystal Report Explorer-Anwenderhandbuch 621 Index WeekDay 382 WeekdayName 388 WeekToDateFromSun 399 WeightedAverage 193 WhilePrintingRecords 451 WhileReadingRecords 449 XIRR 288 XNPV 290 Year 379 YearFrac 291 YearToDate 401 Yield 292 YieldDisc 294 YieldMat 295 Zeichenfolgefunktionen 297 zum Duplizieren von Gruppenfeldern 534 Zusätzliche Funktionen 484 FV (Funktion) 245 FVSchedule (Funktion) 247 G Gesamtergebnisfunktionen 536 Gleichheitsoperator 555 gleitender Durchschnitt Bereiche 79 Objekte 79 GridRowColumnValue (Funktion) 537 Größe (Formatierungsoption) 87 Größe ändern Bereiche 79 Objekte 79 Größer-als-Operator 558 Größer-oder-gleich-Operator 559 GroupingLevel (Funktion) 478 GroupNumber (Funktion) 464 GroupSelection (Funktion) 465 Gruppen anordnen 36 auswählen, nach Gruppenergebniswerten 50 Ergebnisse bilden 42 Hinzufügen 36 nach Gruppenergebniswerten sortieren 50 Sortieren 48 Gruppenergebnisfunktionen 124, 169 Average 173 622 Crystal Report Explorer-Anwenderhandbuch Bedingungen 170 boolesche 170 Datum 171 Zeit 171 Correlation 190 Count 186 Covariance 192 DistinctCount 188 Maximum 182 Median 194 Minimum 184 Mode 199 NthLargest 197 NthMostFrequent 201 NthSmallest 198 PercentOfAverage 204 PercentOfCount 210 PercentOfDistinctCount 212 PercentOfMaximum 206 PercentOfMinimum 208 PercentOfSum 202 PopulationStdDev 176 PopulationVariance 180 PthPercentile 196 StdDev 174 Sum 171 Variance 178 WeightedAverage 193 Gruppenergebnisse auswählen nach 50 Entfernen 42, 43 Hinzufügen 42 sortieren von Gruppen nach 50 Gruppenfeld-Duplizierungsfunktionen 534 Gruppenfeldfunktionen 534 gruppieren, Daten 36 H HierarchyLevel (Funktion) 467 Hilfe, online 24 Hintergrund, Formatierungsoption 87 Hintergrundfarbe Ändern 95 Formatierungsoption 90 Index Hinzufügen Berechnungen 59 Diagramme 76 Felder 34 Filter 39 Formeln 59 Gruppen 36 Gruppenergebnisse 42 Sortierungen 45 Textobjekte 80 Horizontale Ausrichtung, Formatierungsoption 85 Hour (Funktion) 385 I If-Ausdrücke in Crystal-Syntax 107, 131 IIF (Funktion) 444 Imp (Operator) 579 in Array (Operator) 581 In-Bereich-Operator 566 Indexoperator 562 Informationsressourcen 605, 606 InRepeatedGroupHeader (Funktion) 466 InStr (Funktion) 334 InStrRev (Funktion) 335 Int (Funktion) 150 Integer-Divisionsoperator 551 IntRate (Funktion) 248 In-Währung-Operator 553 In-Zeichenfolge-Operator 564 IPmt (Funktion) 249 IRR (Funktion) 251 is < x 571 is <= x 572 is > x 570 is >= x 572 IsAlertEnabled (Funktion) 481 IsAlertTriggered (Funktion) 482 IsDate (Funktion) 376 IsDateTime (Funktion) 378 IsNull (Funktion) 458 IsNumeric (Funktion) 313 ISPMT (Funktion) 252 IsTime (Funktion) 375 J Join (Funktion) 347 K Kann größer werden (Formatierungsoption) 86 Klammernoperator 587 Kleiner-als-oder-gleich-Operator 558 Kleiner-als-Operator 557 Kommentare Crystal-Syntax 103 Kommentaroperator Basic-Syntax 590 Crystal-Syntax 592 Konstanten 599 Erster Wochentag 397 für das Datum 599 für den Schriftschnitt 601 für die Ausrichtung 603 für die Farbe 602 für die Linienart 603 für die Textinterpretation 602 für die Wochentageinrahmung 600 für erste Jahreswoche 397, 600 für Wochentage 599 mathematische 603 Konstanten für ersten Wochentag 397 Konvertierungsoperatoren 553 in Währung 553 L Last4WeeksToSun (Funktion) 403 Last7Days (Funktion) 402 LastFullMonth (Funktion) 405 LastFullWeek (Funktion) 404 LastYearMTD (Funktion) 416 LastYearYTD (Funktion) 417 LCase (Funktion) 309 Leeren Bereich unterdrücken (Formatierungsoption) 90 Leere-Zeichenfolge-einfügen-Operator 565 Left (Funktion) 339 Len (Funktion) 298 Length (Funktion) 300 like (Operator) 585 Crystal Report Explorer-Anwenderhandbuch 623 Index Linienart, Konstanten 603 Log (Funktion) 167 LooksLike (Funktion) 527 LowerCase (Funktion) 310 LTrim (Funktion) 302 MRound (Funktion) 157 Multiplikationsoperator 549 Musteroperatoren beginnt mit 584 like 585 M N MakeArray 420 mathematische Funktionen 148 Abs 149 Atn 165 Ceiling 158 Cos 163 Exp 166 Fix 160 Floor 159 Int 150 Log 167 MRound 157 Pi 166 Remainder 161 Rnd 168 Round 151 RoundUp 154 Sgn 150 Sin 163 Sqr 166 Tan 164 Truncate 155 Mathematische Konstanten 603 Maximum (Funktion) 182 MDuration (Funktion) 253 Median (Funktion) 194 Mid (Funktion) 338 Minimum (Funktion) 184 Minute (Funktion) 385 MIRR (Funktion) 255 Mit Schatten (Formatierungsoption) 86 Mode (Funktion) 199 ModificationDate (Funktion) 471 ModificationTime (Funktion) 472 Moduloperator 551 Month (Funktion) 380 MonthName (Funktion) 387 MonthToDate (Funktion) 400 Negationsoperator 552 Negative Werte (Formatierungsoption) 87 Next (Funktion) 456 Next30Days (Funktion) 413 Next31To60Days (Funktion) 413 Next61To90Days (Funktion) 413 Next91To365Days (Funktion) 413 NextIsNull (Funktion) 460 NextValue (Funktion) 457 Nominal (Funktion) 256 Not (Operator) 556 Now (Funktion) 524 NPer (Funktion) 256 NPV (Funktion) 258 NthLargest-Funktion 197 NthMostFrequent (Funktion) 201 NthSmallest (Funktion) 198 Nullwerte, Formatierungsoption 87 NumericText (Funktion) 314 Nummer (Registerkarte im Dialogfeld "FormatEditor") 87 624 Crystal Report Explorer-Anwenderhandbuch O Objekte zusammenhalten (Formatierungsoption) 85 Objekte, verschieben und Größe ändern 79 OddFPrice (Funktion) 259 OddFYield (Funktion) 261 OddLPrice (Funktion) 263 OddLYield (Funktion) 265 OnFirstRecord (Funktion) 466 OnLastRecord (Funktion) 467 Online Customer Support 608 Onlinehilfe 24 Operatoren 547 _To 568 _To_ 569 Index Addition 548 And 576 andere 586 Anweisungstrennzeichen 598 arithmetische 548 Crystal-Syntax 128 Array 580 Arrayerstellung 580 beginnt mit 584 boolesche 575 Crystal-Syntax 129 Datum-Uhrzeit-Literal 592 Division 550 Eqv 579 gleich 555 größer als 558 größer oder gleich 559 Imp 579 in Array 581 in Bereich 566 in Währung 553 in Zeichenfolge 564 Index 562 Integer-Division 551 is < x 571 is <= x 572 is > x 570 is >= x 572 Klammern 587 kleiner als 557 kleiner als oder gleich 558 Kommentare 590 Konstanten 599 Kontrollstruktur 586 Konvertierung 553 leere Zeichenfolge einfügen 565 like 585 Modul 551 Multiplikation 549 Negation 552 Not 556 NULL-Felder Crystal-Syntax 130 Or 577 Potenz 553 Prozent 550 Redim 582 Redim Preserve 583 Subtraktion 549 To 567 To_ 568 ungleich 576 upFrom 573 upFrom_ 573 upTo 574 upTo_ 574 Variablenbereiche 596 Basic-Syntax 596 Crystal-Syntax 596 Variablendeklaratoren 593 Basic-Syntax 593 Crystal-Syntax 595 Vergleich 554 Crystal-Syntax 129 Verkettung 560, 561 Xor 578 Zeichenfolge 560 Zuweisung 588 Operatoren für Kontrollstrukturen 586 Option Loop Crystal-Syntax 144 Or (Operator) 577 Over90Days (Funktion) 412 P PageNofM (Funktion) 463 Parameter festlegen 33 PercentOfAverage (Funktion) 204 PercentOfCount (Funktion) 210 PercentOfDistinctCount (Funktion) 212 PercentOfMaximum (Funktion) 206 PercentOfMinimum (Funktion) 208 PercentOfSum (Funktion) 202 Pi (Funktion) 166 Picture (Funktion) 525 Pmt (Funktion) 267 PopulationStdDev 176 PopulationVariance (Funktion) 180 Potenzoperator 553 PPmt (Funktion) 269 Crystal Report Explorer-Anwenderhandbuch 625 Index Previous (Funktion) 453 PreviousIsNull (Funktion) 459 PreviousValue (Funktion) 455 Price (Funktion) 271 PriceDisc (Funktion) 272 PriceMat (Funktion) 274 PrintDate (Funktion) 469 PrintTime (Funktion) 470 PrintTimeZone (Funktion) 470 Programmierbefehlsfunktionen 442 Choose 442 IIF 444 Switch 445 ProperCase (Funktion) 311 Prozent-Operator 550 PthPercentile (Funktion) 196 PV (Funktion) 276 Q Quelle (Registerkarte) verwenden 29 QuickInfo-Text (Formatierungsoption) 86 R Rahmen (Registerkarte im Dialogfeld "FormatEditor") 86 Rahmen vor Seitenwechsel schließen, Formatierungsoption 85 Rahmen, Formatierungsoption 87 Rate (Funktion) 277 Received (Funktion) 279 RecordNumber (Funktion) 463 RecordSelection (Funktion) 465 Redim-Operator 582 Basic-Syntax 582 Crystal-Syntax 582, 583 Redim-Preserve-Operator 583 Basic-Syntax 583 Remainder (Funktion) 161 Replace (Funktion) 345 ReplicateString (Funktion) 332 ReportComments (Funktion) 475 ReportTitle (Funktion) 474 Ressourcen 605, 606 RGB (Funktion) 541 626 Crystal Report Explorer-Anwenderhandbuch Right (Funktion) 340 Rnd (Funktion) 168 Roman (Funktion) 350 Round (Funktion) 151 RoundUp (Funktion) 154 RTrim (Funktion) 305 S Schleifen Sicherheitsmechanismus (Crystal-Syntax) 143 Schriftart (Registerkarte im Dialogfeld „FormatEditor“) 87 Schriftart, Formatierungsoption 87 Schriftschnitt, Konstanten 601 Schulung zu Business Objects-Produkten 608 Second (Funktion) 386 Seitenzahl (Funktion) 461 Seitenzahl zurücksetzen nach, Formatierungsoption 89 SelectionLocale (Funktion) 480 Sgn (Funktion) 150 ShiftDateTime (Funktion) 397 Sin (Funktion) 163 SLN (Funktion) 280 Sortieren anordnen 45 Daten 45 Datensatzgruppen 48 Detailbereich 47 Entfernen 51 Erste/Letzte N 50 nach zusammengefassten Werten 50 Richtung 46 Sortierfeld 45 Sortierungsrichtung 46 Soundex (Funktion) 528 Space (Funktion) 333 speichern, Bericht 53 Split (Funktion) 348 Sqr (Funktion) 166 StdDev (Funktion) 174 Steuerelementstrukturen Crystal-Syntax 131 Steuerschaltflächen 29 Index StrCmp (Funktion) 337 StrReverse (Funktion) 312 Subtraktionsoperator 549 suchen, Felder 38 Sum (Funktionen) 171 Support Kundendienst 608 Standorte 607 technisch 608 Website 608 Switch (Funktion) 445 SYD (Funktion) 281 Symbolleistenoptionen 29, 96 T Tan (Funktion) 164 Tausendertrennzeichen verwenden (Formatierungsoption) 88 TBillEq (Funktion) 282 TBillPrice (Funktion) 283 TBillYield (Funktion) 285 Technischer Support 608 Teradata, SQL-Erweiterungen 543 Textinterpretation, Konstanten 602 Textobjekte Bearbeiten 80, 90 Entfernen 80, 90 Formatieren 80, 91 Hinzufügen 80, 90 Time (Funktion) 361 Timer (Funktion) 389 TimeSerial (Funktion) 374 TimeValue (Funktion) 367 To (Operator) 567 To_ 568 ToNumber (Funktion) 315 TotalPageCount (Funktion) 462 ToText (Funktion) 318 ToWords (Funktion) 329 Trim (Funktion) 302 TrimLeft (Funktion) 304 TrimRight (Funktion) 306 Truncate (Funktion) 155 Typkonvertierungsfunktionen 426 CBool 426 CCur 427 CDate 435 CDateTime 439 CDbl 428 CStr 430 CTime 437 U UBound (Funktion) 420 UCase (Funktion) 307 Ungleich-Operator 576 Unterdrücken (kein Drilldown) (Formatierungsoption) 88 Unterstrichen (Formatierungsoption) 87 upFrom (Operator) 573 upFrom_ (Operator) 573 UpperCase (Funktion) 308 upTo (Operator) 574 upTo_ (Operator) 574 URLDecode (Funktion) 354 URLEncode (Funktion) 351 V Val (Funktion) 341 Variablen Array deklarieren (Crystal-Syntax) 119 automatische Typkonvertierung (CrystalSyntax) 121 Crystal-Syntax 113 freigegeben (Crystal-Syntax) 118 globale (Crystal-Syntax) 117 lokale (Crystal-Syntax) 116 Standardwerte (Crystal-Syntax) 120 Variablenbereiche Basic-Syntax 596 Crystal-Syntax 596 Variablenbereiche (Crystal-Syntax) 116 Variablendeklarationen (Crystal-Syntax) 114 Variablendeklarationsoperatoren Basic-Syntax 593 Crystal-Syntax 595 Variance 178 VDB (Funktion) 286 Verarbeitungsreihenfolge Crystal Report Explorer-Anwenderhandbuch 627 Index Crystal-Syntax 128 Vergleichsoperatoren 554 Crystal-Syntax 129 gleich 555 größer als 558 größer oder gleich 559 kleiner als 557 kleiner als oder gleich 558 Not 556 Verkettungsoperator 560, 561 veröffentlichen, Bericht 53 verschieben Vorlagen Überlegungen 78 übernehmen 77 W Währungssymbol verwenden (Formatierungsoption) 88 Warnungen, Formeln 62 Web aufrufen, Dokumentation über 607 Customer Support (Kundendienst) 608 nützliche Adressen 609 Websites Schulungen 608 Support 608 WeekDay (Funktion) 382 WeekdayName (Funktion) 388 WeekToDateFromSun (Funktion) 399 WeightedAverage (Funktion) 193 WhilePrintingRecords (Funktion) 451 WhileReadingRecords (Funktion) 449 While-Schleifen Crystal-Syntax 141 wiederherstellen, Standardeinstellungen 95 Wochentage, Konstanten 599 Wochentageinrahmung, Konstanten 600 X XIRR (Funktion) 288 XNPV (Funktion) 290 Xor (Operator) 578 628 Crystal Report Explorer-Anwenderhandbuch Y Year (Funktion) 379 YearFrac (Funktion) 291 YearToDate (Funktion) 401 Yield (Funktion) 292 YieldDisc (Funktion) 294 YieldMat (Funktion) 295 Z Zeichenfolgenfunktionen 297 AscW 343 ChrW 342 Filter 343 InStr 334 InStrRev 335 IsNumeric 313 Join 347 LCase 309 Left 339 Len 298 Length 300 LowerCase 310 LTrim 302 Mid 338 NumericText 314 ProperCase 311 Replace 345 ReplicateString 332 Right 340 Roman 350 RTrim 305 Space 333 Split 348 StrCmp 337 StrReverse 312 ToNumber 315 ToText 318 ToWords 329 Trim 302 TrimLeft 304 TrimRight 306 UCase 307 UpperCase 308 URLDecode 354 Index URLEncode 351 Val 341 Zeichenfolgeoperatoren 560 in Zeichenfolge 564 Index 562 leere Zeichenfolge einfügen 565 Verkettung 560, 561 Zeilen, Anzahl festlegen 98 Zusammenhalten, Formatierungsoption 89 Zuweisung Crystal-Syntax 107 Zuweisungsoperator 588 Crystal Report Explorer-Anwenderhandbuch 629 Index 630 Crystal Report Explorer-Anwenderhandbuch