Auto Remplissage

28 views
Skip to first unread message

Gilles Mons

unread,
Jan 29, 2023, 1:38:04 AM1/29/23
to mementodatabase
Bonjour,

Pour ceux que l'auto-remplissage intéresse voici quelques variantes:

Le plus simple est de démarrer avec ce script :

var anotherLib = libByName("Lib2"); 

entries = anotherLib.find(query + "*");
resultArray = [];
 

for (i in entries )

object = {};

object["Obj1"]=entries[i].title;

resultArray.push(object);
}

result(resultArray);


Pour "y" par exemple cela vous donne une liste de résultats de requête comme :

[Obj1:xyz]
[Obj1:abcy]
[Obj1:ghiy]
[Obj1:abcy]

Première inconvénient, ont peut voir que la ligne 2 et 4 sont identiques, pour supprimer les résultats déjà présents, ont peut ajouter:

tempArray = [];

if(tempArray.indexOf(entries[i].title) === -1)

tempArray.push(entries[i].title);

Donc le script devient :

var anotherLib = libByName("Lib2"); 
entries = anotherLib.find(query + "*");
resultArray = [];
tempArray = [];

for (i in entries )
{
if(tempArray.indexOf(entries[i].title) === -1)

tempArray.push(entries[i].title);
object = {};

object["Obj1"]=entries[i].title;

resultArray.push(object);
}
}

result(resultArray);

Toujours pour "y" par exemple maintenant cela vous donne une liste de résultats de requête comme :

[Obj1:xyz]
[Obj1:abcy]
[Obj1:ghiy]

C'est cool, mais cela serait mieux classé par ordre alphabétique, ont va donc ajouter une fonction ( a,b )

resultArray.sort(function(a, b)
{
var x = a.title.toLowerCase();
var y = b.title.toLowerCase();
return x < y ? -1 : x > y ? 1 : 0;
});


Le script devient :

var anotherLib = libByName("Lib2"); 
entries = anotherLib.find(query + "*");
resultArray = [];
tempArray = [];

for (i in entries )
{
if(tempArray.indexOf(entries[i].title) === -1)

tempArray.push(entries[i].title);
object = {};

object["Obj1"]=entries[i].title;

resultArray.push(object);
}
}

resultArray.sort(function(a, b)
{
var x = a.title.toLowerCase();
var y = b.title.toLowerCase();
return x < y ? -1 : x > y ? 1 : 0;
});

result(resultArray);

Encore et toujours pour "y" par exemple maintenant cela vous donne une liste de résultats de requête comme :


[Obj1:abcy]
[Obj1:ghiy]
[Obj1:xyz]

L'on voit que les enregistrements trouvés avec "y" dans l'identifiant (title) sont classés par ordre alphabétique et les doublons sont supprimés.

Bon scripts à vous.

Gilles.
Reply all
Reply to author
Forward
0 new messages