Comment appliquer order by sur un champ dans une form

j’ai la formulaire suivant, et j’ai besoin d’appliquer order by sur le champ exersice

Bonjour,

Quand vous parler de Form et de champs vous parlez de liste déroulante dans une page de formulaire ?

Cdlt

oui une liste déroulant dans la formulaire.

Normalement chaque liste est triée par ordre alphabétique. Vous souhaitez ordonner une liste différemment ?
Pouvez-vous me dire quelle formulaire, quel champs et quel type de tri vous souhaitez effectuer ?

Comme vous pourrez le voir ici https://docs.axelor.com/adk/5.0/dev-guide/models/models.html#onetomany il faut définir un “order by” dans la définition du champs. Ceci est valable pour tous les autres types de relations.

oui j’ai une liste des années affiche en ordre croissante mais j’ai besoin d’applique l’ordre décroissance
le champ est exercice.

je ne pense pas qu’il soit possible de modifier la vue du formulaire pour y appliquer un tri. Je pense qu’il vous faut modifier le fichier .xml qui définit le modèle cible pour y intégrer votre attribut “orderBy”. Du coup il vous faudra aussi recompiler.Peut-être qu’un autre utilisateur saurait comment répondre à votre attente d’une manière plus simple.

le champ dans la formulaire xml et dans le model a déjà l’attribut orderBy

alors vous le changer pour reflèter votre besoin, vous recompiler la solution et vous redéployer le .war

oui j’ai déjà fait la précompilation et reploiement mais sans résultat

précisez le domain ainsi que le field concerné que je puisse tester de mon côté.

oui bien sur
le model :

<module name="config" package="com.axelor.config.db"/>

<entity name="Exercice"  cachable="true" >
    <string name="name" required="true" unique="true" max="60"/>
    <date name="debut"/>
    <date name="fin"/>
    <string name="status" max="60"/>
</entity>

et view :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<grid name="notes-rh-grid" title="Notes" orderBy="-exercice,employee.matricule"
      model="com.axelor.rh.db.Note">
    <field name="employee.matricule"/>
    <field name="employee.firstname"/>
    <field name="employee.lastname"/>
    <field name="entite"/>
    <field name="exercice.code" title="Exerice"/>
    <field name="noteAvancement"/>
    <field name="notePrime"/>
    <field name="noteFinal"/>
</grid>

<form name="notes-rh-form" title="Note"
      model="com.axelor.rh.db.Note" width="large">
    <panel name="Note" colSpan="12">
        <field name="employee" domain="self.activated=true"/>
        <field name="entite"/>
        <field name="exercice" orderBy="name" form-view="exercice-form" grid-view="note-exercice-grid"/>
        <field name="noteAvancement"/>
        <field name="notePrime"/>
        <field name="noteFinal"/>
    </panel>
    <panel sidebar="true">
        <field name="createdOn"/>
        <field name="createdBy"/>
        <field name="updatedOn"/>
        <field name="updatedBy"/>
    </panel>
</form>

Avez vous pensé à rafraîchir les vue (restore all dans View Management)?

J’ai supprimer la base de données et générer un nouveau war et depoiloyer mais sans resultat.

j’ai fait une recherche dans abs pour un exemple mais je ne trouve pas.

essayez en mettant

<field name="exercice" orderBy="name DESC" form-view="exercice-form" grid-view="note-exercice-grid"/>
ou
<field name="exercice" orderBy="-name" form-view="exercice-form" grid-view="note-exercice-grid"/>

Comme vous le verrez dans le fichier com.axelor.db.Query..216 si le nom du champs est préfixé de ‘-’ alors le tri se fera en desc sinon aucun mode ne tri n’est spécifié. Vous pourriez aussi essayez orderBy="name ASC"

The correct syntax is <field name="exercice" x-order="-name"/>
Please refer to https://docs.axelor.com/adk/5.0/dev-guide/web-client/widgets.html#extra-attributes
for more informations

Thank you very much it worked for me