Wie validieren Sie kritische Eingaben, die nicht überprüft werden können?

8

Wie verhindert man, dass Benutzer fehlerhafte Eingabesätze erstellen, wenn es keine praktische Möglichkeit gibt, die Eingabe zu überprüfen?

Die Szene

Ich ändere ein kleines ERP-Paket, das in Visual FoxPro geschrieben wurde. Ein Teil des Pakets befasst sich mit dem Drucken von LKW-Manifesten und Rechnungen, die den Fahrern auf ihren Lieferwegen zugesandt werden sollen. Wenn die Druckroutine nichts als Eingabe eingibt, versucht sie, alles zu drucken, was dazu führt, dass Unmengen von Druckerpapier auf einem Hochgeschwindigkeitsdrucker verschwendet werden.

Ich bin nicht in der Lage, eines der GUI-Schnittstellenelemente neu zu schreiben, und ich kann auch keine Frameworks, Toolkits oder anderen externen Code anpassen, die in dieser Situation verwendet werden sollen. Die Gründe hängen mit der Büropolitik zusammen. Bitte schlagen Sie nicht vor, dass ich das vorhandene ERP-Framework überschreiben kann, da dies für mich keine Option ist.

Die Angelegenheit

Die Benutzer befinden sich in einer zeitkritischen Hochdruckumgebung. Jeder Prozess wird in Minuten oder sogar Sekunden gemessen, was bedeutet, dass ich die Verarbeitungszeit so weit wie möglich minimieren muss. Aufgrund dieser Umgebung und möglicher Ablenkungen ignorieren Benutzer die Dialoge häufig , indem sie die [Eingabetaste] drücken, wodurch sich der Fokus schnell durch das Formular bewegt und schließlich auf der Aktionsschaltfläche für den Eingabedialog landet, was dazu führt, dass sie einen automatischen Ausdruck auslösen .

Die Eingabe besteht aus einem Datumsbereich, einem Routenbereich und einem Kundenauftragsbereich.

Die Eingabe für den Datumsbereich kann nicht automatisch auf "heutiges Datum" eingestellt werden, da häufiges Zurückdrucken erforderlich ist. Außerdem arbeiten die Endbenutzer um Mitternacht, dh ein Datumswechsel macht dies unpraktisch, ohne eine Routine zu manipulieren, die die Änderung automatisch erkennt usw.

Die Eingabe für Routen kann weder fest codiert noch aus bereits versendeten Routen abgeleitet werden, da erneutes Drucken erforderlich ist (siehe oben).

Die Eingabe für Kundenaufträge hat nur beim Drucken einzelner Aufträge oder bestimmter Bereiche eine Bedeutung.

Ehrlich gesagt gibt es also keine praktische Möglichkeit, Eingaben zu validieren .

Die Aktionsschaltfläche, die den Druck auslöst, kann nicht blockiert werden. Vorschläge, einen Blockierungsdialog vor den Benutzer zu stellen, werden ignoriert. Es steht mir nicht frei zu diskutieren, warum dies keine Option ist, außer dass das Konzept bereits an anderer Stelle auf der Website (aus einem anderen Blickwinkel) diskutiert wurde und abgelehnt wurde.

Das Blockieren von Ausdrucken, wenn alle Eingaben leer sind, wurde als Entwurfsentscheidung abgelehnt, da die Software dies als Funktion berücksichtigen muss .

Die Benutzer

Die Benutzer wurden wiederholt aufgefordert, dies nicht zu tun. Sie ignorieren diesen Rat häufig. Das Auslösen dieses unglücklichen Ereignisses wird von ihren Vorarbeitern / Managern nicht angesprochen, daher besteht kein Druck, das Verhalten zu beenden.

Die Organisation

Ich habe kein Mitspracherecht im Workflow, nur die Änderung vorhandener Softwarekomponenten, die von diesem Workflow betroffen sind.

Der Verkäufer

Der Anbieter bezieht das Paket als benutzerdefinierte Installation vom ursprünglichen Softwareanbieter. Der Anbieter verlangt, dass alle Codeänderungen zur Integration in seine Codebasis an ihn zurückgesendet werden. Wesentliche Änderungen an der Architektur führen aufgrund der umfangreichen Anpassungen zu höheren zukünftigen Kosten bei Versionsmigrationen. In einigen Fällen haben mir die Programmierer sogar gesagt, dass sie so große Änderungen völlig ignorieren und tun werden, was sie wollen.

Die Software

Ich habe kein Mitspracherecht bei der Auswahl oder Installation der Software, daher kommt ein Plattformwechsel nicht in Frage.

In Bezug auf die Umgebung der Software ist jede gedruckte Rechnung ein einzelner Anruf. Es gibt keine Batch-Druckfunktion, und aufgrund der Integration der Druckfunktion in das System (und einiger sprachlicher Besonderheiten) ist es nicht möglich, einen Batch-Wrapper um diese API zu erstellen. Um dies abzurunden, ruft dieser Teil des Programms ein anderes Programm auf, das den Rechnungsdruck ausführt, der wiederum die API zum Drucken eines Berichts aufruft, die eine einzelne Rechnung druckt. Schreckliches Design, ich weiß.

Eingabeformulare sind eine seltsame Kombination eines Formularkopfs, der keine Eingabefelder enthält, aber andere GUI-Elemente enthalten kann. Eingabefelder werden zur Laufzeit definiert.

Das Ziel

Die Software verhindert, dass die Benutzer fälschlicherweise alle Unterlagen drucken.

Wie würden Sie dieses Problem lösen?

Avery Payne
quelle
5
Mir scheint, Sie müssen zuerst die Benutzerfreundlichkeit Ihrer Software gründlich analysieren . Klingt nach einem Albtraum.
Bernard
6
Wenn ich dieses richtige Drucken verstehe, muss alles eine Funktion sein. Warum kann dann nicht alles als eigene Schaltfläche gedruckt werden und die vorhandene Druckschaltfläche wird blockiert, bis mindestens ein Feld Daten enthält?
Ryathal
8
Ich habe seit einiger Zeit nichts mehr von FoxPro gehört. Klingt so, als ob ihr Mitte der 90er Jahre festsitzt. Nebenbei bemerkt, Sie klingen schrecklich gestresst und Ihre Situation scheint ziemlich hoffnungslos. Sie warfen dich in Stromschnellen, banden aber deine Hände und Füße mit einem Seil zusammen. Wie solltest du ein Problem lösen, wenn du dich darauf konzentrierst, nicht zu ertrinken?
maple_shaft
4
Ich würde den Parameter Ausgabe alles auf etwas Bestimmtes wie PRINTALL ändern. Machen Sie den leeren Parameter, um die häufigste Auswahl auszugeben (wahrscheinlich aktueller Datensatz)
SoylentGray
5
@AveryPayne: Nur weil der neue Job besser ist als der alte, heißt das nicht, dass der neue Job nicht scheiße ist.
Unholysampler

Antworten:

25

Dies ist einfach, wenn sie alles leer lassen, fordern Sie auf, dass dies alles druckt. Die STANDARD-Auswahl in dieser Eingabeaufforderung MUSS jedoch abgebrochen werden.

Wenn sie Werte eingeben, drucken Sie alles, was sie gewünscht haben.

Auf diese Weise blitzen sie nicht versehentlich durch das Formular und drucken alles. Sie werden durchflammen und nichts drucken. Sie müssten pausieren und drucken. Ändern Sie die Auswahl an der Eingabeaufforderung in OK, von Abbrechen, um alles zu drucken.

CaffGeek
quelle
2
Dies funktioniert nicht - sobald die Benutzer feststellen, dass sie mit der Maus auf die Schaltfläche klicken müssen (oder die Tabulatortaste drücken müssen, bevor sie die Eingabetaste drücken), beginnen sie dies automatisch, ohne darüber nachzudenken.
TheShrike
7
@TehShrike, nein, das wird es, weil die Eingabeaufforderung nur beim Drucken von ALLES angezeigt wird. Es wird also ihren normalen Ablauf unterbrechen, was dazu führt, dass sie entweder erneut die Eingabetaste drücken, weil sie eine andere Eingabeaufforderung erwarten (und den Druck abbrechen) oder anhalten, um die Eingabeaufforderung zu lesen und die richtige Auswahl zu treffen.
CaffGeek
Dies löst die Anforderung, das Problem "Notwendigkeit eines Dialogs des Bösen (tm)" zu beseitigen und gleichzeitig das ursprüngliche Ziel zu erreichen - ihre "Konzentration" (oder deren Fehlen) zu brechen. Es stoppt sie in ihren Spuren und lässt sie für eine Sekunde aufwachen, anstatt die [Eingabetaste] zu drücken. Unter allen anderen Bedingungen können sie wie gewohnt arbeiten, ohne ihren Arbeitsablauf zu unterbrechen. Tolle Resonanz.
Avery Payne
@AveryPayne, froh, dass es hilft.
CaffGeek
27

Es hört sich für mich so an, als müssten Sie etwas reparieren, aber jedes Mal, wenn Sie eine Lösung vorschlagen (und Ihre Liste enthält viele gute Ideen), wird sie abgeschossen.

Dies ist der Punkt, an dem Sie zurückschieben müssen. Sie brauchen keine vage Vorstellung davon, dass "das falsch ist; beheben Sie es". Was Sie brauchen, ist eine Spezifikation. Fragen Sie die Leute , die es fest genau wollen , was sie tun wollen getan, da bisher alles , was Sie haben, was sie nicht wollen. So viel ist einfach: Tu einfach nichts, und dann wirst du nichts tun, was sie nicht wollen. Sagen Sie ihnen, wenn sie Änderungen vornehmen möchten, müssen sie positive, konkrete Regeln aufstellen, und Sie werden sie umsetzen.

Mason Wheeler
quelle
Sehr originelles Denken "außerhalb des Rahmens" (ick, habe ich gerade diesen alten Satz gesagt?), Also +1 für Sie. :)
Avery Payne
3
Leider sind vernünftige Anforderungen im Allgemeinen gering, wenn „Büropolitik“ der Grund für geistige Zwänge ist. Die gewaltsame oder fiatische Beseitigung der „Büropolitik“ als existierende Sache würde die Qualität des Produktionscodes allgemein um mehrere Größenordnungen verbessern.
Jason Lewis
10

Ich werde versuchen, eine Antwort auf eine allgemeinere Frage zu geben: Wie kann vermieden werden, dass ein Benutzer einen Fehler macht, der zu einer Katastrophe führt oder etwas, das nicht abgebrochen oder rückgängig gemacht werden kann (z. B. Verschwendung von Papier durch Drucken mehrerer Seiten, die der Benutzer nicht erwartet hatte? gedruckt).

Wie in der ursprünglichen Frage gesagt:

Die Benutzer befinden sich in einer zeitkritischen Hochdruckumgebung. Jeder Prozess wird in Minuten oder sogar Sekunden gemessen, was bedeutet, dass ich die Verarbeitungszeit so weit wie möglich minimieren muss.

Das bedeutet, dass:

  • Das Softwareprodukt muss sein Bestes geben, um die Produktivität der Mitarbeiter zu steigern. Wenn jede Sekunde zählt, sind Benutzererfahrung und Produktivität noch wichtiger als bei allgemeinen Produkten, bei denen ein Verlust von einigen Sekunden bei einigen Funktionen, die die Person nicht einmal zu oft verwendet, akzeptabel ist.

  • Die Benutzer sind zu beschäftigt, um auf das Softwareprodukt zu achten. Wenn ich in einer ruhigen Umgebung eine Funktion von Microsoft Word verwende, die ich vor einem Jahr das letzte Mal verwendet habe, kann ich es mir leisten, ein oder zwei Minuten zu lesen, wenn Microsoft Word mir eine Frage stellt und erklärt, welche Konsequenzen meine Wahl hätte die Frage, und vielleicht sogar die Dokumentation lesen. In Ihrem Fall können Sie sich das nicht leisten. Ihre Benutzer haben keine Zeit zum Lesen.

Meldungsfelder: nein, nein und ... nein!

Wie bereits in meiner anderen Antwort erläutert , sind Nachrichtenfelder in den meisten Fällen aus zwei Gründen böse (siehe About Face 3 von Alan Cooper für weitere Details):

  • Der Dialog, der "Wolf!" Das Prinzip veranlasst den Benutzer, einen Dialog wiederholt zu schließen, ohne darauf zu achten, wenn die Anwendung den gleichen Dialog zu oft anzeigt.

  • Der Dialog stört den Workflow: Der Benutzer kann sich nicht auf die Anwendung konzentrieren, da der Dialog diesen Fokus aufhebt und die Interaktion mit der Anwendung unterbrochen wird, bis der Dialog geschlossen wird¹.

Dies bedeutet, dass Dialogfelder in Ihrem Fall aus UX-Sicht ein absolutes Übel sind : Sie werden verworfen und verringern die Produktivität in einer Umgebung, in der jede Sekunde zählt.

Andere Mittel

Nach der Frage:

  • "Die Eingabe besteht aus einem Datumsbereich, einem Routenbereich und einem Kundenauftragsbereich."

  • Es gibt keine falschen Werte (z. B. kann der Benutzer im ersten Feld ein vorheriges Datum, ein zukünftiges Datum oder heute eingeben), sodass eine Validierung nicht möglich ist.

  • "Wenn die Druckroutine nichts als Eingabe eingibt, versucht sie, alles zu drucken, was dazu führt, dass Unmengen von Druckerpapier auf einem Hochgeschwindigkeitsdrucker verschwendet werden."

  • Es ist durchaus möglich, nach dem Drucken mit den verwendeten Standarddaten zu fragen.

Allgemeiner bedeutet dies:

  • Sie haben einen Standardwert, der tatsächlich gültig sein kann.

  • Sie möchten nicht, dass die Benutzer auf die Schaltfläche "Drucken" klicken, wobei die Standardwerte versehentlich beibehalten werden, während sie diese ändern möchten.

Hier sind einige Techniken, die Sie ausprobieren können:

1. Die Magie rückgängig machen

Ja, die Benutzer befinden sich in einer zeitkritischen Umgebung. Ja, sobald der Drucker mit dem Drucken beginnt, kann er nicht mehr gestoppt werden. Aber Sie können noch etwas tun.

Selbst in einer zeitkritischen Umgebung besteht die Möglichkeit, dass das Drucken im Moment und das Drucken in fünf Sekunden nichts ändert.

Wenn der Benutzer auf "Drucken" klickt, wird eine kleine Schaltfläche "Rückgängig" angezeigt , genau wie bei GMail, wenn Sie versehentlich alle Ihre E-Mails entfernen möchten. Warten Sie fünf Sekunden ². Blenden Sie das "Rückgängig" aus und drucken Sie erst danach.

Jetzt hat der Benutzer die Möglichkeit, den Fehler zu bemerken und abzubrechen, bevor der Schaden tatsächlich angerichtet wird, während das Material nur mit einer kleinen Verzögerung von fünf Sekunden gedruckt wird.

2. Der diskrete Hintergrund "Standardwert"

Sind Standardwerte verdächtig? ³ Bei einem Wert ist dies selten verdächtig. Bei drei besteht die Möglichkeit, dass die Fälle, in denen der Benutzer standardmäßig alle drei Werte beibehalten muss, recht selten sind.

In diesem Fall können Sie:

  • Markieren Sie den Wert, wenn er seinen Standardwert hat. Nicht in rot: rot steht für ungültige Werte. Stellen Sie es auf Gelb-Orange und wieder auf Weiß ein, wenn der Benutzer den Standardwert ändert.

  • Oder deaktivieren Sie die Schaltfläche "Drucken", bis ein Wert geändert wird. Fügen Sie in der Nähe ein Kontrollkästchen hinzu, mit dem der Benutzer bestätigen kann, dass er beabsichtigt, mit Standardwerten zu drucken.

3. Erweitern Sie die Benutzeroberfläche Ihrer Steuerelemente

Wir sind Freitag, 6. th Januar 2012 heute. Was ist der Termin am nächsten Donnerstag? Schnell, schnell, Sie stehen unter Druck, Sie haben nur eine Sekunde Zeit für Ihre Antwort. Außerdem bist du müde und es gibt überall viel Lärm. Nicht leicht zu beantworten, nicht wahr?

Menschen können Daten nicht einfach manipulieren, wenn sie als geschrieben sind 1/8/1012. Saturday, 7th of January (tomorrow)ist ein bisschen einfacher. Eine grafische Ansicht, die Samstag und Sonntag hervorhebt, zeigt heute und der Versatz ist noch besser.

Nichts ist so hässlich wie "Location: NYC". Diese drei Buchstaben sind bedeutungslos, wenn Sie müde sind und in einer stressigen Umgebung arbeiten. Fehler sind einfach. Stattdessen ist eine grafische Karte der Vereinigten Staaten mit einem roten Punkt für New York City viel ansprechender, und der Benutzer hat viel mehr Chancen zu bemerken, dass der rote Punkt an einer falschen Stelle zu erscheinen scheint, während er San Francisco auswählen wollte .

Geben Sie hier die Bildbeschreibung ein

Würde es Ihnen gefallen, wenn Ihr GPS Ihnen sagt, dass Sie sich von 38.90403, -77.04878 auf 38.90568, -77.04665 bewegen müssen, dann rechts abbiegen und auf 38.90565, -77.04345, dann um 90 ° nach links und auf 38.90660, -77.04345? Könnten Sie sich auf Ihre Arbeit (die Straße) konzentrieren? Das Anzeigen von 08.01.2012 und NYC für vielbeschäftigte Benutzer ist so benutzerfreundlich wie ein GPS, das Rohkoordinaten anstelle einer 3D-Ansicht einer Karte voller Farben ausgibt.

Durch umfassendere Steuerelemente und eine umfassendere Visualisierung von Daten können Sie die Fehlerquote Ihrer Benutzer in einer stressigen Umgebung verringern.


¹ Dies gilt übrigens auch für andere Varianten von Dialogfeldern. Sie haben zuvor eine Frage zu den Dialogfeldern gestellt, in denen die Schaltflächen zufällig sind und die das Löschen erschweren. Leider hilft ein solcher Ansatz nicht, sondern schadet nur: Die Benutzer werden das, was im Dialog gesagt wird, immer noch ablehnen, aber mehr Zeit damit verschwenden, ihn zu schließen, um wieder an die Arbeit zu gehen.

² Ich sage als Beispiel fünf Sekunden. Sie müssen die Aktivität der Benutzer einige Monate lang überwachen, um zu sehen, wie schnell sie auf "Rückgängig" klicken. Die Chancen stehen gut, dass es unter einer Sekunde liegt. Wenn Sie sehen, dass die Verzögerung zwischen 0,6 und 1,8 s liegt. Mit einem Durchschnitt von 1,1 s können Sie das "Rückgängig" zwei Sekunden lang anzeigen und dann drucken.

³ Bitte, bitte, bitte, sag nein! Wenn dies der Fall ist, bedeutet dies, dass mit Ihren Standardwerten etwas nicht stimmt. Wenn der Standardwert für das Datum beispielsweise heute ist, während die Benutzer ihn in 75% der Fälle auf morgen, in 10% auf gestern und in 10% auf übermorgen einstellen müssen, sollten Sie lieber den Standardwert festlegen Wert bis morgen.

Arseni Mourzenko
quelle
Option 1 ist die beste der drei. Option 2 ist möglicherweise aufgrund eines schlechten API-Designs für die Schnittstelle möglich oder nicht. Option 3 ist aufgrund des schlechten API-Designs definitiv defekt (nur Textfelder und Schaltflächen sind verfügbar). Trotzdem vielen Dank für den konstruktiven Kommentar. :)
Avery Payne
1
Sie können die zweite Option verwalten, indem Sie einige Beschriftungen hinzufügen und deren Sichtbarkeit ein- und ausschalten (Sie haben immer noch Beschriftungen, oder?). Vergessen Sie die dritte Option, bis Ihr Chef / Kunde versteht, dass er qualitativ hochwertige Software mit einer qualitativ hochwertigen Benutzeroberfläche erwartet, die auf einem beschissenen Framework mit nur Textfeldern und Schaltflächen basiert. Dies ist wie die Erwartung, dass ein Lamborghini aus Holz und einigen rostigen alten Stücken von gebaut wird Metall.
Arseni Mourzenko
Magic Undo ist definitiv eine schöne Sache.
Nick Chammas
@MainMa, nur als Randnotiz, die API ist ziemlich primitiv für das, was Sie in # 2 erreichen wollen. Ein Dialog mit vier Schaltflächen ist ein einzelner Funktionsaufruf, der den Dialog zeichnet, Text aus einer Zeichenfolge ausspuckt und Schaltflächen automatisch mit Wörtern füllt. Es gibt, Sie haben es richtig erraten, 7 Parameter - "Nachricht", Anzahl der Schaltflächen, Standardschaltflächenfokus, Schaltflächenzeichenfolge1, Schaltflächenzeichenfolge2, Schaltflächenzeichenfolge3, Schaltflächenzeichenfolge4. Es gibt kein "Layout" oder "Objekt-Neuklassifizierung", das angewendet werden kann. Aber danke für den Vorschlag, und es liegt sicherlich in meiner Macht, meinen eigenen Dialog zu schreiben und ihn stattdessen aufzurufen ...
Avery Payne
3

Können Sie vor dem Drucken bestimmen, wie viele Seiten gedruckt werden sollen, oder auf andere Weise die Größe der Ausgabe messen? Wenn dies der Fall ist, legen Sie eine maximale Größe für den normalen Gebrauch fest. Wenn diese größer ist, verwenden Sie ein Bestätigungsdialogfeld, in dem die Ausgabegröße angegeben ist. Damit sie nicht ohne Lesen gelöscht werden kann, muss der Benutzer die Ausgabegröße zur Bestätigung zurückgeben.

JGWeissman
quelle
Es ist zwar möglich, die Anzahl der Seiten zu berechnen, dies ist jedoch zeitlich untragbar. Daher wurde die Entwurfsentscheidung aufgrund der oben genannten zeitlichen Einschränkungen abgelehnt. Wenn Zeit kein Faktor wäre, wäre dies eine große Hilfe. Der sekundäre Blockierungsdialog läuft jedoch meinem obigen Beitrag zuwider (siehe den vorletzten Absatz in "The Issue:").
Avery Payne
@AveryPayne Können Sie den Druckvorgang abbrechen, sobald er gestartet wurde? Sie könnten stattdessen einen nicht blockierenden Bildschirm haben, der die Anzahl der Seiten anzeigt (die parallel zum Start des Druckvorgangs berechnet werden), und die Option zum Abbrechen, wenn dies nicht die Absicht des Benutzers war, sodass Sie nur wenige Seiten verschwenden, während der Benutzer erkennt den Fehler.
JGWeissman
+1, einfach weil dies bisher die einzige praktische Antwort ist, die gegeben wurde. Ich kann den blockierenden Dialogteil jedoch immer noch nicht akzeptieren.
Avery Payne
Ich wünschte, ich könnte es, aber der Haken zum Drucken ist bestenfalls "hirngeschädigt" - es blinkt ein Dialog für jeden Ausdruck. Ich werde versuchen, dies in der Frage zu klären, danke für den Hinweis.
Avery Payne
3

Wie würden Sie dieses Problem lösen?

Trennen Sie die Anwendungsfälle klar voneinander. Es gibt einen Fall "Jetzt etwas drucken", der zu endlosen Ausgaben führen kann. Korrigieren Sie dies, um alle richtigen Standardeinstellungen bereitzustellen.

Es gibt einen „etwas Voriges nachdrucken“ Fall , dass eine speziellen (Nicht-Standard) Anforderung ist , wo Eingänge können sorgfältig geprüft werden.

Die Eingabe für den Datumsbereich kann nicht automatisch auf "heutiges Datum" eingestellt werden, da häufiges Zurückdrucken erforderlich ist.

Falsch.

Die Eingabe kann heute automatisch eingestellt werden, ohne dass sich dies auf häufige Rückdruckanforderungen auswirkt.

Welche möglichen Auswirkungen hätte eine automatische Einstellung auf "heutiges Datum" auf Rückdruckanfragen? Bitte zählen Sie sie in der Frage auf.

Die Eingabe für Routen kann weder fest codiert noch aus bereits versendeten Routen abgeleitet werden, da erneutes Drucken erforderlich ist (siehe oben).

Falsch.

Nachdrucke und Rückdrucke sind ein Sonderfall. Sie haben niemals Standardfelder und sind die Ausnahme, nicht die Regel.

S.Lott
quelle
1
"Mit dem falschen Datum durch die Eingabe blitzen"? Welcher Eingang? Es gibt zwei separate Anwendungsfälle: Standarddatum und Rückdatum. Bitte klären Sie.
S.Lott
2
@ S.Lott Dies ist eher ein Kommentar als eine Antwort.
Josh K
3
@PersonalNexus: Möglicherweise. Die Frage ist ziemlich schwer zu beantworten, weil sie voller Annahmen ist.
S.Lott
2
@AveryPayne - Warum also nicht einfach die Möglichkeit deaktivieren, ohne Parameter zu drucken?
SoylentGray
1
Bitte nehmen Sie ausführliche Diskussionen, um zu chatten .
Josh K
2

Gestatten Sie mir, das Problem noch einmal zu wiederholen.

Derzeitiger Zustand: Durch blindes Drücken werden EnterUnmengen von Papier gedruckt.

Gewünschter Zustand: Durch blindes Drücken werden Enterkeine Unmengen von Papier gedruckt.

Lösung: so die Software ändern , dass blind drücken Entertut etwas, irgendetwas , außer Unmengen von Papier verursacht gedruckt werden.

Das lässt Sie so ziemlich das Problem, was es stattdessen tun sollte. Persönlich würde ich die Betreiber fragen, was sie wollen. Meine Vermutung ist so etwas wie das Drucken der dringendsten Rechnungen, die noch nicht gedruckt wurden. Lassen Sie die Möglichkeit, alle zu drucken, aber erfordern Sie eine bewusste Entscheidung, um dies zu tun.

Karl Bielefeldt
quelle
2

Sie haben eine Situation, in der der aktuelle Prozessstandard Verschwendung verursacht und Zeit für Ihre Benutzer kostet.

Deaktivieren Sie die Möglichkeit, nur die Eingabetaste zu drücken, indem Sie sich auf die Schaltfläche "Parameter zurücksetzen" konzentrieren (bei Bedarf eine erstellen). Wenn Sie also die Eingabetaste drücken, bleibt diese auf diesem Bildschirm, führt jedoch nichts aus. Ich würde eine Art Hot-Buttons für die gängigsten Auswahlen erstellen, um das Formular automatisch mit diesen Parametern auszufüllen und den Benutzern zu helfen. Dies sollte Ihr Problem jedoch auch ohne die Hot Buttons lösen.

SoylentGray
quelle
Die Eingabefelder werden zur Laufzeit "dynamisch" hinzugefügt (es gibt kein Design-Time-Layout) ... aber die Schaltflächen sind im Formular codiert, sodass das Hinzufügen neuer Schaltflächen ein guter Vorschlag ist.
Avery Payne
Das dynamisch hinzugefügte macht die Dinge kompliziert, aber ich denke, Sie können sie auch in foxpro noch füllen, wenn es sinnvoll ist, es herauszufinden.
SoylentGray