it-swarm-eu.dev

Beste Web-Benutzeroberfläche für große Datenmengen

Ich suche nach einer guten Lösung, wenn Benutzer große Datenmengen in eine Webanwendung eingeben müssen.

Beispiel

  • Ein Ladenbesitzer möchte jeden Monat 30-40 neue Produkte in das System eingeben. Der Ladenbesitzer hat eine Tabelle mit allen Produkten, deren Mengen, Preisen, Herstellern, Kontaktinformationen, Seriencodes usw. (wahrscheinlich etwa 10 verschiedene Felder).

Im Moment denke ich an eine Art Rasteransicht, mit der der Benutzer Daten aus beispielsweise Excel oder einer anderen verwendeten Tabellenkalkulationsanwendung kopieren und einfügen kann.

Was ist die beste Weblösung, mit der der Benutzer so viele Daten eingeben kann (ohne jedes Element einzeln eingeben zu müssen)?

7
Mark

Wie wäre es mit einer Benutzeroberfläche zum Hochladen der Tabellenkalkulationsdatei, die automatisch von einer Datenbankimportroutine verarbeitet wird?

3

Entschuldigung, neues Poster.

Wenn ich dies richtig lese, fragen Sie nach einer Möglichkeit für eine Webanwendung, Daten zu lesen, die aus der Zwischenablage eingefügt werden und aus einer Excel-Tabelle stammen? Es wäre sicherlich hilfreich zu wissen, mit welchen Technologien Sie arbeiten. Die folgenden eingefügten Excel-Daten sehen wie folgt aus: formatierter Text:

0055486645655 BOHNEN, GRÜN 700070 0005525551154 BOHNEN, ROSA 99010

Ich würde nur ein Textfeld einrichten, in das Daten eingefügt werden könnten. Die Zeichenfolge kann dann bereinigt und basierend auf Ihren Formatierungserwartungen in eine Tabelle analysiert werden. Es wäre sicherlich keine schöne Lösung, aber es würde die Arbeit erledigen. In JSF können Sie die Daten einfach an den Server senden, das Eingabefeld ausblenden und den Server eine Datentabelle mit dem Inhalt aktualisieren lassen, den der Benutzer genehmigen muss, um sicherzustellen, dass die richtigen Informationen an die Datenbank übergeben werden.

2
Scruffs

Was wäre großartig, wenn Sie bereits das Format kennen würden, in dem sie ihre Daten speichern. Auf diese Weise könnten Sie ein einfaches Dateieingabefeld haben (stellen Sie dann sicher, dass der Benutzer überprüfen kann, was er hochgeladen hat, bevor es tatsächlich in die Datenbank übernommen wird): Benutzer lieben "magische Knöpfe", bei denen Sie nur auf eine Sache klicken und alles selbst berechnen :-)

Und selbst wenn Sie die Reihenfolge der Spalten nicht kennen, können Sie bei einem bekannten Format wie CSV die ersten beiden Datenzeilen anzeigen und den Benutzer bitten, die Daten mit den richtigen abzugleichen Spalte , auf diese Weise kennen Sie die Reihenfolge und können alles auf einmal importieren, ohne die Benutzer zu zwingen, ihre Daten in einem äußerst spezifischen Format zu speichern, und Sie können sich das Format sogar für das nächste Mal merken. Persönlich wäre das meine Lieblingswahl .


Andernfalls würde ich für die manuelle Eingabe vorschlagen, zunächst nur eine einzelne Zeile anzuzeigen :

  • Wenn der Benutzer dann mindestens alle erforderlichen Spalten für diese Zeile ausgefüllt hat , fügen Sie auf diese Weise eine zweite Eingabezeile unter der ersten hinzu, sofern der Benutzer dies nicht getan hat Wenn er einen Fehler macht und zu einer früheren Zeile zurückkehrt, wird er höchstwahrscheinlich Daten nacheinander eingeben und sich jeweils nur auf die Zeile konzentrieren, anstatt mit einer riesigen Wand aus Eingabefeldern konfrontiert zu werden.

  • sie sollten von Zeit zu Zeit Entwürfe speichern (z. B. Stackexchange), da es für lange Dateneingaben nichts Frustrierenderes gibt, als alles erneut eingeben zu müssen, wenn Sie versehentlich Drücken Sie die falsche Taste (wenn Sie die Seite ohne Senden verlassen, möchten Sie möglicherweise ein Bestätigungsfeld anzeigen, in dem angegeben wird, dass die Daten noch nicht gespeichert wurden.)

  • stellen Sie sicher, dass die gesamte Zeile mit der fokussierten Zelle (und möglicherweise auch die Spalte) markiert ist, wenn Sie eine Spalte in der Ferne ändern möchten Seite könnte er die falsche Zeile füllen, wenn es viele Zeilen auf dem Bildschirm gibt. Zebrafärbung könnte ebenfalls helfen, aber die Meinungen sind in dieser Angelegenheit geteilt.

    • wenn das Raster der Zeilen wirklich lang ist (ich würde es nicht vorschlagen, könnte es leicht verwirrend werden, aber wenn Sie es wirklich müssen), stellen Sie sicher, dass der Titel der Spalten immer sichtbar ist oben, auch wenn Sie scrollen. Siehe zum Beispiel die Demo Thead jQuery Plugin .
2
wildpeaks

Ein einfaches Textfeld mit diesem Etikett:

Geben Sie eine Liste solcher Produkte ein:
Lagernummer; Produktname; Name auf Rechnung; Nummer auf Lager
Spalten durch Semikolon trennen, ein Produkt pro Zeile

und analysieren Sie die Daten.

Es ist jedoch ein wenig Arbeit, das Richtige zu tun: Wenn Sie Eingaben validieren, erkennen Sie fehlerhafte und unerwartete Daten, weisen Sie den Benutzer darauf hin und lassen Sie ihn diese korrigieren, ohne sie zu verlieren. Der einfachste serverseitige Weg wäre:

Ich habe die folgenden 75 Produkte erkannt:

Ist das richtig? [Ja, Daten eingeben] [Nein, lassen Sie mich das korrigieren]

Noch besser wäre eine clientseitige Vorschau (wie das Posten im Stackoverflow).


Begründung: Im Vergleich zu einem Raster verlieren Sie die Zellennavigation und die Spaltenausrichtung, was wichtig ist, wenn Überprüfung und Änderung die Daten. Wenn Eingabe Daten, das Zellen- und Zeilentrennzeichen ist weniger wichtig, und Return hat das geeignetere Verhalten, um eine neue Zeile zu beginnen.

Sie erhalten eine sehr einfache Oberfläche, mit der Sie schnell ein oder zwei Produkte eingeben und eine große Liste von Datensätzen einfügen können, unabhängig von der verfügbaren Quelle. Der gleiche Code kann zum Verarbeiten hochgeladener Dateien verwendet werden (wie von @Michael Zuschlag vorgeschlagen).

Ich würde es vermeiden, die Werte in einzelne Eingabefelder zu setzen - oft hilft dies dem Programmierer mehr als dem Benutzer.

0
peterchen