>>>> Beispiel: Formeleingabe als Neueingabe <<<< Eine Formel kann sowohl mittels Tastatur als auch durch Mauscklicks erstellt werden. In diesem Modus werden sind nur Eingaben möglich, die nicht gegen die Formelsyntax verstoßen. Ein kurzes Beispiel soll die Funktion des Editors exemplarisch erläutern. Aufgabenstellung: Es sollen alle Gastdatensätze gesucht werden, bei denen sowohl die Rechnungsnummer als auch das Rechnungsdatum nicht eingetragen sind. Anders formuliert: Nur die Datensätze, bei denen die Rechnungsnummer und auch das Rechnungsdatum eingetragen sind, werden nicht berücksichtigt. Formelaufbau:     Q = ( {Rechn_Nr} # “” ) AND ( {ReDatum} # “” ) Die Formel ist nur dann erfüllt, wenn die Rechnungsnummer vorhanden ist (ungleich leer) und zugleich das Rechnungsdatum vorhanden ist (ungleich leer). Die Formel soll aber nun genau dann erfüllt sein, wenn die obige Formel nicht erfüllt ist. Die Formel muss folglich komplett verneint werden, also Q = NOT ( rechter Formelteil ) Ergebnis:    Q = NOT ( ( {Rechn_Nr} # “” ) AND ( {ReDatum} # “” ) ) liefert das gewünschte Verhalten. Anmerkung: Natürlich kann man die Lösung mittels einer Disjunktion einfacher erreichen. Formeleingabe: Nach der Betätigung des Buttons “Neueingabe” befindet sich der Editor im gesteuerten Eingabemodus. Eine eventuell vorhandene Formel wurde gelöscht. Der Cursor steht hinter dem Ausdruck “Q = ”. Es wird nun aus mathematischer Sicht eine öffnende oder eine verneinte öffnende Klammer erwartet. Dieses ist auch über dem Eingabefeld, “Erwartet: Klammer auf bzw. NOT”, angegeben. Die Tastatur lässt an dieser Stelle nur die Klammer („(„ bzw. 8) oder den Buchstaben N (n) für eine negierte Klammer zu. Durch die aktive Ergänzungsfunktion wird der Buchstabe “N” durch den Ausdruck “NOT ( “ ersetzt. Alternativ kann auch ein Doppelklick auf einen der beiden (einzigen) aktiven Ausdrücke erfolgen. Hinweis: Aktive bzw. wählbare Ausdrücke sind immer blau gekennzeichnet!   Nach der Übernahme der negierten Klammer muss nun entweder eine weitere Klammer bzw. negierte Klammer oder eine Datenbank-Variable folgen. Die Variablen sind nun zusätzlich aktiviert. Eine Auswahl kann wieder mittels der Tastatur („{„ bzw. „7“) oder der Maus getroffen werden. Nach der Variableneingabe muss nun eine eine gültige Relation folgen. In Abhängigkeit vom Variablentyp müssen nicht alle Relationen aktiviert - blau dargestellt - sein. Spezielle Textrelationen wie “IN”, “AA” und “NI” sind nur für Texttypen zulässig. Nach der Relationseingabe folgt nun zwingend die Werteingabe. Ein Wert muss immer zwischen zwei Anführungszeichen (“”) stehen. Der Rest der Formel soll nun nach obigem Verfahren weiter eingegeben werden. Da die Formel syntaktisch gesehen hier zu Ende sein kann (ist), sind zur Weiterführung nur die logischen Verknüpfungen Und bzw. Oder zulässig.  Die eingegebene Formel kann nun dem Button “Formeltest” auf Syntaxfehler geprüft werden. Die Prüfung zeigt, dass kein Syntaxfehler gefunden wurde. Es fällt auf, dass bei dem vorherigen Datumswert “” (Leerdatum) nun das Datum 30.12.1899 steht. Bei der Prüfung der Daten werden auch die Datenarten berücksichtigt und einer typenabhängigen Prüfung unterzogen. Das obige Datum wurde hierbei als Äquivalent für das Nulldatum vom MS- Betriebssystem ausgegeben. Shortcuts: Im geführten Eingabemodus (Button Neueingabe) können zur einfacheren Eingabe für folgende erwartete Eingabezeichen die folgenden Zeichen verwendet werden. Zeichen „(„  => „8“ Zeichen „{„  => „7“ Zeichen „_“  => „-“ Hinweise: 1. Jedes Formelelement wie z. B. Klammern, Variablen, Relationen, Werte, log. Operatoren usw. müssen durch wenigstens ein Leerzeichen getrennt werden. Beispiel: Q  =  (  (  NOT  (   usw. ist richtig;  Q  =  ((  usw. führt zum Fehler. 2. Alle im Programm gültige Kurzeingaben für ein Datum gelten auch hier.
Beispiel: Formelmodifizierung Beispiel: Formelmodifizierung
Jede im Formel-Editor vorhandene gültige oder ungültige Formel kann auf mehrere Arten modifiziert bzw. berichtigt werden. Dieses soll am Beispiel einer Formel, die alle abgeschl. Zahlungen im 3. Quartal 2016 auflisten soll, exemplarisch gezeigt werden. Anmerkung: Die Formel wurde aus einem Textdokument kopiert und in das Editorfenster eingefügt (copy and paste).   Wie zu erkennen ist, wurde das jeweilige Vorgabe-Datum in der Kurzfassung TTMMJJ verwendet. Bei einer anschließenden Übernahme wird diese Form dann immer durch das aktuelle Jahr ergänzt. Die Aktualisierung erfolgt auch während eines durchgeführten Formeltests. Die vorgegebene Formel wurde durch den durchgeführten Formeltest (grüne Farbe) aktualisiert. Das allgemeine Datum “010116” konvertierte zum Datum 01.01.2016. Auffällig ist die Umwandlung des sogenannten Leerdatums ( { K1_ZEing} # “” ) zum konkreten Datum  ( { K1_ZEing} # “30.12.1899” ). Hinweis: Als einzige Besonderheit im Bereich des Formelgenerators gilt, vorgegeben durch das Betriebssystem (Windows) für das Leer- bzw. Nulldatum, dass dieses durch das reelle Datum vom 30.12.1899 repräsentiert wird. Dieses Datum wird im Bedarfsfall automatisch vom Formelgenerator eingesetzt. Im Folgendem soll die Formel zur Anwendung für das Jahr 2015 modifiziert werden, d. h., das aktuelle Jahr 2016 muss geändert werden. Da hierzu lediglich die Ziffern 6 durch 5 ersetzt werden müssen, kann dieses am schnellsten mit der Eingabeoption “Formel frei editieren” realisiert werden. Der Modus “freies editieren” wird durch die braune Farbe gekennzeichnet. Die jeweilige Ersetzung der Ziffer 6 durch die Ziffer 9 kann nun uneingeschränkt durchgeführt werden. Die Ziffern sind getauscht, die Formel ist prinzipiell fertig gestellt. Ein informationshalber durchgeführter Formeltest zeigt hier einen Syntaxfehler „Erwartet: Werteeingabe Datum“ an der Position „01.07.2019“. Wie oben zu erkennen ist, fehlt bei dem Datum das Endzeichen “. Die Korrektur im freien Editiermodus (Button: „frei editieren“) führt dann zur syntaktisch korrekten Formel, wie ein erneut durchgeführter Formeltest es bestätigt, auch erkennbar an der grünen Farbe. Hinweise: 1. Eine Syntax-Fehlerprüfung ist nicht zwingend nötig, da das System bei der Übernahme diese Prüfung immer automatisch vornimmt. 2. Es ist selbstverständlich, dass nur eine Syntax-Fehlerprüfung stattfinden kann. Für die logische Richtigkeit ist immer der Anwender zuständig!
Formeleditor - Formeln Erstellung - Auswahl - Modifizierung  Formeleditor - Formeln Erstellung - Auswahl - Modifizierung - Ferienwohnungen verwalten - - Ferienwohnungen verwalten -
Bei dem Formeleditor handelt es sich um ein mächtiges Werkzeug, mit dessen Hilfe universell einsetzbare logische Suchformeln erstellt und angewendet werden können. Eine generierte gültige Formel kann direkt an die Datenauswahl-Filtermaske übergeben werden. Dort wird sie dann im Ausgabebereich “Zusätzliche Suchformel” angezeigt. Eine Suchformel kann im Formeleditor auch wieder deaktiviert werden. Der Formeleditor überführt eingegebene Formeln in mehrfach verkettete Listen, die ihrerseits rekursiv abgearbeitet werden. Hierdurch sind die auszuwertenden Formeln bezüglich der komplexibilität und Ebenenzahl nicht beschränkt. Die obige Ansicht zeigt den Formel-Editor nach einem Aufruf aus der Filtermaske “Datenauswahl - Filter”.  Je nach Vorgeschichte kann diese Ansicht auch anders ausfallen, z. B. kann sich im Formeleingabe-Fenster bereits eine (bearbeitete) Formel befinden. Es stehen prinzipiell fünf (kombinierbare) Eingabeverfahren zur Verfügung; 1. Button „Neueingabe“: Der Editor wird in den streng geführten Eingabemodus geschaltet. Die Eingabe kann sowohl mit der Maus als auch mit der Tastatur erfolgen. Hier sind dann immer nur die Elemente (Terme) wählbar bzw. eingebbar, die der mathematischen Syntax an der aktuellen entsprechen. Tastatureingaben werden in diesem Modus automatisch ergänzt. Eine eventuell bereits vorhandene Formel wird gelöscht. 2. Button „Formel ändern“: Eine streng geführte Eingabe erfolgt ab der aktuellen Cursorposition, sofern sich bis zu dieser Position kein Syntax-Fehler befindet. Ansonsten wird die Fehlerposition angezeigt. 3. Button „Frei editieren“: In diesem Modus wird jede Eingabe akzeptiert. Während der Eingabe erfolgt keine Syntaxprüfung. Auch die automatische Ergänzung ist deaktiviert. 4. Scrollbox „Vorgegebene Suchformeln“: In der Auswahlbox können aus einem Formel-Pool eine bereits definierte Formel ausgewählt werden. Diese Formeln können, wie jede Formel im Formelfenster, modifiziert bzw. auf gewünschte spezielle Anwendungsfälle zugeschnitten werden. 5. Copy and paste: Im Modus „Frei editieren“ können Formeln und Teilausdrücke mittels copy and paste - z. B. aus Textdokumenten, E-Mails usw. - eingefügt werden. Button “Formeltest”: Jede eingegebene bzw. modifizierte Formel kann hier einer mathematischen Syntaxprüfung unterzogen werden. Diese Überprüfung bezieht sich auch auf die Wertvorgaben, d. h., wenn z. B. ein Datum verglichen werden soll, muss auch ein Datum eingegeben worden sein. Die allg. Datum-Kurzeigaben (siehe Datumeingabe) sind auch hier zulässig. Ein leeres Datum-Wertefeld (““) erzeugt das Nulldatum. Im Fehlerfall werden die Fehlerposition und die Fehlerart angezeigt. Button “Hilfe”:  Der Hilfstext gibt Auskunft über die Syntax des Formeleditors. Informationen bezüglich der Variablen sind hier ebenfalls zu finden (siehe unten).     Button “Formel nicht übernehmen”: Der Formel-Editor wird geschlossen und eine eventuell vorhandene Formel in der Suchmaske “Datenauswahl - Filter” wird gelöscht. Sollte sich im Formel-Eingabefenster eine gültige oder auch fehlerhafte Formel befinden, bleibt diese hier für spätere Bearbeitung erhalten. Achtung: Der Button “Formel nicht übernehmen” beinhaltet die einzige Möglichkeit, den Formel-Editor mit einer fehlerhaften Formel zu verlassen. Button “Formel übernehmen”:  Unabhängig von der Vorgeschichte erfolgt vor der Formel-Übernahme ein Syntax-Fehlerprüfung. Ist die Formel gültig, wird diese übernommen und der Formel-Editor geschlossen. Textsuchart: Für den Formel-Suchmodus stehen für Textvariablen zusätzlich die folgenden Optionen (siehe auch Sortierung) zur Verfügung: Leerzeichen nicht beachten  (Default ein), Groß- und Kleinschrift nicht beachten   (Default ein) Zeichen:  „-“  und  „_“ nicht beachten  (Default aus)
Formeleditor - Grundfunktionen Formeleditor - Grundfunktionen
Beispiel: Eingabe einer neuen Formel Beispiel: Eingabe einer neuen Formel
Hilfe - Variablenzuordnungen - Variablentypen Hilfe - Variablenzuordnungen - Variablentypen
Variableninformationen: Im Fenster „Suchformel: Verwendbare Variablen“ sind die Variablennamen, die zugehörigen Variablentypen und deren Bedeutungen aufgelistet. Dieses Fenster ist mit dem Button „Variablen - Info“ aus dem Formeleditor (s. o.) oder mit dem Button “Variablen“ in der „Formeleditor - Hilfe“ erreichbar. > Variablentypen - Eingabeformen < Alle Variablenwerte, auch leere,  müssen zwischen zwei Anführungszeichen stehen. Der Formeleditor lässt auch keine andere Eingabe zu. Eingabebeispiele: Text: “Dieses ist eine Texteingabe“, “Meier“, ““  usw. Datum: Es gelten auch hier die Kurzeingeben, siehe Abschnitt “Eingaben - Kurzeingaben - …“. Beispiele: “00“ -> Tagesdatum, “010219“ -> 01.02.2019 usw. Normalform wie “01.02.2019“ sind auch zulässig. Zahl: Alle gültigen Zahlen. Punkte sind nicht erlaubt. Beispiel: “123,45“ Boolesch: Dieser Typ erwartet Wahrheitswerte wie wahr oder falsch. Als Synonyme können die folgenden Angaben verwendet werden, für wahr: “w“,   “wahr“,    “true“,    “t“,   “1“, für falsch: “f“,   “falsch“,   “false“,   “f“,   “0“. ___________________________________________ >>>> Beispiel: Formeleingabe durch Formelvorgaben  <<<< In der Scrollbox im Abschnitt “Suchvorg.:” sind einige vordefinierte Formeln zur Verwendung abgelegt. Die oben ausgewählte Formel sucht alle Datensätze, bei denen bezüglich des Kurbeitrags keine Personenanzahl angegeben wurde ODER kein Kurbeitrag im System vermerkt ist. Es werden folglich hier auch die Datensätze ausgegeben, bei denen alle Bewohner von den Kurbeiträgen befreit sind. Hinweis: Alle Formeln, auch die vorgegebenen, können modifiziert werden.
Der Formelpool „vorgegebene Suchformeln“ enthält vordefinierte Formeln, die ihrerseits jederzeit im Formelfenster verändert bzw. angepasst werden können. Die hier vorhandenen Formeln sind intern in die folgenden zwei Formeltypen einzuteilen: 1. Formeln ohne Parameter, 2. Formeln mit Parameter. Der Unterschied besteht lediglich darin, dass beim Typ 2 nach der Formelauswahl zusätzlich noch spezielle Angaben wie Datum usw. abgefragt werden. Beispiel: Formeln ohne Parameter Im obigen Beispiel wurde die Formel „keine offenen Forderungen“ gewählt, die in dieser Form (ohne weitere einschränkenden Suchbedingungen in der übergeordneten Suchfiltermaske) alle abgeschlossenen Zahlungen über den gesamten Zeitraum aller gespeicherten Gastdaten auflistet. Q = ( ( ( {K1_ZEing}  > "01.01.1900" ) ) OR ( {K1_Zahlung} = "0" ) ) AND     ( ( {K2_ZEing}  > "01.01.1900" ) ) OR ( {K2_Zahlung} = "0" ) ) AND    ( ( {Rest_Eing} > "01.01.1900" ) ) OR ( {Restbetrag} = "0" ) ) )  Sollte eine derartige Suche auf die An- Abreisezeiten innerhalb eines bestimmten Geschäfts- jahrs beschränkt sein, so können diese einschränkenden Bedingungen in der Suchfiltermaske (Abschnitt „An- und Abreisezeitraum“) vorgegeben werden. Dieses Vorgehen gilt auch für einzelne Ferienwohnungen. Beispiel: Formeln mit Parameter: Wie z. B. die Anwendungsformel „Abgeschlossene Zahlungen im Monat ….“ zeigt, unter scheiden sich diese Gruppe von Formeln im einzelnen lediglich durch die Vorgaben der speziell gewünschten Werte. Derartige Formeln können durch die Verwendung von variablen Parametern auf eine spezielle Formel zurückgeführt werden. Als exemplarisches Beispiel soll hier die Formel zur Suchen für alle abgeschlossenen Zahlungen im Monat März des aktuellen Jahres (2019) gesucht werden. In dem Pool „Vorgegebene Suchformeln“ sind Formeln mit Parameter durch „(…)“ bzw. einfach nur durch „…“ erkennbar. Die Auswahl öffnet das Fenster zur Formelergänzung, wo die gewünschten Werte (Parameter) eingetragen werden können. Die Bestätigung führt dann zur Generierung der nachstehenden gewünschten Formel. Zur technischen Information ist nachfolgend die allgemeine Formel mit ihren Parametern dargestellt. Q  = ( ( {K1_ZEing} >= "Dat1" ) OR  ( {K2_ZEing} >= "Dat1" ) OR  ( {Rest_Eing} >= "Dat1" ) ) AND     ( ( {K1_ZEing} <= "Dat2" ) AND ( {K2_ZEing} <= "Dat2" ) AND ( {Rest_Eing} <= "Dat2" ) ) AND     ( ( {K1_ZEing}  # "" ) OR ( {K1_Zahlung} = "0" ) ) AND     ( ( {K2_ZEing}  # "" ) OR ( {K2_Zahlung} = "0" ) ) AND ( ( {Rest_Eing} # "" ) OR ( {Restbetrag} = "0" ) )   Die Parameter Dat1 (Anfangsdatum) und Dat2 (Enddatum) werden durch die berechneten Daten ersetzt. Monatstage und Schaltjahre werden berücksichtigt.
Formelübernahme aus dem Formelpool Formelübernahme aus dem Formelpool
Als exemplarisches Beispiel soll hier Entwicklung der bereits bekannten Formel aus dem Formelpool  „keine offenen Forderungen“ gewählt werden, die alle abgeschlossenen Zahlungen über den gesamten Zeitraum aller gespeicherten Gastdaten auflistet. Der logische Suchansatz kann auch umformuliert lauten: „alle Teilforderungen sind bezahlt“ Wie die Zahlungsübersich des Gastes Donald Duck zeigt, sind maximal die drei Zahlungsbe- reiche - Zahlung A (Q T1 ), Zahlung B (Q T2 ) und die Restzahlung (Q T3 ) - vorgegeben. Für die Gesamtforderung Q müssen folglich alle drei Zahlungabschnitte Q T1,  Q T2,  Q T3 erfüllt sein.   Hierzu eignet sich die Und-Verknüpfung (AND), die nur dann wahr ist, wenn alle Teilabschnitte (Teilaussagen) wahr sind. Q  =   Q T1   AND   Q T2    AND   Q T3 Nun gilt eine Forderung als beglichen, wenn ein Zahlungsdatum eingetragen ist, also wenn ein Zahlungseingangsdatum größer ist als z. B. das Datum 01.01.1900. Q 1a  =  {K1_ZEing}  > "01.01.1900" Es ist allerdings zu berücksichtigen, dass, wenn keine Zahlung erwartet wird, also die Zahlungs- forderung = 0 € beträgt, auch niemals ein Zahlungeingangsdatum erscheinen wird. Q 1b  = {K1_Zahlung} = "0" Es folgt also der Schluss: Eine Teilforderungen Q Tn  gilt als erfüllt (bezahlt), wenn entweder ein Zahlungseingangsdatum (Q na ) vorliegt oder keine Zahlungsforderung (Q nb ) besteht. Hierzu eignet sich die ODER-Verknüpfung (OR), die bereits dann wahr ist, wenn wenigstens ein Teilabschnitt (Teilaussage) wahr ist. Es können auch alle sein.   Q Tn  = Q na  OR Q nb  Für die erste Teilforderungen gilt folglich:    Q T1  = ( ( {K1_ZEing}  > "01.01.1900" ) OR ( {K1_Zahlung} = "0" ) ) Und in Analogie folgt: Q T2  =  ( {K2_ZEing}  > "01.01.1900" ) OR ( {K2_Zahlung} = "0" ) Q T3  =  ( {Rest_Eing} > "01.01.1900" ) OR ( {Restbetrag} = "0" ) Und hiermit gilt als Ergebnis für Q = alle Teilforderungen sind bezahlt: Q = ( ( {K1_ZEing}  > "01.01.1900" ) ) OR ( {K1_Zahlung} = "0" ) ) AND     ( ( {K2_ZEing}  > "01.01.1900" ) ) OR ( {K2_Zahlung} = "0" ) ) AND ( ( {Rest_Eing} > "01.01.1900" ) ) OR ( {Restbetrag} = "0" ) )   Anmerkung: Sollte eine derartige auf ein bestimmtest Geschäftsjahr hinsichtlich der An- Abreisezeiten innerhalb eines bestimmten Geschäftsjahrs beschränkt werden, so können diese einschränkenden Bedingungen z. B. in der Suchfiltermaske (Abschnitt „An- und Abreisezeitraum“) vorgegeben werden. Dieses Vorgehen gilt auch für die isolierte Betrachtung einzelner Ferienwohnungen. Weiteres Beispiel unter Verwendung der obigen Formel:  Die Frage nach Formel für die Suchbedingung „alle noch offenen Forderungen“ lässt sich nun einfach durch die Verneinung (Negation) erstellen. Folglich gilt:  „Alle noch offenen Foderungen“ ist gleichbedeutend mit = Nicht „alle Teilforderungen sind bezahlt“. Mit  dem Formelbuchstaben F für „Alle noch offenen Foderungen“ und Q T  für „alle Teilforderungen sind bezahlt“ ergibt sich: F  =   NOT Q T Für die neue Formel ergibt sich als Ergebnis (F wurde für den Editor in Q umbenannt): Q = NOT (  ( ( {K1_ZEing}  > "01.01.1900" ) ) OR ( {K1_Zahlung} = "0" ) ) AND            ( ( {K2_ZEing}  > "01.01.1900" ) ) OR ( {K2_Zahlung} = "0" ) ) AND               ( ( {Rest_Eing} > "01.01.1900" ) ) OR ( {Restbetrag} = "0" ) )      ) Achtung: Beachten Sie, dass der gesamte gesamte Ausdruck verneint werden muss. Es sind hier folglich die den zu negierenden Ausdruck zusammenfassenden Klammern zu setzen! Komplexes Beispiel: abgeschlossene Zahlungen: Aufgabenstellung: Oft ist es notwendig zu wissen, welche abschließenden (letzten) Zahlungen in einem bestimmten Monat erfolgten. Hinweis: Für diese Aufgabenstellung kann die vorgegebene Suchformel „Abgeschlossene Zahlungen im Monat ….“ verwendet werden. Konkretisierung: Es sollen alle Zahlungen, deren abschließende Zahlung (also deren letzte Zahlung) im Monat Mai des Jahres 2018 erfolgten, gesucht werden. Als Lösungsansatz können hier die folgenden Bedingungen formuliert werden. 1. Es muss wenigstens eine (der drei) Zahlung im Monat Mai im Jahre 2018 erfolgt sein. 2. Es darf keine Zahlung nach dem 31. Mai 2018 erfolgt sein. 3. Alle vorgesehenen Zahlungen müssen erfolgt sein. Aus Bedingung 1 folgt:  Q a  = ( {K1_ZEing} >= "01052018" ) OR  ( {K2_ZEing} >= "01052018" ) OR  ( {Rest_Eing} >= "01052018" ) Wenigsten eine muss erfüllt sein => ODER-Verknüpfung Aus Bedingung 2 folgt:  Q b  = ( {K1_ZEing} <= "31052018" ) AND ( {K2_ZEing} <= "31052018" ) AND ( {Rest_Eing} <= "31052018" ) Alle müssen erfüllt sein => UND-Verknüpfung Aus Bedingung 3 folgt:   Q c  = ( ( {K1_ZEing}  # "" ) OR ( {K1_Zahlung} = "0" ) ) AND     ( ( {K2_ZEing}  # "" ) OR ( {K2_Zahlung} = "0" ) ) AND     ( ( {Rest_Eing} # "" ) OR ( {Restbetrag} = "0" ) ) Entweder es erfolgte eine Zahlung (Datum # „“ ) oder es lag keine Forderung vor ( Zahlung = 0). Alle drei Teilzahlungen (Zeilen) müssen erfüllt sein  => UND-Verknüpfung. Für die Suchformel gilt nun: Q  =   Q a   AND   Q b    AND   Q c und somit als Ergebnis:  Q = ( ( {K1_ZEing} >= "01052018" ) OR  ( {K2_ZEing} >= "01052018" ) OR  ( {Rest_Eing} >= "01052018" ) ) AND      ( ( {K1_ZEing} <= "31052018" ) AND ( {K2_ZEing} <= "31052018" ) AND ( {Rest_Eing} <= "31052018" ) ) AND      ( ( {K1_ZEing}  # "" ) OR ( {K1_Zahlung} = "0" ) ) AND      ( ( {K2_ZEing}  # "" ) OR ( {K2_Zahlung} = "0" ) ) AND      ( ( {Rest_Eing} # "" ) OR ( {Restbetrag} = "0" ) )   Beachten Sie auch hier die notwendigen Klammern, um jeweils den Gesamtausdruck von Q a  und Q b  zu erhalten. Q =  ( Q a  ) AND  ( Q b  )  AND   Q c   Da bei Q c  die Teilausdrücke alle durch UND-Verknüpfungen verbunden sind, ist hier hier eine Gesamtklammer nicht notwendig (Assoziativgesetz). Aus Übersichtsgründen könnte hier eine Gesamtklammer - obwohl diese nicht notwendig ist - setzen. Der äquivalente Ausdruck (Äquivalenzumformung) würde dann folgendermaßen aussehen: Q = ( ( {K1_ZEing} >= "01052018" ) OR  ( {K2_ZEing} >= "01052018" ) OR  ( {Rest_Eing} >= "01052018" ) ) AND     ( ( {K1_ZEing} <= "31052018" ) AND ( {K2_ZEing} <= "31052018" ) AND ( {Rest_Eing} <= "31052018" ) ) AND      ( ( ( {K1_ZEing}  # "" ) OR ( {K1_Zahlung} = "0" ) ) AND        ( ( {K2_ZEing}  # "" ) OR ( {K2_Zahlung} = "0" ) ) AND        ( ( {Rest_Eing} # "" ) OR ( {Restbetrag} = "0" ) ) )
Beispiel: Ansatz und Formelerstellung  Beispiel: Ansatz und Formelerstellung
- auch ein kleiner Exkurs in die Logik - - auch ein kleiner Exkurs in die Logik - Verwendete Variablen: Variablennamen, -typen und -bedeutungen  Verwendete Variablen: Variablennamen, -typen und -bedeutungen - Abrufbare Formelsammlung -  - Abrufbare Formelsammlung - Anpassung einer bereits vorhandenen Formel Anpassung einer bereits vorhandenen Formel