You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Unknown macro: {ui-button}

Die nachfolgend beschriebenen Funktionen können Sie auch anwenden in den "Formeln für Bedingungen" der Regeln.

Über NEU, KOPIEREN oder ÄNDERN wechseln Sie in die Erfassungsmaske für die Filterdefinition. Jeder Filterdefinition kann eine Bezeichnung, die Filterbedingung und eine Information hinterlegt werden. 

Über die Schaltfläche 

gelangen Sie in den bereits bekannten Feldeditor, in dem über Drag & Drop die Felder eingefügt werden können. Als Eingabe wird eine Bedingung mit dem Ergebnis WAHR oder FALSCH bzw. True oder False bzw. Ja oder Nein erwartet. 

Boolean-Variablen (Werte vom Typ "BOOLEAN" sind die logischen Werte WAHR oder FALSCH) können auch ohne Vergleich ausgewertet, sofern es sich um Boolean-Felder handelt, die auch manuell bearbeitet werden können. 

Boolean-Felder, welche nicht manuell bearbeitet werden können, sind mit einer doppelten Verneinung auf Wahr abzufragen, z.B.: 

not(not(Boolean-Feld)) 

Möchten Sie z. B., dass in der Historyliste nur Auslandskunden angezeigt werden, dann tragen Sie die Variable «Ans.Adr.AuslKdKz» ein. Da es sich hierbei um eine Boolean-Variable handelt, benötigen Sie keinen Vergleichsoperator und keinen Vergleichswert. 

Folgende Operatoren können verwendet werden: 

1. mögliche Vergleichsoperatoren 

and: 

(a) and (b) 

bedeutet das a und b Wahr sein müssen 

(«SollBetLW1»=«HabenBetLW1») and («SollBetLW2»=«HabenBetLW2») 

or: 

(a) or (b) 

bedeutet das a oder b Wahr sein müssen 

(«SollBetLW1»=«HabenBetLW1») or («SollBetLW2»=«HabenBetLW2») 

<>: 

(Wert1) <> (Wert2) 

bedeutet wenn Wert1 sich von Wert2 unterscheidet ist das Ergebnis Wahr 

«AdrNr»<>'10000' 

2. Negationsoperator: 

not: 

not a 

bedeutet das a FALSCH sein muss um als Ergebnis Wahr zu erhalten 

not («SollBetLW1»=«HabenBetLW1») 

bedeutet, das SollBetLW1 und HabenBetLW1 sich unterscheiden müssen, um als Ergebnis Wahr zu erhalten 

3. Mengenoperator: 

in: 

(Wert in (Wertemenge)) 

bedeutet wenn Wert in Wertemenge vorliegt ist das Ergebnis Wahr 

«AdrNr» in ('10000','10001') 

Dies ist eine absolute Definition. Es werden nur durch Komma Werte gefunden. Ein Bereich kann nicht mit dem Operator "in" abgefragt werden. 

Wollen Sie einen von - bis Bereich, so können Sie folgende Bedingung definieren: 

Pos('100',«AdrNr»)>0 

Ein mit dieser Formel definierter Filter zeigt alle Adressen an, die '100' enthalten. (Vgl. Sie auch mit der Beschreibung der Funktion Pos() weiter unten in diesem Kapitel). 

4. Stringoperator: 

Left([StringFeld],[Anzahl der Zeichen]) 

Left('TEST',2) 

gibt die ersten 2 Zeichen des übergebenen Stringfelds zurück 

Left(«AdrNr»,3) = '100' 

Folgende Funktionen können in den Filter- bzw den Regelbedingungen genutzt werden: 

CalcUmsatz(x) 

berechnet den Umsatz der letzten bei x angegebenen Monate 

Date 

Mit Date('01.01.80') kann mit einem Datumsfeld verglichen werden. 

Time 

Mit Time('08:00:30') kann mit einen Zeitfeld verglichen werden. 

DateTime 

Mit DateTime('01.01.80 08:00:30') kann mit einen DatumZeitfeld verglichen werden. 

ToString(Wert) 

wandelt in Text um 

ToInt(Wert) 

wandelt in Ganzzahl um 

ToBool(Wert) 

wandelt in Boolean (Ja/Nein) um 

ToFloat(Wert) 

wandelt in Fließkommazahl um 

ToDate(Wert) oder Date(Wert) 

wandelt in Datum um 

ToTime(Wert) oder Time(Wert) 

wandelt in Zeitangabe um 

ToDateTime(Wert) 

wandelt in Datums-/ Zeitangabe um 

Year(Date oder DateTime) 

gibt die Jahreszahl zurück 

Month(Date oder DateTime) 

gibt den Monat zurück 

Day(Date oder DateTime) 

gibt den Tag innerhalb des Monats zurück 

Hour(Time oder DateTime) 

gibt die Stunde zurück 

Minute(Time oder DateTime) 

gibt die Minuten zurück 

Second(Time oder DateTime) 

gibt die Sekunden zurück 

GetDate() 

gibt das aktuelle Systemdatum zurück 

GetAktDate() 

gibt das aktuelle Programmdatum zurück 

Left(Text, Zeichenzahl) 

Kürzt Text auf x Zeichen 

Pos(Text,UnterText) 

Gibt die Position von "Text" in "UnterText" zurück - in diesem Falle 6. Falls der Text nicht vorkommt, wird 0 zurückgegeben. 

DBInfo('Name der Datentabelle', Schlüsselwert[e],'Zielfeldname') 

Findet in der Datentabelle "Name der Datentabelle" den Datensatz mit dem entsprechenden Schlüsselwert und gibt den Inhalt des Feldes "Zielfeldname" zurück. 

Mit Hilfe der DB-Info-Formeln kann ein Wert aus einer Datentabelle unter Verwendung eines Primärindex abgefragt werden. 

Erläuterung zum Aufbau: 

Name der Datentabelle 

Name der Tabelle, aus der ein Wert 

abgefragt werden soll. 

Schlüsselwert[e] 

Kann beliebigen Typs sein. Sollte jedoch zum 1. Feld des Primärindex der abzufragenden Tabelle passen. 

Zielfeldname 

Optionaler Name des Feldes, dessen Wert zurück geliefert werden soll. Falls dieser Parameter ausgelassen wird, wird dieselbe Zeichenfolge zurückgegeben mit der der Datensatz z. B. beim Löschen bezeichnet wird. 

Beispiel: 

DBInfo('Adressen',«Vog.AdrNr»,'SteuNr')<0 

Dadurch wird z.B. in einer Vorgangsliste das Feld Steuernummer der Adresse abgefragt. Ist das Feld Steuernummer leer, dann werden die entsprechenden Vorgänge ausgegeben. 

Um in einer Filterdefinition ein Datumsfeld mit einem exakten Tag zu vergleichen, gehen Sie wie folgt vor: 

LEFT(ToString(ErstDat),10) = '01.01.2003' 

Diese LEFT-Abfrage ist nötig, da dieses Datumsfeld "ErstDat" folgend aufgebaut ist: 

"TT.MM.JJJJ HH:MM:SS" z.B. "01.01.2003 12:56:43" 

Würde nur «ErstDat» = '01.01.2003' eingegeben werden, wird das Programm immer Melden, dass keine Datensätze zur Verfügung stehen. Dies ist korrekt, da dieses Feld mehr als nur das Datum beinhaltet. 

Wenn in einer Filterdefinition ab einem gewissen Datum gefiltert werden soll, gehen Sie wie folgt vor: 

ToDate(LEFT(ToString(ErstDat),10)) >= ToDate('01.07.2003') 

Weitere Beispiele: 

ToDate(LEFT(ToString(«Vog.AendDat» ),10)) >= ToDate('03.11.2003') 

ToDate(LEFT(ToString(DBInfo('Adressen', «Vog.AdrNr» , 'AendDat')),10)) <= GetDate() 

ToDate(LEFT(ToString(DBInfo('Adressen', «Vog.AdrNr» , 'AendDat')),10)) <= ToDate('01.01.2003')

  • No labels