Register Bedingte Eigenschaften
Für Objekte, wie Buttons, Eingabefelder, Kontrollkästchen, ect. und Tabellen können diverse Eigenschaften über Formeln gesteuert werden. Es ist z.B. möglich, Buttons oder Eingabefelder auszublenden, mit anderen Farben oder Schriftgrößen, usw. zu belegen, wenn ein anderes Feld einen bestimmten Eintrag hat. Es können mehrere Bedingungen eingetragen werden. Es werden immer alle Zeilen ausgewertet. Bedingungen, die weiter unten stehen, haben eine jeweils höhere Prioriät.
In der Spalte Formel sind einfache logische Ausdrücke erlaubt. Der Zugriff ist auf alle Felder aller Datenquellen möglich. Als Feldnamen sind auch die kompletten Angaben möglich. Beispiel: Adressdaten.AdresseSource.AdrNr.
Stringliterale müssen mit einfachen Anführungszeichen eingeschlossen werden. Beispiel: 'Ich bin ein Stringliteral'. Für Tabellenspalten können ausschließlich Farbcodierungen bestimmt werden. Die eingestellten Eigenschaften werden beim Kopieren von Designgruppen mit berücksichtigt.
In bedingten Eigenschaften kann außerdem auch auf eine Checkbox zugegriffen werden (z.B. in der Adresssuche: "MitAnsprechpartner=false", hier heisst die Checkbox "MitAnsprechpartner").
Wird die Checkbox verändert, so wird die Eigenschaft neu ausgewertet. So kann man sich z.B. ein für die Ansprechpartnersuche erweitertes Such-Sql-Feld einblenden lassen, wenn mit Ansprechpartnern gesucht wird.

In dem nachfolgenden Beispiel soll in der Rechnung im Feld Kurzbezeichnung der Eintrag in roter (Wert 255) Schrift in der Größe 11 erscheinen, wenn die Belegart "Service" lautet und der Nettoverkaufspreis des gesamten Beleges gleich oder kleiner 10.00 ist.

Die nächten drei Beispiele zeigen jeweils einen Ausschnitt aus dem Rechnungsbeleg.
a) Es trifft nur die Bedingung (NettoVk <= 10.00) zu, deshalb bleibt es im Feld Kurzbeschreibung bei der Standardschriftgröße und -farbe.

b) Es trifft nur die Bedingung "Belegart = Service" (BelegartId=123000006) zu, deshalb bleibt es im Feld Kurzbeschreibung bei der Standardschriftgröße und -farbe.

c) Es treffen die Bedingungungen "Belegart = Service" (BelegartId=123000006) und (NettoVk <= 10.00) zu, deshalb werden die Schriftgröße und Schriftfarbe entsprechend der Einstellungen gewechselt.

Abbruch einer Auswertung, wenn eine Bedingung erfüllt ist
In der Spalte Auswertung abbrechen, können Sie mit dem Setzen eines Häkchens bestimmen, dass eine Auswertung abgebrochen werden soll, wenn eine bestimmte Bedingung erfüllt ist.
Beispiel: Es soll eine Feldprüfung auf einen nummerischen Wert durchgeführt werden. Wenn das Feld jedoch ein Zeichen enthält, würde dies zu einer Fehlermeldung mit ggf. einer Endlosschleife führen. Um diesem entgegenzuwirken, könnte die Bedingung ISNUMERIC(FELDBEZEICHNUNG)=false lauten.
ImageIndex
Das Feld ImageIndex kann in Zusammenhang mit einem eigenen _Tiefstrichfeld bei einigen Komponenten (z.B. bei SpeedButtons oder TTabSheets) eine Grafik anzeigen. Bei Memofeldern kann damit die Anzeige, ob ein Memofeld leer ist oder sich Text in diesem befindet, per Grafik gesteuert werden.
Beispiel: In den Adress-Stammdaten soll in einem eigenen neuen Register ein eigenes Memofeld eingefügt werden, wobei auf der Registerkarte angezeigt werden soll, ob sich in dem Memofeld Eintragungen befinden. Kein Eintrag = leeres Blatt, Eintrag = Blatt mit A. (Zu beachten ist, das auch Leerzeichen als Eintrag gewertet werden)
Vorgehensweise:
1. Legen Sie zuerst ein _Tiefstrichfeld (z.B. _ZurInfo), welches später das Image steuert und ein neues _Memofeld (_MeinMemofeld) in der Tabelle ADRESS.ADT an.
2. Rufen Sie die Adress-Stammdaten und dann den Designer auf
3. Fügen Sie ein neues Register ein (Designermenü Standards/neues Register). Geben Sie für das Register eine Beschriftung ein (z.B. MeinMemoRegister).

4. Klicken Sie auf das TTABSHEET und wählen Sie das Kontextmenü Objekt-Eigenschaften.

5. Fügen Sie in das TTABSHEET ein Memofeld (Menü Datenbankfelder/neues Memofeld) ein und bestimmen Sie für dieses Feld unter dem Kontextmenü Objekteigenschaften den Feldnamen (_MeinMemofeld) aus der Datenquelle Adressdaten.AdresseSource.
Rufen Sie dort das Register Bedingte Eigenschaften auf. In die erste Zeile der Spalte Formel geben Sie das eigene _Tiefstrichfeld mit Formel, z.B. _ZurInfo='' an und in die Spalte ImageIndex tragen Sie die Zahl 243 ein. Bedeutet: Wenn das Memofeld leer ist, zeige ein leeres Blatt im Registerkopf an. In die zweite Zeile der Spalte Formel geben Sie erneut das eigene _Tiefstrichfeld mit Formel, z.B. _ZurInfo<>'' an und in die Spalte ImageIndex tragen Sie die Zahl 242 ein. Das bedeutet: Wenn das Memofeld einen Eintrag hat, zeige im Registerkopf ein Blatt mit dem Buchstaben A an.

Nachfolgend sehen Sie das Ergebnis:


Folgende Ausdrücke sind dort erlaubt:
Großschreibung beachten!
Symbole:
TRUE, FALSE, GETDATE
Datums-Funktionen:
INCMONTH, INCYEAR, INCWEEK, INCDAY (date, [n=1])
STARTOFTHEYEAR, STARTOFTHEWEEK, STARTOFTHEMONTH, DATETOSTR, DATEPART, TIMEPART, YEAR, MONTH, DAY, HOUR, MINUTE, SECOND ([date])
String-Funktionen:
SQL, QUOTEDSTR, CHR, UPPER, LOWER, TRIM, TRIMLEFT, TRIMRIGHT, STRTOFLOAT, STRTOINT, STRTODATE, LENGTH (str)
SUBSTR, SUBSTRING, COPY (str, from, len)
REPLACESTR (str, oldPattern, newPattern, IgnoreCase, ReplaceAll)
PADL, PADR (str, len [, ch=' ']),
POS (substr, str)
DATETIMEFROMSTRING (str, mask, datesep, timesep)
ORD (ch)
Numerische Funktionen:
INTTOSTR, FLOATTOSTR, FRAC, INT, ROUND, ABS, EXP, LN, LOG, SQR, SQRT (n)
MAX, MIN, SUM, AVG, COUNT (...)
DIV, MOD, POWER, PERCENT (n, m)
RANDOM ([n])
Logische Funktionen:
IIF (expr, val1, val2)
ISNULL, ISNUMERIC, ISALPHA (val)
ISCONTAIN, ISSTARTSWITH, ISENDWITH (substr, str)
Operatoren:
+, -, *, /, ^, !, =, <, >, <=, >=, <>, !=, &, |
Des weiteren sind Feldnamen der "aktuellen" Datenquelle erlaubt (z.B. Name1, wenn man im Adressformular ist), Komponentennamen des aktuellen Formulars (teilweise mit Property-Bezeichnern) (DBGrid1.MeineSpalte, edAdrNr, MeineCombobox, MeinButton.Caption...) und beliebige Vollqualifizierte Datenquellennamen (z.B. Adressdaten.AdresseSource.Name1)
info@visigate.de - visigate© Software GmbH - Bremen - www.visigate.de