Jump to content
  • 0

Module de recherche par boutons


Question

Bonjour,

Je tente de mettre en place un module de recherche par Boutons. J'ai actuellement 12 boutons. 4 pour une rubrique et 8 pour une autre rubrique.
Via des jeux de deux boutons, je place mon script ajoutant la recherche sur l'un, et mon script effaçant la recherche sur l'autre. L'un se masquant selon l'état de l'autre.

Les différentes recherches peuvent s'ajouter et se soustraire et elles se font sur plusieurs champs - ce qui rend la tache un peu complexe. Cela implique de "multiplier" les recherches si j'ai bien compris.

Admettons une recherche de plusieurs valeurs sur deux rubriques. recherche rubrique maison "bleu" et "vert" puis rubrique "1 étage" et "2 étages". Il faudrait donc (si je ne me trompe) 4 recherches :

une recherche  bleu / 1 étage

une recherche bleu / 2 étages

une recherche vert / 1 étage

une recherche vert 2 étages

 

Le problèmes étant que j'ai 2 rubriques, l'une avec 4 variantes et l'autre avec 8. Ce qui fait 8 x 8 x 4 = 256 possibilté de recherches.


Alors j'ai commencé a bidouiller pas mal de script et je coince un peu de partout. le problème principal étant d'avoir une "autre rubrique" de recherche a ajouter a la recherche existante. Avec une seule rubrique a rechercher cela suffit :

Modifier la recherche
Nouvel enreg./requête
Définir rubrique [TABLE1::rubrique1 ; "bleu"]
Exécuter la recherche [ ]

Je peut ajouter autant de recherche que j'ai de boutons si je les effectue sur la meme rubrique.

Donc le soucis étant que si j'ajoute une recherche sur une autre rubrique cela ne va pas ajouter le terme de recherche a celle existante mais ajouter une autre recherche. Donc si j'ajoute la recherche "1 étage" j'aurais tout les maison a un étage meme si j'ai déjà ajouter la recherche "bleu" et "vert".

J'ai dessuite pensé a un opérateur & à ajouter dans une seule recherche mais je crois que ce n'est pas possible.

Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Voilà qui fait un peu suite au sujet d'Arusha de ce matin… En plus complexe.

Si on peut chercher x valeurs pour une même rubrique, cela correspond aux cases à cocher.

Dans ton exemple, tu aurais besoin de déclencher la recherche : rubrique Etages vaut 1 OU 2 ET rubrique Couleur vaut "bleu" ou "vert".

On va donc imaginer 2 rubriques globales g_Etages et g_Couleur montrées sur le modèle avec chacune sa liste de valeur. L'utilisateur coche 1 et 2 dans g_Etages et "bleu" et "vert" dans g_Couleur.

Ensuite, ni toi ni moi n'avons envie de gérer 256 cas dans un script (surtout que si un critère s'ajoute un jour, ça multipliera encore les possibilités)… Donc, on va faire ainsi :

// Chercher par nombre d'étages
Si ( not EstVide ( g_Etages ) )
	Définir variable [ $_max ; DecompteValeurs ( g_Etages ) ]
	Définir variable [ $_i ; 0 ]

	Mode Recherche [ Pause : non ]
	Supprimer enregistrement/requête	// cela supprime la requête vide qui se crée par défaut en entrant en mode recherche

	// créer x requêtes pour les x valeurs cochées dans g_Etages
	Boucle
		Définir variable [ $_i ; $_i + 1 ]
		Fin de boucle si [ $_i > $_max ]
		Nouvel enregistrement/requête
		Définir rubrique [ Etages ; ObtenirValeur ( g_Etages ; $_i ) ]
	Fin de boucle

	// exécuter la recherche et s'arrêter là si rien n'est trouvé
	Exécuter la recherche
	Si ( Obtenir ( NombreEnregTrouvés ) = 0 )
		Fin de script
	Fin de si

Sinon
	Afficher tous les enregistrements
Fin de si

// Affiner par couleur
Tout le même bazar avec la rubrique g_Couleur, SAUF qu'à la fin, au lieu de faire :
	Exécuter la recherche
on fera :
	Resreindre l'ensemble trouvé

Bon courage !

Jérémie

Link to post
Share on other sites
  • 0
il y a 49 minutes, Foxtune a dit :

recherche rubrique maison "bleu" et "vert" puis rubrique "1 étage" et "2 étages"

Attantion si c'est bien "et" et pas "ou " pour votre recherche , car la ça change tout ... c'est bleu et vert à chercher ou bleu ou vert à chercher ... Si ( pour moi ) quand un maison est bleu , elle peu pas etre vert ou autre ...

Ont a donc en fait 4 critères mais ou 1 seul est valide a la fois.  Et 8 ou 1 seul es valide en même temps . Vous avez donc a remplir que 2 global G_couleur et G_etage pour faire la recherche ( 4 bouton qui remplisse la global couleur et 8 qui remplice la global etages ) . Là comme dis @Jérémie Gimenez vous êtes dans le même système de recherche multicritère de @ARUSHA

Link to post
Share on other sites
  • 0

Merci messieurs. Solution trouvé. J'explique par politesse mais mon cas est assez particuliers. En espérant que cela serve a qqun tout de meme.
par contre je ne sait pas comment copier coller le code ici. Donc screenshot.


Je vais mettre les bon termes dans le contexte, j'ai montré des exemples qui ne correspondait pas totalement a mon cas.

J'ai des typologie de chantiers (RIP, TD1, GAZ, D2), et des états de chantiers (Preparé, Plannifié, Commencé, etc)

Ici je souhaite filtrer les résultats de manière a avoir une ou toutes les typologie, et un état. J'aurais aimé pouvoir filtrer une ou toutes les typologie et un ou tout les état mais c'est au delà de ma compréhenssion pour le moment.

 

Donc mon modèle est grossièrement comme ceci. J'ai volontairement affiché les globales pour faciliter mon investigation ^_^ seulement la partie entouré de rouge concernne l'utilisateur.
1869673525_Capturedcran2020-10-1818_09_43.thumb.jpg.f92fb2791b028c6f78a30f0a553d4fb0.jpg

 

j'ai donc pour ma première rubrique de recherche "typologie" un script qui filtre la recherche en prenant en compte les recherche précédente. Par exemple ici pour le bouton RIP. Merci @Jérémie Gimenez pour ton script, j'ai put adapter a mon cas.

1329081321_Capturedcran2020-10-1818_20_55.jpg.d2c2128885f6f56f56084a3bf5bf79d3.jpg

 

Un autre script qui supprime la recherche mais conserve les autres valeur de recherche si présente. toujours pour ma rubrique "typologie"

Obliger de mettre des conditions "Si' pour les différents cas. J'ai pas trouvé plus simple.

27630438_Capturedcran2020-10-1818_22_19.thumb.jpg.4e0038005ce7f8632958abf32df79edf.jpg

1661699956_Capturedcran2020-10-1818_22_38.jpg.ac4ee5958233fa2f3c94abfa88bf840f.jpg

 

Ensuite génériquement pour chaque recherche de ma rubrique "état chantier" j'ai un script qui filtre l'état en supprimant l'état précédant.

par exemple ici pour l'état "Preparé"

644219293_Capturedcran2020-10-1818_22_38.jpg.1427bd825f60e98cf09780f3b395afb5.jpg

 

Puis un script qui supprime l'état "préparé".

1588345064_Capturedcran2020-10-1818_26_52.jpg.b2b956f5c792def725289803fde83832.jpg


Et Foilà!
 

Link to post
Share on other sites
  • 0
Il y a 13 heures, Foxtune a dit :

J'ai volontairement affiché les globales pour faciliter mon investigation ^_^

Bonjour Foxtune,

Bravo !!!   👏

Tu as très bien fait d'afficher les globales, ça aide à comprendre ET ça te permettra (quand tu auras un peu reposé la machine) de passer à l'étape suivante…

Il y a 13 heures, Foxtune a dit :

J'aurais aimé pouvoir filtrer une ou toutes les typologie et un ou tout les état mais c'est au delà de ma compréhenssion pour le moment

Et c'est cela, l'étape suivante. Tu en es tout proche.

Il y a 13 heures, Foxtune a dit :

Obliger de mettre des conditions "Si"

On est parfois obligé de mettre des SI. Quand certains critères doivent agir préalablement sur les autres, on a des "SI préparatoires". Il y en avait d'ailleurs un exemple dans cette conversation récente. Mais j'ai l'intuition que quand tu attaqueras la dernière phase (pour avoir «une ou toutes les typologie et un ou tout les états»), tu pourras faire sauter tous tes SI.

 

 

Il y a 14 heures, Foxtune a dit :

Définir rubrique [ Table::Rubrique ; $ajoutTypoligie & "¶gaz" ]

Il existe une technique pour "ajouter une valeur avec retour chariot si la valeur n'était pas vide mais sans retour chariot si la valeur était vide" :

Définir rubrique [ Table::Rubrique ; Liste ( Table::Rubrique ; "gaz" ) ]

Ca simplifie les choses 😉

Bon début de semaine !

Jérémie

Link to post
Share on other sites
  • 0

J'aime bcp les subtilités de l'UX, bon je n'ai pas une grande expérience dans le domaine mais j'en suis curieux.
On vas dire que qd on commence a passer un certains temps devant un écran, et que la quantité de données a traiter devient conséquente, il est indispensable de faire des choix ergonomique adéquat. 

il y a 52 minutes, Jérémie Gimenez a dit :

Il existe une technique pour "ajouter une valeur avec retour chariot si la valeur n'était pas vide mais sans retour chariot si la valeur était vide" :

Définir rubrique [ Table::Rubrique ; Liste ( Table::Rubrique ; "gaz" ) ]

Cela fait un Si en moins ^_^ Merki

Link to post
Share on other sites
  • 0
il y a une heure, Foxtune a dit :

qd on commence a passer un certains temps devant un écran, et que la quantité de données a traiter devient conséquente, il est indispensable de faire des choix ergonomique adéquat

Tout à fait !

Et si on passe du temps sur le modèle en tant que développeur ET en tant qu'utilisateur, on finit souvent par trouver des présentations qui passent bien.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...