DataClassAttribute
Les attributs Dataclass sont disponibles en tant que propriétés de leurs classes respectives. Par exemple :
nameAttribute:=ds.Company.name //référence à un attribut de classe
revenuesAttribute:=ds.Company["revenues"] //méthode alternative
Ce code attribue à nameAttribute et revenuesAttribute des références aux attributs name et revenues de la classe Company. Cette syntaxe ne retourne PAS les valeurs contenues dans l'attribut, mais retourne plutôt des références aux attributs eux-mêmes. Pour gérer les valeurs, vous devez passer par les Entités.
Les objets DataClassAttribut
ont des propriétés que vous pouvez lire pour obtenir des informations sur les attributs de votre dataclass.
Les objets de l'attribut Dataclass peuvent être modifiés, mais la structure sous-jacente de la base de données ne sera pas altérée.
Sommaire
.autoFilled : Booléen contient Vrai si la valeur de l'attribut est automatiquement renseignée par 4D |
.fieldNumber : Integer contient le numéro interne du champ 4D de l'attribut |
.fieldType : Integer contient le type 4D de l'attribut dans la base |
.indexed : Booléen contient Vrai s'il existe un index B-tree ou Cluster B-tree dans l'attribut |
.inverseName : Text retourne le nom de l'attribut qui est à l'autre extrémité du lien |
.keywordIndexed : Boolean contient True s'il existe un index de mot-clé sur l'attribut |
.kind : Text retourne la catégorie de l'attribut |
.mandatory : Boolean contient Vrai si une saisie de valeur Null pour l'attribut est rejetée |
.name : Text retourne le nom de l'objet |
.relatedDataClass : Text retourne le nom de la dataclass liée à l'attribut |
.type : Texte contient le type conceptuel de la valeur de l'attribut |
.unique : Booléen contient Vrai si la valeur de l'attribut doit être unique |
.autoFilled
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.autoFilled : Booléen
Description
La propriété .autoFilled
contient Vrai si la valeur de l'attribut est automatiquement renseignée par 4D. Cette propriété correspond aux propriétés de champ 4D suivantes :
- "Autoincrement", for les champs de type numérique
- "Auto UUID", pour les champs UUID (de type alpha).
Cette propriété n'est pas retournée si .kind
= "relatedEntity" ou "relatedEntities".
Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.autoFilled) pour obtenir une valeur valide (false) même si
.autoFilled
n'est pas retourné.
.fieldNumber
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.fieldNumber : Integer
Description
La propriété .fieldNumber
contient le numéro interne du champ 4D de l'attribut.
Cette propriété n'est pas retournée si .kind
= "relatedEntity" ou "relatedEntities".
Pour la programmation générique, vous pouvez utiliser Num (dataClassAttribute.fieldNumber) pour obtenir une valeur valide (0) même si
.fieldNumber
n'est pas retourné.
.fieldType
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.fieldType : Integer
Description
La propriété .fieldType
contient le type 4D de l'attribut dans la base. Elle dépend du .kind
de l'attribut.
Valeurs possibles :
dataClassAttribute.kind | fieldType | Commentaire |
---|---|---|
storage | Type de champ 4D correspondant | Voir la commande Type |
relatedEntity | 38 (Is object) | |
relatedEntities | 42 (Is collection) |
.indexed
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.indexed : Booléen
Description
La propriété .indexed
contient Vrai s'il existe un index B-tree ou Cluster B-tree dans l'attribut.
Cette propriété n'est pas retournée si .kind
= "relatedEntity" ou "relatedEntities".
Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.indexed) pour obtenir une valeur valide (false) même si
.indexed
n'est pas retourné.
.inverseName
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.inverseName : Text
Description
La propriété .inverseName
retourne le nom de l'attribut qui est à l'autre extrémité du lien.
Cette propriété n'est pas retournée si .kind
= "storage". Elle doit être du type "relatedEntities" ou "relatedEntities".
Pour la programmation générique, vous pouvez utiliser String (dataClassAttribute.inverseName) pour obtenir une valeur valide ("") même si
.inverseName
n'est pas retourné.
.keywordIndexed
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.keywordIndexed : Boolean
Description
La propriété .keywordIndexed
contient True s'il existe un index de mot-clé sur l'attribut.
Cette propriété n'est pas retournée si .kind
= "relatedEntity" ou "relatedEntities".
Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.keywordIndexed) pour obtenir une valeur valide (false) même si
.keywordIndexed
n'est pas retourné.
.kind
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.kind : Text
Description
La propriété .kind
retourne la catégorie de l'attribut. La valeur retournée peut être l'une des chaînes suivantes :
- "storage" : attribut de stockage (ou scalaire), c'est-à-dire un attribut stockant une valeur, et non une référence à un autre attribut
- "relatedEntity" : attribut relationnel N -> (référence vers une entité)
- "relatedEntities" : attribut relationnel 1 -> N (référence vers une entity selection)
Exemple
Considérons les tables et relations suivantes :
var $attKind : Text
$attKind:=ds.Employee.lastname.kind //$attKind="storage"
$attKind:=ds.Employee.manager.kind //$attKind="relatedEntity"
$attKind:=ds.Employee.directReports.kind //$attKind="relatedEntities"
.mandatory
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.mandatory : Boolean
Description
La propriété .mandatory
contient Vrai si une saisie de valeur Null pour l'attribut est rejetée.
Cette propriété n'est pas retournée si .kind
= "relatedEntity" ou "relatedEntities".
Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.mandatory) pour obtenir une valeur valide (false) même si
.mandatory
n'est pas retourné. Attention : Cette propriété correspond à la propriété du champ "Reject NULL value input" au niveau de la base de données 4D. Elle n'est pas liée à la propriété "Mandatory" existante qui est une option de contrôle de la saisie de données pour une table.
.name
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.name : Text
Description
La propriété .name
retourne le nom de l'objet dataClassAttribute
sous forme de chaîne.
Exemple
var $attName : Text
$attName:=ds.Employee.lastname.name //$attName="lastname"
.relatedDataClass
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.relatedDataClass : Text
Description
Cette propriété n'est disponible qu'avec les attributs de la propriété "relatedEntity" ou "relatedEntities"
.kind
.
La propriété .relatedDataClass
retourne le nom de la dataclass liée à l'attribut.
Exemple
Considérons les tableaux et relations suivants :
var $relClass1; $relClassN : Text
$relClass1:=ds.Employee.employer.relatedDataClass //$relClass1="Company"
$relClassN:=ds.Employee.directReports.relatedDataClass //$relClassN="Employee"
.type
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.type : Texte
Description
La propriété .type
contient le type conceptuel de la valeur de l'attribut, utile pour de la programmation générique.
Le type de valeur conceptuelle dépend de l'attribut .kind
.
Valeurs possibles :
dataClassAttribute.kind | type | Commentaire |
---|---|---|
storage | "number", "date", "object", "bool", "image", ou "string" | "nombre" est rertourné pour tous les types numériques, y compris la durée. "string" est retourné pour les types de champs uuid, alpha et text |
relatedEntity | related dataClass name | Ex : "Companies" |
relatedEntities | related dataClass name + "Selection" suffix | Ex : "EmployeeSelection" |
.unique
Historique
Version | Modifications |
---|---|
v17 R5 | Ajout |
.unique : Booléen
Description
La propriété .unique
contient Vrai si la valeur de l'attribut doit être unique. Cette propriété correspond à la propriété de champ 4D "Unique".
Cette propriété n'est pas retournée si .kind
= "relatedEntity" ou "relatedEntities".
Pour la programmation générique, vous pouvez utiliser Bool (dataClassAttribute.unique) pour obtenir une valeur valide (false) même si
.unique
n'est pas retourné.