web-dev-qa-db-fra.com

Construire des critères logiques (avec AND, OR, etc.)

Je cherche l'inspiration à ce sujet. Nous avons une application Web Dot.Net, où nous construisons des critères assez compliqués. Cela fonctionne, mais je voudrais changer cela, remodeler cela, peut-être à partir de zéro.

L'idée: Fondamentalement, il y a un processus d'arrière-plan, nous recevons des données. Pour que nous puissions l'analyser, ils établiront des critères. On peut l'appeler "filtre". Cela a probablement plus de sens

Exemple:

  1. Si les données analysées ont un champ "date de création", c'est-à-dire un jour de semaine, faites quelque chose
  2. Si les données analysées ont un champ "code", qui contient ces lettres "ABC", faites autre chose
  3. Si les données analysées ont un champ "montant" et que ce montant est supérieur à 1000, alors faites quelque chose
  4. Si les données analysées ont un champ "couleur", et c'est l'un d'entre eux: "rouge, bleu, vert", alors faisons quelque chose Nous allons laisser l'utilisateur aller encore plus loin.

Exemple: si 1 ET 2 ET 3 ET 4 (par le haut) sont tous vrais, alors "faites quelque chose de vraiment spécifique"

Vous pouvez aller encore plus loin: si ((1 ET 2) OR (3 ET 4)), d'en haut, alors "faites quelque chose de différent"

J'espère que tu vois ce que je veux dire

Nous avons donc essentiellement 2 étapes A. laissez l'utilisateur introduire 1, 2, 3, 4 d'une manière ou d'une autre B. laissez l'utilisateur le rendre plus compliqué

Tout cela fonctionne. Mais d'une manière totalement non conviviale.

Je me demandais s'il y avait quelque chose là-bas, qui est bien connu, facile à utiliser, facile à comprendre, qui fait la même chose.

J'aimerais vraiment trouver de l'inspiration pour reconstruire notre interface utilisateur, qui utilise actuellement trop de listes déroulantes, de cases à cocher, etc.

Aucune suggestion?

22
Ash
10
superduperfly

Je ne sais pas si vous avez déjà travaillé avec le condition builder dans Axure Pro 6.5 mais il implémente les fonctionnalités que vous essayez de gérer de manière simple et conviviale

enter image description here

enter image description here

8
Mervin

Tout ensemble de conditions est représentable en utilisant la forme normale conjonctive ou la forme normale disjonctive. Si vous arrêtez de prendre en charge des conditions de complexité arbitraire et choisissez une forme normale conjonctive ou une forme normale disjonctive, votre interface utilisateur pourrait devenir beaucoup plus simple. Ensuite, vous pouvez utiliser quelque chose qui ressemble à l'interface utilisateur de création de segment du moniteur de campagne (remplacer "Segment: US Residents" par "do else else 2"): Campaign Monitor Segment Creation UI

Si vous souhaitez autoriser des conditions plus complexes, autorisez les utilisateurs à référencer directement les règles:

Règle 1: Si AAA et BBB
Règle 2: Sinon Règle 1

Si vous prévoyez des conditions complexes, la création de sous-conditions peut être extrêmement utile.

3
Brian

Je pense que si vous abstenez la construction de chaque condition de la construction de l'ensemble de règles (c'est-à-dire les conditions et les actions), cela peut faciliter les choses.

Un prototype parle mille mots, j'ai donc mis en place un aperçu approximatif de jsfiddle de la façon dont je l'imagine fonctionner. J'ai également inclus quelques captures d'écran ci-dessous.

Je n'ai rien rassemblé pour le générateur de conditions, mais je pense que cela fonctionnerait bien si le résultat de chaque condition était aussi simple que possible.

Je n'ai pas non plus ajouté de mécanisme pour créer des sous-conditions, mais j'imagine qu'après que deux conditions ont été ajoutées à une règle, cela pourrait donner la possibilité de créer un groupe. L'utilisateur peut ensuite faire glisser et déposer les conditions dans le groupe.

État initial:

Initial State

Première condition ajoutée:

1 Condition

Deuxième condition (et une action) Ajouté:

enter image description here

Une autre règle a été ajoutée:

enter image description here

1
Alex