<< Inhaltsverzeichnis Suchen >>

Vergleichsoperatoren

Vergleichsoperatoren werden dazu benutzt, zwei Werte miteinander zu vergleichen. Verglichen werden können dabei nur Ausdrücke vom gleichen Typ, also entweder numerische Ausdrücke oder alphanumerische.

Operator

Bedeutung

=
<>
>
>=
<
<=

gleich
ungleich
größer
größer gleich
kleiner
kleiner gleich

 

Alphanumerische Variable werden zeichenweise von links nach rechts verglichen bis die Zeichen ungleich sind oder das Zeichenketten- Ende gefunden wird.

Folgende Vergleichsausdrücke sind wahr:

„AAA“ <  „AAB“

Beim 3. Zeichen wird „A“ < „B“ gefunden.

“AAA“ <  „AAAA“

Beim 4. Zeichen wird „“ < „A“ gefunden.

“AAA“ <  „AAA 

Beim 4. Zeichen wird „“ < „  „ gefunden.

   „ <  „A“

Beim 1. Zeichen wird „   „ < „A“ gefunden.

““ <  „ „

Beim 1. Zeichen wird „“ < „ „ gefunden.

“Z“ <  „a“

Die Großbuchstaben sind in der Sortierreihenfolge des ASCII-Codes vor den Kleinbuchstaben.

 

Werden mit diesen Operatoren Zeichenketten verglichen, so wird beim Vergleichen der ASCII-Code zugrunde gelegt. In den EBUS-Indexdateien werden die Daten in einer anderen Reihenfolge, in der die deutschen Umlaute richtig einsortiert sind, gespeichert. Die Verwendung der obigen Operatoren kann zu Problemen führen, wenn z.B. ein Report sortiert nach Namen ausgedruckt werden soll und in einem Macro des Reports ein Grenzwert mit dem aktuellen Namen verglichen werden soll.



Beispiel:

 

Ein Report soll alle Kunden mit den Anfangsbuchstaben A bis F ausdrucken. Dazu wird im Datenblock des Reports ein Macro definiert, der folgende Abfrage enthält.

IF KUNDEN.NAME> > „F“ THEN ENDREP ENDIF

Der Druck erfolgt sortiert nach Name und liefert zuerst alle Kunden, deren Name mit A beginnt. Ist danach ein Kunde vorhanden, der mit Ä beginnt, so führt die obige IF-Anweisung zur Beendigung des Reports, da der ASCII-Wert von Ä (=142) größer als der ASCII-Wert von F(=70) ist. Deshalb stehen für alphanumerische Vergleiche die folgenden weiteren Vergleichsoperatoren zur Verfügung, denen die Sortierung mit den Umlauten zugrunde liegt:

‘<’ , ‘>’ , ‘=’ , ‘<>’ , ‘<=’ , ‘>=’

Mit folgender IF-Anweisung arbeitet der Report dann korrekt.

IF KUNDEN.NAME> ‘>’ „F“ THEN ENDREP ENDIF