2010-03-30 8 views
6

Ich muss eine Benutzeroberfläche für die Eingabe von etwas wie "wenn x oder (y und z) dann tun a, b und c" entwickeln. Die einzugebenden Daten selbst sind schon ziemlich kompliziert, wie verpackt man sie in eine intuitive Benutzeroberfläche?Wie gestaltet man die Benutzeroberfläche zum Erstellen von bedingten Ausdrücken?

+3

Ich denke, zu vermeiden, dass, wenn es eine Möglichkeit gäbe intuitiv diese Art der Sache zu tun visuell würden wir, dass anstatt Code zu schreiben werden. – Welbog

+0

Obwohl es nicht speziell für diesen Anwendungsfall, dieser Aufsatz können Sie wertvolle Einblicke geben: http://worrydream.com/MagicInk/ – thSoft

Antwort

0

Dies ist ein guter Artikel

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

ich die Ideen in diesem Artikel verwendet wird, wenn ein Formular Aufbau für die Eingabe Raten Benefit Deduktion. Kurz gesagt, er empfiehlt, die Form wie Mad Libs zu gestalten (erinnert euch an diese Bücher als Kind).

+1

Ich glaube, dass diese Antwort nicht auf die Frage überhaupt nicht betreffen. – atoumey

+0

@atoumy Wie verhält sich das nicht? Es ist eine neue und andere Art des Adlib-Typs zum Erstellen eines Formulars. Vielleicht ist es nicht die beste Antwort hier, aber es ist eine Alternative und lohnt einen Blick von jedem, der diese Frage suchen würde. – Zoidberg

+0

für mich (und ich habe da nicht downvoted wie ich dies die Punktzahl von -1 ausreichend ist, schreiben), ist die Antwort nicht nützlich, weil es nicht die eigentliche Frage nicht befassen. Bei der Frage geht es darum, bedingte Ausdrücke zu erstellen, anstatt ein Formular auszufüllen. Das sind zwei verschiedene Probleme. Der "Mad-libs" -Stil des Formularentwurfs ist hauptsächlich für statische Formen, die zu Sätzen verarbeitet werden können. –

0

Wird es immer binäre Logik wie diese sein (nur Oder, Und, und Nicht)? Wenn dies der Fall ist, könnte die Benutzeroberfläche ein logic diagram Designer sein, ähnlich denen, die beim Entwerfen von Schaltungslogik verwendet werden.

2

Hier ist ein Beispiel, wie ich das Problem für eine Fehlerdatenbank gelöst habe. Dies wurde vor auf einer Linux-Box ein Jahrzehnt getan, so dass das L & F ist eher Motiv-ish, aber es zeigt das allgemeine Konzept:

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

Es ziemlich viel wie erwartet funktioniert. Sie können "ANY of the following" auf "ALL of the fol- gement" setzen und die Bezeichnungen in den folgenden Zeilen ändern sich von "or" in "and". Der "IS" -Knopf kann zu "IS NOT" sowie "Matches pattern" und einigen anderen Wahlmöglichkeiten geändert werden.

Klicken Sie auf die +/- Schaltflächen, um weitere Kriterien hinzuzufügen. Sie können logische Gruppen erstellen, mit denen Sie Ausdrücke wie "a oder (b und c)" ausführen können, aber es liest sich immer noch wie eine Sammlung englischer Sätze.

In Ihrem Fall, anstelle einer "Bestellung von" Abschnitt haben Sie möglicherweise einen "diese Dinge zu tun" Abschnitt.

Dies wäre mühsam zu verwenden, wenn Sie sehr komplexe Abfragen erstellen müssen, aber wenn Sie eine komplexe Abfrage benötigen, sind Sie wahrscheinlich schlau genug, um keine GUI wie diese zu benötigen. Dies wurde eher für den gelegentlichen Benutzer für einfache Ad-hoc-Abfragen entwickelt.

Ich würde auf jeden Fall die Art ändern, wie das aussieht, wenn ich es nochmal machen müsste, aber die grundlegenden Mechanismen funktionieren ziemlich gut.

1

Hier ist meine Antwort aus einer ähnlichen Frage:Intuitive interface for Composing Boolean Logic?

Ich würde Ihre Schnittstelle in zwei Teile brechen: der Zustand und das Ergebnis.

Hier ist ein Beispiel der bedingten Schnittstelle:

enter image description here

ein paar Gedanken

  • Die Schnittstelle einfach beginnt
  • Wenn es kompliziert, ist es, weil der Benutzer gebaut es Schritt für Schritt
  • Keine Bearbeitung oder Drag/Drop - Erstellen und Löschen von Zweigen
  • Die Bedingungen sind in diesem Beispiel ein einfaches Dropdown-Menü, das jedoch komplizierter oder möglicherweise negiert werden kann.Im Grunde können Sie mit dieser Oberfläche Ausdrücke erstellen.
  • Ich denke, es ist eine gute Idee, diese Art der Schnittstelle, wenn möglich
Verwandte Themen