Frappe Framework
DocField
Un DocField définit une propriété (un champ) d’un DocType : nom de colonne, libellé, type de donnée et conditions d’affichage. Cette page présente ses principales propriétés avec un exemple.
Qu’est-ce qu’un DocField
Un DocField définit une propriété (ou un champ) d’un DocType. Pour chaque DocField, vous pouvez définir le nom de colonne, le libellé, le type de donnée et bien d’autres attributs. Par exemple, le DocType ToDo possède les champs description, status et priority. Ces champs deviennent au final des colonnes de la table tabToDo en base de données.
Exemple
Le DocField stocke des métadonnées sur le champ. Quelques-unes sont décrites dans l’exemple ci-dessous.
[
{
"label": "Description", // the value shown to the user (Form, Print, etc)
"fieldname": "description", // the property name we refer in code, also the column name
"fieldtype": "Text Editor", // the fieldtype which also decides how to store this value
"reqd": 1 // whether this field is mandatory
},
{
"label": "Status",
"fieldname": "status",
"fieldtype": "Select",
"options": [
"Open",
"Pending",
"Closed"
]
},
{
"label": "Priority",
"fieldname": "priority",
"fieldtype": "Select",
"options": [ // list of options for select
"Low",
"Medium",
"High"
],
"default": "Low" // the default value to be set
},
{
"label": "Completed By",
"fieldname": "completed_by",
"fieldtype": "Link",
"options": "User",
"depends_on": "eval: doc.status == 'Closed'", // the condition on which this field's display depends
},
{
"collapsible": 1,
"collapsible_depends_on": "eval:doc.status!='Closed'", // determines if a Section Break field is collapsible
"fieldname": "sb_details",
"fieldtype": "Section Break",
"label": "Details"
},
{
"fieldname": "amount",
"fieldtype": "Currency", // Currency field
"label": "Amount",
"non_negative": 1, // determines whether this field value can be negative
"options": "INR",
}
]Les propriétés illustrées dans cet exemple :
| Propriété | Rôle |
|---|---|
label | Valeur affichée à l’utilisateur (formulaire, impression, etc.) |
fieldname | Nom de la propriété utilisé dans le code, et nom de la colonne |
fieldtype | Type de champ, qui détermine aussi la façon de stocker la valeur |
reqd | Indique si le champ est obligatoire |
options | Liste des options d’un champ Select, ou DocType cible d’un champ Link, ou devise d’un champ Currency |
default | Valeur par défaut |
depends_on | Condition dont dépend l’affichage du champ |
collapsible | Indique si un Section Break est repliable |
collapsible_depends_on | Condition déterminant si le Section Break est replié |
non_negative | Indique si la valeur du champ peut être négative |
Conditions d’obligation et de lecture seule
Sur le même principe que depends_on, qui détermine si un champ est affiché, deux nouvelles propriétés ont été introduites dans la version 12 :
| Propriété | Effet |
|---|---|
mandatory_depends_on | Si la condition est remplie, le champ devient obligatoire |
read_only_depends_on | Si la condition est remplie, le champ devient en lecture seule |
Types de champs disponibles
Frappe est livré avec plus de 30 types de champs (fieldtypes) prêts à l’emploi, couvrant une grande variété de cas d’usage. Ils sont détaillés dans la page Types de champs.
