Condition à l'intérieur d'une action-record


#1

Bonjour,

  • J’essaie d’insérer une condition à l’intérieur d’une < action-record > mais cela ne marche pas. J’ai essayé avec les sytaxes suivantes: (testfield est un champ de sélection et conditionnalField est un champ many-to-one)
    < action-record name=“action-test” model=“com.axelor.apps.test”>
    < field name=“testfield” expr=“2” if=“condtionnalField != null”/>
    < /action-record>

< action-record name=“action-test” model=“com.axelor.apps.test”>
< field name=“testfield” expr=“2” if=“condtionnalField!= null”/>
< /action-record>

-Deuxième question: Est ce qu’il y a moyen de donner une valeur à un champ de sélection qui change dépendamment d’une condition? par exemple, tesfField=“1” si condition1==true et testField=“2” si condition2==true ?

Merci d’avance.


#2

Bonjour,

Y-a-t-il un message d’erreur ? conditionalField apparait-il bien dans la vue ?

Pour la seconde question, oui il suffit d’avoir plusieurs occurrences du même field avec des conditions différentes.

Cordialement,


#3

Il n’y a pas de message d’erreur. le condiotionalField apparait dans la vue.


#4

et l’action-record est appelé sur quel événement ?


#5

Sur onSave au niveau d la balise form


#6

Vérifier que la donnée condtionnalField est bien envoyée dans la console javascript du navigateur lors du save et qu’il n’y a pas une faute de frappe.

Soit en utilisant une ternaire, soit en utilisant plusieurs conditions :

< action-record name=“action-test” model=“com.axelor.apps.test”>
   < field name=“testfield” expr=“eval: condition1==true  ? 1 : (condition2==true ? 2 : null)”/>
< /action-record>

< action-record name=“action-test” model=“com.axelor.apps.test”>
   < field name=“testfield” expr=“1” if="condition1 == true"/>
   < field name=“testfield” expr=“2” if="condition2 == true"/>
< /action-record>