Pflichtfelder
Informationen
- Kategorien: Kernel
- Version: Developer.14713
- Veröffentlichungsdatum: Dienstag, 26. Januar 2021
- Entwickler: Götzen
- Benötigt Datenbankänderung: Ja
- Betreff: Striktheit bei Pflichtfeldern
Beschreibung
- Bei der Definition eines Attributs / Attributdefinition / Klassenattributes / Steuerelementes in den Metadaten kann zukünftig zusätzlich zur Pflichtfeld-Eigenschaft die Striktheit mit der das Attribut geprüft werden soll eingestellt werden.
Dazu wird das Feld bNeeded ersetzt dirch das Feld Mandatory welches dann 4 Werte besitzt:
0 - Kein Pflichtfeld 1 - Pflichtfeld / Strikheit nach Systemeinstellung 2 - Pflichtfeld / Immer strikt 3 - Pflichtfeld / Nie strikt
zu diesem Attribute kann man ein Steuerelement anlegen: Typ: MetaDataCombobox DataFeld: COMBOTYPE=Mandatory
- Bei einem konkreten Attribut eines Objekts, lässt sich zusätztlich die Mandatory Eigenschaft sowie dessen Striktheit festlegen.
Im Ergebnis kann man also Abhängig vom Status eines Objekt per Klassenformel zusätzliche Pflichtfelder definieren, die strikt geprüft werden müssen. Beispielsweise wird bei Auftragsstatus beauftragt die Bestellnummer zum Pflichtfeld.
Dazu können die Metadaten wie folgt erweitert werden:
In den Klassen SysAttribute, SysClassAttribute, SysAttributeDefinition, SysMetaAttribute sowie SysControl wird das Attribute bNeeded durch das Feld Mandatory vom Typ Ganzzahl ersetzt.
In den Klassenfromeln gibt es zusätzlich die Funktionen:
SetAttributeMandatory( this, descr_of( «AttributeName» ), $bMandatory, $iStrictness ) IsAttributeMandatory( this, descr_of( «AttributeName» ))) und IsAttributeStrictlyMandatory( this, descr_of( «AttributeName» ))
Zum Setzen / Abfragen des Mandatory flags sowie dessen Strikheit.
Bilder
Beispielcode
var int $bMandatory;
var int $bStrictlyMandatory;
var int $iStrictness;
$iStrictness = #System.Mandatory.Strictness.BySystemSetting;
$bMandatory = #System.Boolean.False;
$bStrictlyMandatory = IsAttributeStrictlyMandatory( this, descr_of( :ref_Unternehmen ));
if ( !IsAttributeMandatory( this, descr_of( :ref_Unternehmen )))
{
$bMandatory = #System.Boolean.True; // Toggle Mandatory
// Strictness depends on number of floor
//
if ( :ref_Ebene.Number == "1" )
{
$iStrictness = #System.Mandatory.Strictness.Never;
}
else if ( :ref_Ebene.Number == "2" )
{
$iStrictness = #System.Mandatory.Strictness.Always;
}
else
{
$iStrictness = #System.Mandatory.Strictness.BySystemSetting;
}
}
// Sets the new mandatory and strictness
//
SetAttributeMandatory( this, descr_of( :ref_Unternehmen ), $bMandatory, $iStrictness );