2010-03-30 9 views
6

Ho bisogno di sviluppare un'interfaccia utente per l'inserimento di qualcosa come "se x o (y e z) quindi fare a, b, ec". I dati da inserire sono già abbastanza complicati, come si fa a racchiuderlo in un'interfaccia utente intuitiva?Come progettare l'interfaccia utente per la creazione di espressioni condizionali?

+3

Penso che se ci fosse un modo per fare intuitivamente questo genere di cose visivamente ci sarebbe utilizzando che invece di scrivere codice. – Welbog

+0

Anche se non specificamente per questo caso d'uso, questo saggio potrebbe fornirti preziose informazioni: http://worrydream.com/MagicInk/ – thSoft

risposta

0

Questo è un buon articolo

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

ho usato le idee in tale articolo, quando la costruzione di un modulo per l'immissione di tassi Deduzione beneficio. In poche parole, egli raccomanda di costruire la forma come Mad Libs (ricorda quei libri da bambino).

+1

Credo che questa risposta non riguardi affatto la domanda. – atoumey

+0

@atoumy Come questo non si riferisce? È un modo nuovo e diverso di tipo adlib di creare un modulo. Forse non è la migliore risposta qui, ma è un'alternativa e vale la pena dare un'occhiata a chiunque cerchi questa domanda. – Zoidberg

+0

per me (e non ho downvoted perché mentre scrivo questo il punteggio di -1 è sufficiente), la tua risposta non è utile perché non affronta la domanda vera e propria. La domanda riguarda la costruzione di espressioni condizionali piuttosto che compilare un modulo. Questi sono due problemi diversi. Lo stile di progettazione delle "matrici folli" è in gran parte per forme statiche che possono essere trasformate in frasi. –

0

Sarà sempre una logica binaria come questa (solo Or, And's e Not's)? In tal caso, l'interfaccia utente potrebbe essere un designer logic diagram, simile a quelli utilizzati nella progettazione della logica circuitale.

2

Ecco un esempio di come ho risolto il problema per un database di bug. Ciò è stato fatto dieci anni fa su una macchina Linux, in modo che il L & F è piuttosto motivo-ish, ma mostra il concetto generale:

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

Funziona più o meno come ci si aspetta. È possibile modificare "ANY of the following" in "TUTTI i seguenti" e le etichette sulle righe successive cambieranno da "or" a "and". Il pulsante "IS" può essere cambiato in "IS NOT" e "Pattern di corrispondenza" e alcune altre scelte.

Fai clic sui pulsanti +/- per aggiungere ulteriori criteri. Puoi creare gruppi logici che ti permettono di fare espressioni come "a o (be c)", eppure continua a leggere come una raccolta di frasi inglesi.

Nel tuo caso, invece di una sezione "Ordina per" potresti avere una sezione "fai queste cose".

Questo sarebbe scomodo da usare se devi creare query molto complesse, ma se hai bisogno di una query complessa probabilmente sei abbastanza intelligente da non aver bisogno di una GUI come questa. Questo è stato progettato più per l'utente occasionale per semplici query ad hoc.

Cambiare definitivamente il modo in cui appare se l'avessi dovuto ripetere, ma i meccanismi di base funzionano piuttosto bene.

1

Ecco la mia risposta da una domanda simile:Intuitive interface for Composing Boolean Logic?

vorrei spezzare l'interfaccia in due parti: la condizione e il risultato.

Ecco un esempio dell'interfaccia condizionale:

enter image description here

Alcune considerazioni

  • L'interfaccia inizia semplice
  • Se diventa complicato, è perché l'utente costruito passo dopo passo
  • Nessuna modifica o trascinamento/rilascio - solo creazione e cancellazione di rami
  • Le condizioni sono un semplice elenco a discesa in questo esempio, ma potrebbero essere più complicate o eventualmente annullate.Fondamentalmente questa interfaccia ti consente di comporre espressioni.
  • penso che sia una buona idea per evitare questo tipo di interfaccia, se possibile
Problemi correlati