J’ai une relation 1-N entre mon objet métier DdvGeneralMeeting (Assemblée générale) et DdvOrderOfDay (Ordre du jour).
Dans mon formulaire, j’ai un tableau d’ordre du jour disponible depuis le formulaire de l’assemblée générale. J’aimerais que lorsque le statut de l’assemblée générale est en “Creation”, je peux créer/modifier/supprimer un ordre du jour. Mais si le statut n’est pas celui ci, je doit juste pouvoir éditer en liste le tableau d’ordre du jour.
Pour réaliser cette contrainte, j’ai penser à 2 choses :
Utiliser les méthodes telles que isCreateEnable() → Le problème, c’est que ça marche pas de mon coté (peut être une erreur de ma part).
Utiliser les contraintes de Simplicité. Dans ce cas là (le plus simple) si c’est possible, il faudrait que je puisse sélectionner le statut de l’AG depuis l’objet ordre du jour et je ne sais pas comment faire. PS : j’ai suivi la doc mais j’ai pas trouvé : Simplicité® documentation/01-core/expressions
Vous pouvez utiliser le isCreateEnable() en testant le statut de l’objet parent.
Vous pouvez tester que le parent existe (getParentObject()!=null) , que le parent est bien l’objet Assemblée genérale (getParentObject().getName()) et que son statut est bien en création (getParentObject().getStatus().equals(...)).
La solution marche bien pour les 3 méthodes suivantes :
isCreateEnable()
isDeleteEnable()
isListEditable()
Cependant, pour la méthode isUpdateEnable(), cela ne fonctionne pas car peut importe le statut de l’AG, les champs sont en ReadOnly alors qu’ils ne devraient pas l’être quand le statut est en “Création”.
Voici le code (c’est le même pour les 4 méthodes) :
Effectivement, le problème de readOnly se produit quand j’ouvre un ordre du jour et que par conséquent je quitte le formulaire parent : AG.
Du coup, comment je peux mettre en readOnly les champs de l’objet métier DdvOrderOfDay lorsque le statut de l’objet métier DdvGeneralMeeting n’est pas en “Création” ?