Nous sommes tous passés par là. Vous construisez une belle interface qui affiche une sélection d’entités pour les utilisateurs. Ils peuvent supprimer des entités, mais ensuite… ces espaces vides apparaissent à l’endroit où se trouvaient les entités supprimées.
Reconstruire avec du code la sélection d’entités après en avoir supprimé ? Ce n’est plus la peine ! 4D 20 R6 introduit une fonctionnalité pratique qui élimine ce problème en une seule ligne de code.
Continuez à lire pour découvrir comment cette fonctionnalité peut garder votre interface conviviale et vos utilisateurs détendus.
la fonction de nettoyage de l’objet entite selection
Voyons comment fonctionne cette fonction.
Une sélection d’entités est affichée et l’utilisateur peut en supprimer certaines.
La liste ci-dessous affiche la sélection d’entités Form.persons. L’utilisateur en sélectionne quelques-unes (Form.selected) et clique sur le bouton Drop. Si nous n’exécutons que ce code:
Form.selected.drop()
Form.persons:=Form.persons
Nous obtenons ceci :
Avec une seule ligne de code, grâce à la nouvelle fonction clean() :
Form.persons:=Form.persons.clean()
Les espaces vides disparaissent comme par magie, laissant votre interface propre et conviviale :
Le paramètre « clean » de l’API REST $entityset
Si votre application repose sur des API REST, vous pouvez également utiliser le paramètre clean avec l’API REST $entityset.
Si vous avez un ensemble d’entités contenant des entités supprimées (comme le montre l’objet en bleu contenant la propriété __STAMP):
{
"__DATACLASS" : "Persons",
"__entityModel" : "Persons",
"__GlobalStamp" : 0,
"__COUNT" : 3,
"__FIRST" : 0,
"__ENTITIES" : [
{
"__STAMP" :0
},
{
"__KEY" : "2",
"__TIMESTAMP" : "2024-05-23T09:26:19.658Z",
"__STAMP" : 1,
"ID" : 2,
"firstname" : "Broddy",
"lastname" : "Cristofanini"
},
{
"__KEY" : "3",
"__TIMESTAMP" : "2024-05-23T09:26:19.658Z",
"__STAMP" : 1,
"ID" : 3,
"firstname" : "Candie",
"lastname" : "Figin"
}
],
"__SENT" : 3
}
Vous pouvez obtenir un nouvel ensemble d’entités sans les entités supprimées en exécutant la requête ci-dessous (949062617AF6408CB198B3CB41FB72FB est l’ID de l’ensemble d’entités) :
/$entityset/949062617AF6408CB198B3CB41FB72FB?$clean=true&$method=entityset
Le résultat ? Un nouvel ensemble d’entités sans les entrées supprimées :
{
"__ENTITYSET" : "/rest/Persons/$entityset/8F658F3BA1884DE6BEC1FCFF4A7938F0",
"__DATACLASS": "Persons",
"__entityModel" : "Persons",
"__GlobalStamp" : 0,
"__COUNT" : 2,
"__FIRST" : 0,
"__ENTITIES" : [
{
"__KEY" : "2",
"__TIMESTAMP" : "2024-05-23T09:47:50.933Z",
"__STAMP" : 1,
"ID" : 2,
"firstname" : "Broddy",
"lastname" : "Cristofanini"
},
{
"__KEY" : "3",
"__TIMESTAMP" : "2024-05-23T09:47:50.933Z",
"__STAMP" : 1,
"ID" : 3,
"firstname" : "Candie",
"lastname" : "Figin"
}
],
"__SENT" : 2
}
Avec cette nouvelle fonctionnalité, la gestion des sélections d’entités n’a jamais été aussi simple. Faite de belles interfaces et des utilisateurs heureux !