2010-03-30 6 views
6

J'ai besoin de développer une interface utilisateur pour entrer quelque chose comme "si x ou (y et z) puis faire a, b et c". Les données à entrer sont déjà assez compliquées, comment l'envelopper dans une interface utilisateur intuitive?Comment concevoir une interface utilisateur pour créer des expressions conditionnelles?

+3

Je pense que s'il y avait un moyen de faire intuitivement ce genre de chose visuellement nous utiliserions qu'au lieu de l'écriture de code. – Welbog

+0

Bien que n'étant pas spécifiquement pour ce cas d'utilisation, cet essai peut vous donner des indications précieuses: http://worrydream.com/MagicInk/ – thSoft

Répondre

0

Ceci est un bon article

http://www.lukew.com/ff/entry.asp?1007

J'ai utilisé les idées dans cet article lors de la construction d'un formulaire pour entrer dans les taux de déduction des prestations. En bref, il recommande de construire la forme un peu comme Mad Libs (souvenez-vous de ces livres quand vous étiez enfant).

+1

Je crois que cette réponse ne se rapporte pas à la question du tout. – atoumey

+0

@atoumy Comment cela ne se rapporte-t-il pas? C'est un nouveau et différent type de création d'un formulaire. Peut-être que ce n'est pas la meilleure réponse ici, mais c'est une alternative et vaut bien un coup d'oeil par n'importe qui qui chercherait cette question. – Zoidberg

+0

pour moi (et je n'ai pas downvoted car comme j'écris ceci le score de -1 est suffisant), votre réponse n'est pas utile car elle ne répond pas à la question réelle. La question est de construire des expressions conditionnelles plutôt que de remplir un formulaire. Ce sont deux problèmes différents. Le style "libs fou" de la conception de forme est principalement pour les formes statiques qui peuvent être travaillées en phrases. –

0

Est-ce que ce sera toujours une logique binaire comme celle-ci (juste Or, And, et Not's)? Si c'est le cas, vous pouvez avoir l'interface utilisateur comme un concepteur logic diagram, similaire à ceux utilisés dans la conception de la logique de circuit.

2

Voici un exemple de la façon dont j'ai résolu le problème pour une base de données de bogues. Cela a été fait il y a dix ans sur une boîte de Linux, de sorte que le L & F est plutôt motif à la rigueur, mais il montre le concept général:

alt text http://www1.clearlight.com/~oakley/dbquery.jpg

Il fonctionne à peu près comme prévu. Vous pouvez remplacer «TOUS les éléments suivants» par «TOUS les éléments suivants» et les libellés des lignes suivantes passeront de «ou» à «et». Le bouton "IS" peut être changé en "IS NOT" ainsi que "Pattern" et quelques autres choix.

Vous cliquez sur les boutons +/- pour ajouter des critères supplémentaires. Vous pouvez créer des groupes logiques qui vous permettent de faire des expressions comme "a ou (b et c)", mais cela ressemble presque à une collection de phrases en anglais.

Dans votre cas, au lieu d'une section "Trier par", vous pourriez avoir une section "faire ces choses".

Cela serait fastidieux à utiliser si vous deviez créer des requêtes très complexes, mais si vous avez besoin d'une requête complexe, vous êtes probablement assez intelligent pour ne pas avoir besoin d'une interface graphique comme celle-ci. Cela a été conçu plus pour l'utilisateur occasionnel pour des requêtes ad hoc simples.

Je changerais définitivement la façon dont cela se présente si je l'avais à refaire, mais la mécanique de base fonctionne plutôt bien.

1

Voilà ma réponse d'une question similaire:Intuitive interface for Composing Boolean Logic?

Je casserais votre interface en deux parties: la condition et le résultat.

Voici un exemple de l'interface conditionnelle:

enter image description here

Quelques réflexions

  • L'interface commence simple,
  • Si ça se complique, il est parce que construit l'utilisateur étape par étape
  • Aucune modification ou glisser/déposer - créer et supprimer des branches seulement
  • Les conditions sont une simple liste déroulante dans cet exemple, mais pourraient être plus compliquées ou éventuellement niées.Fondamentalement, cette interface vous permet de composer des expressions.
  • Je pense que c'est une bonne idée pour éviter ce type d'interface, si possible
Questions connexes