Zusatzfelder
Die Liste der vorhandenen Felder in Vertec wird durch das Modell vorgegeben und kann nicht geändert werden. Da es jedoch vorkommt, dass Sie auf Daten noch zusätzliche Informationen ablegen wollen (z.B. Auftragswahrscheinlichkeit auf Projekt), gibt es Zusatzfelder.
Zusatzfelder definieren
Zusatzfelder werden im Ordner Einstellungen - Zusatzfelder verwaltet. Jedes Zusatzfeld basiert auf einer Zusatzfeldklasse. Wenn Sie ein neues Zusatzfeld erzeugen müssen, klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie Neu - Zusatzfeldklasse.
| Name | Über diesen Namen kann auf das Zusatzfeld zugegriffen werden. Siehe dazu den Abschnitt Zugriff auf Zusatzfelder weiter unten in diesem Artikel. |
| Bezeichnung | Geben Sie hier an, unter welcher Bezeichnung das Zusatzfeld auf der Oberfläche erscheinen soll. Wenn Sie hier nichts angeben, wird auf der Oberfläche der Name angezeigt. |
| Feld-Typ |
Zusatzfelder können typisierte Werte mit entsprechenden Auswahlmöglichkeiten und Einga-bekontrollen enthalten. Folgende Werte-Typen sind für Zusatzfelder verfügbar:
|
| Auswahltyp, Expression |
Neben dem Feldtyp kann noch ein Auswahltyp und eine optionale Expression angegeben werden. Die Bedeutung von Expression hängt vom gewählten Feldtyp und Auswahltyp ab. Verfügbare Auswahltypen sind:
|
| Anordnung | Hier können Sie angeben, in welcher Reihenfolge die Zusatzfelder auf der Oberfläche erscheinen sollen. |
| Klassen | Gibt an, wo und für welchen Datentyp das Zusatzfeld erscheinen soll. Wählen Sie den entsprechenden Typen aus dem Dialog aus, indem Sie auf die drei Punkte klicken. |
| Sichtbarkeit | Zusatzfelder, welche intern für Berechnungen verwendet werden, können auf der Oberfläche ausgeblendet werden. |
| Bedingung | Die Sichtbarkeit kann durch eine OCL Expression gesteuert werden. Das Resultat dieser OCL Expression muss ein Wahr/Falsch-Wert (Boolean) sein. Ist das Resultat wahr, wird das Zusatzfeld angezeigt. |
Zusatzfelder ansehen
Die Zusatzfeld erscheinen in der Einzelansicht der entsprechenden Einträge unter dem Reiter Weitere Info:
Zugriff auf Zusatzfelder
Sie können diese Zusatzfelder auch in Listen anzeigen, in Word-Berichten verwenden oder in einem Expression-Ordner danach filtern, indem Sie via OCL darauf zugreifen. Auch die Abfrage via SQL-Ordner ist möglich.
SQL
Über SQL kann auf die verschiedenen Zusatzfelder folgendermassen zugegriffen werden:
|
Zusatzfeld-typ | Ausdruck SQL (Datenbankfeld) | Where-Ausdruck |
|---|---|---|
|
Zeichen |
Wert | Wert like "Aha%" |
|
Wahr, Falsch |
WertBoolean |
WertBoolean<>0 (für wahr) |
|
Ganzzahl |
WertInteger | WertInteger >= 1000 |
|
Minuten |
WertInteger | WertInteger >= 1000 |
|
Festkommazahl |
WertCurrency | WertCurrency = 1350 |
|
Datum |
WertDatum | WertDatum = "15.03.2012" |
|
Text |
WertBlob (nur Firebird) |
WertBlob containing 'Newsletter' |
|
Bild |
WertBlob (nur Firebird) |
WertBlob <> "" (für: es ist ein Bild zugeordnet) |
|
Objekt |
WertObject |
WertObject in (SELECT bold_id from Tabelle where wert like "%AHA%") |
|
Auswahl |
WertInteger |
WertInteger=0 |
Detaillierte Beschreibung und Beispiele finden Sie im Artikel SQL-Expressions für SQL-Ordner.
OCL
Über OCL kann auf die verschiedenen Zusatzfelder folgendermassen zugegriffen werden:
- zusatzfeldAsString(name): liefert den Wert eines Zusatzfeldes unabhängig von dessen Typ als Stringwert.
-
Abhängig vom Typ wird das Feld folgendermassen abgefragt:
Zusatzfeld-typ
Operator
Zeichen
zusatzfeld
Wahr, Falsch
zusatzfeldbool
Ganzzahl
zusatzfeldint
Minuten
zusatzfeldint
Festkommazahl
zusatzfeldcurr
Datum
zusatzfelddate
Text
zusatzfeldblob
Bild
zusatzfeldblob
Objekt
zusatzfeldobj (siehe Tipps weiter unten)
Auswahl
zusatzfeldint (gibt Position der Auswahl zurück)
zusatzfeldasstring (gibt den Auswahltext zurück)Beispiel: Alle Adressen, die als ABC-Adressen gekennzeichnet sind (Wahr,Falsch-Zusatzfeld "ABC-Adresse" auf Adresseintrag):
adresseintrag->select(zusatzfeldbool('ABC-Adresse'))
Unterschied zwischen typenabhängiger und typenunabhängiger Abfrage
In den meisten Fällen kommt das auf der Oberfläche auf dasselbe heraus, da schlussendlich meist ein String dargestellt wird.
Unterschied gibt vor allem bei Auswahl-Zusatzfeldern. Diese sind intern als Integer Zusatzfelder implementiert. Das bedeutet, dass die Expression zusatzfeldint(name) eine Zahl liefert. Wenn der Text der Auswahl angezeigt werden soll, dann sollte die expression zusatzfeldasstring(name) verwendet werden.
Ebenso liefern die typspezifischen OCL Operatoren NULL Werte, falls das Zusatzfeld den Wert NULL hat. Dies stellt aber in den meisten Fällen kein Problem dar, da NULL Werte als Leerstrings dargestellt werden. Falls ein NULL Wert Probleme macht, kann dies durch Verwendung von zusatzfeldAsString vermieden werden.
Tipps zum Umgang mit zusatzfeldobj
Der Operator zusatzfeldObj zum Abfragen von Objekt-Zusatzfeldern kann zu Fehlern führen, wenn er in einer OCL Expression auf einer Liste von Objekten angewendet wird. Die Fehlermeldung lautet:
TBoldObjectList.AddElement: Element not a TBoldObject
Beispiel: Objektzusatzfeld 'Niederlassung' auf Projektbearbeiter. Zeigt z.B. auf eine Adresse.
offeneLeistungen.bearbeiter.zusatzfeldobj('Niederlassung')->asset->size
sollte die Anzahl verschiedener Niederlassungen in einer Leistungliste angeben. Gibt aber den obigen Fehler.
Lösung:
offeneLeistungen.bearbeiter->collect(zusatzfeldObj('Niederlassung')->oclasType
(UserEintrag))->asset->size
Erklärung:
Die Anwendung von zusatzfeldObj auf eine Liste entspricht einer impliziten "collect" operation. Diese schlägt fehl, weil zusatzfeldObj nicht direkt das verknüpfte Objekt sondern das Verknüpfungfeld liefert.
Eine Typumwandlung auf einen kompatiblen Objekttyp (den eigentlichen Typ des Objekts oder UserEintrag) behebt das Problem. Damit die Typumwandlung stattfinden kann, muss die collect Operation explizit formuliert werden.
| erstellt: | 30.01.2004 |
|---|---|
| geändert: | 24.02.2012: SQL-Tabelle neu erstellt mit Beispielen von Where-Ausdrücken |
| Produktlinien: | Expert |
| Module: | Leistung & CRM |
