Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Personnalisation

Personnaliser les champs

Ajouter ou modifier les champs d'un type de document depuis Personnaliser un formulaire, et restreindre les choix d'un champ Lien avec des filtres.

Personnaliser les champs

Vous pouvez ajouter ou modifier les champs d'un type de document sans écrire de code, avec Personnaliser un formulaire. Cette page couvre aussi la propriété « Filtres », qui restreint les choix d'un champ Lien.

Prérequis

  • Vous avez le rôle System Manager.

Ajouter ou modifier un champ

  1. Ouvrez la barre de recherche (Ctrl+K) et tapez « Personnaliser un formulaire ».
  2. Choisissez le type de document, par exemple Facture de vente.
  3. Ajoutez une ligne dans la table des champs, ou ouvrez un champ existant.
  4. Renseignez les propriétés utiles :
    • « Étiquette » : le nom affiché ;
    • « Type » : Lien, Date, Sélection… ;
    • « Options » : pour un champ Lien, le type de document cible (par exemple Customer) ;
    • « Obligatoire » et « Masqué ».
  5. Cliquez sur Mettre à jour.

Filtrer les choix d'un champ Lien

La propriété « Filtres » d'un champ Lien limite les documents proposés dans sa liste déroulante. Elle existe aussi pour les champs Attachment Gallery, qui doivent alors filtrer le type File.

Format

« Filtres » contient une liste JSON. Chaque filtre est une liste de quatre valeurs :

[["Type de document", "champ", "opérateur", "valeur"]]

Plusieurs filtres se combinent par un ET. Il n'y a pas de OU.

Une valeur qui commence par eval: est calculée à chaque recherche, à partir du document en cours. L'expression peut lire doc (le document ou la ligne de table) et parent (le document parent d'une ligne de table).

Enregistrement

À l'enregistrement du type de document ou de la personnalisation, Dodock vérifie le format :

CasExempleRésultat
JSON invalide[["Supplier", "disabled", "=", 0]Refusé : « Filters must be valid JSON »
Filtre de moins ou de plus de quatre valeurs[["Supplier", "disabled", "="]]Refusé
Format valide[["Supplier", "disabled", "=", 0]]Accepté
Les filtres s'appliquent à la recherche dans la liste déroulante. Ils n'empêchent pas un script ou un import de saisir une autre valeur.

Exemples

Ne proposer que les fournisseurs actifs :

[["Supplier", "disabled", "=", 0]]

Ne proposer que les clients du groupe « Particuliers » et les fournisseurs basés en France (deux champs différents) :

[["Customer", "customer_group", "=", "Particuliers"]]
[["Supplier", "country", "=", "France"], ["Supplier", "disabled", "=", 0]]

Exemple fictif avec un champ personnalisé : le champ Lien custom_contact d'une commande ne propose que les contacts du client choisi, via un champ personnalisé custom_customer sur le contact.

[["Contact", "custom_customer", "=", "eval:doc.customer"]]

Définir les filtres dans le code

Dans le JSON d'un type de document, la propriété s'appelle link_filters. Sa valeur est la liste JSON sous forme de chaîne :

{
  "fieldname": "supplier",
  "fieldtype": "Link",
  "options": "Supplier",
  "link_filters": "[[\"Supplier\", \"disabled\", \"=\", 0]]"
}

Résoudre les problèmes courants

ProblèmeVérification
Le filtre ne s'applique pasLe premier élément de chaque filtre est le type de document cible du champ. Le nom du champ est le nom technique, pas l'étiquette.
La valeur eval: est videLe champ lu par l'expression est-il rempli avant d'ouvrir la liste ?
Erreur à l'enregistrementChaque filtre a exactement quatre valeurs. Le JSON est valide.

Pages liées