Es stehen verschiedene Feldtypen zur Verfügung, die hier kurz beschrieben werden. Im Orm Wizard wird auf der Datentabelle ein “Persistent Property” hinzugefügt. In den Eigenschaften können dann verschiedene Einstellungen vorgenommen werden.
Textfeld / HTML Felder
Eigenschaften
- Column Type: String
- Name: [Beliebiger Feldname]
- Size: Default / Unlimited / Konkrete Länge
Beim Textfeld muss eine Größe festgelegt werden. Die Standardgröße sind 100 Zeichen. Dabei sollte man beachten, das die Größe sinnvoll gewählt ist. Die Wahl von “Unlimited” für jeden Wert sollte vermieden werden.
Für das Speichern von HTML Inhalten werden zurzeit Textfelder mit der Größe “Unlimited” verwendet. HTML Felder können in Teil-Datentabellen nicht verwendet werden.
Boolesches Feld
Eigenschaften
- Column Type: Boolean
- Name: [Beliebiger Feldname]
Datum-Zeit Feld
Eigenschaften
- Column Type: DateTime
- Custom Attributes: “ValueConverter(typeof(DevExpress.Xpo.Metadata.UtcDateTimeConverter))”
- Is Nullable: True / False
- Name: [Beliebiger Feldname]
Datum-Zeit-Felder werden in Business App grundsätzlich in UTC in die Datenbank geschrieben. Durch den definierten Value Converter arbeitet man im Source Code grundsätzlich mit dem Local Format. Dies muss dringend berücksichtigt werden, ansonsten tauchen entsprechende Zeitverschiebungen auf.
Wiederholendes Datum-Zeit Feld
Um ein Datumsfeld zu erlauben Wiederholungsinformationen zu beinhalten, muss ein weiteres Attribut gesetzt werden.
Zusätzliche Custom Attributes
- BA.Core.CustomAttributes.RecurrentDateAttribute()
In diesem Fall werden vom System automatisch weitere Spalten angelegt. Das sind [Feldname]_RecurrenceType
mit dem Wert 0 für nicht wiederholende und 1 für wiederholende Werte. Und [Feldname]_RecurrenceInfo
welches die Wiederholungsinformationen in einem XML Format beinhaltet.
Ausnahmen von Wiederholungen
Im Benutzerinterface von Business App existiert zurzeit keine Möglichkeit Ausnahmen von Wiederholungen anzulegen oder zu verwalten. Es existieren aber Möglichkeiten diese Ausnahmen technisch zu erstellen. Der Kalender und die Mehrfachgruppierung in Ansichten können diese dann darstellen.
Ob und wie man diese Funktionalität schon in Projekten nutzen kann, ist individuell zu erfragen.
Zahlenfelder
Eigenschaften
- Column Type: [Zahltyp]
- Is Nullable: True / False
- Name: [Beliebiger Feldname]
Auswahllistenfeld
Es gibt zwei Arten von Auswahllisten. In der Ersten wird lediglich eine Referenz auf den eigentlichen Wert gespeichert und in der Anderen werden die Werte abgespeichert. Primär wird die Referenz Variante empfohlen.
Referenz
Eigenschaften
- Column Type: BA.Core.Enums.ValueEnum
- Custom Attributes: “BA.Core.CustomAttributes.OrmEnumFieldAttribute(BA.Training.Enums.EnumMyEnum.Guid, BA.Core.CustomAttributes.TypeOfOrmEnumField.Normal)”
- Is Nullable: False
- Name: [Beliebiger Feldname]
- Value Converter: BA.Core.Converters.EnumValueConverter
Der Column Type muss beim Ersten Mal dem Datenmodel hinzugefügt werden.
In diesem Fall wird von BA beim Starten automatisch eine weitere Datenspalte mit dem Namen [Feldname]_AllValues
.angelegt.
Werte
Um eine Auswahllistenfeld zu definieren, indem nur die Werte gespeichert werden, wird ein Property benötigt.
Eigenschaften
- Column Type: String
- Custom Attributes: “BA.Core.CustomAttributes.OrmEnumFieldAttribute(BA.Training.Enums.EnumMyEnum.Guid, BA.Core.CustomAttributes.TypeOfOrmEnumField.Simple)”
- Name: [Beliebiger Feldname]
- Size: Möglichst konkret (im Zweifelsfall oder Multi-Value unlimited)