Supprimer l'élément sélectionné sur une liste

4.0
Supprimer l'élément sélectionné sur une liste
0
Tags: #<Tag:0x00007f13e19c29e8>

(NDIO) #1

Bonjour,

Je rencontre un problème dans mon travail. En effet, j’ai un formulaire de création, la création consiste à aller chercher un ensemble d’éléments dans une liste.

Lorsque je sélectionne l’élément, je l’enregistre. Lors d’une nouvelle création, j’aimerai que l’élément sélectionné précédemment de s’affiche plus dans la liste (de sorte qu’on ne puisse plus le sélectionner)

Pouvez vous s’il vous plait m’apporter votre aide sur ce problème ?

Merci d’avance


(David AZOULAY) #2

En retirant les lignes que vous ne voulez pas voir dans le hook postObjectSearch (cf. https://www.simplicite.io/resources/4.0/javadoc/com/simplicite/util/ObjectDB.html#postObjectSearch-java.util.List-)


(NDIO) #3

Bonjour,

Je ne comprend pas votre solution. Pourrai-je avoir un exemple de script s’il vous plait? Et aussi, comment est ce que je pourrai filtrer l’affichage des éléments en fonction de la valeur d’un champ précis (clé étrangère).

Merci d’avance ?


(David AZOULAY) #4

Le filtrage de la liste de sélection en fct d’un champ du formulaire depuis lequel on sélectionne se fait par paramétrage d’un LinkMap (ça se trouve en onglet d’un Link)

S’agissant du hook postObjectSearch celui-ci reçoit la liste de sélection en entrée et retourne la liste “retravaillée” en sortie. Dans votre cas il suffit donc de boucler sur les éléments de la liste en entrée et de constituer une liste de sortie en omettant les elements que vous ne voulez pas voir apparaître dans la sélection


(NDIO) #5

Le filtrage de la liste de sélection fonctionne, merci pour la solution.

Par contre je n’ai pas réussi à implémenter la suppression de l’élément sélectionné précédemment. Pourrai-je avoir s’il vous plait un exemple de script?

Merci d’avance


(David AZOULAY) #6

Cela n’a rien de specifique à Simplicité, c’est du genre:

MyObject.postObjectSearch = function(rows) {
    var l = new ArrayList();
    for (i = 0; i < rows.size(); i++) {
        var row = rows.get(i);
        if (/* la condition qui fait que c'est bon */) l.add(row);
    }
    return l;
};