In verschiedenen GeschĂ€ftsanwendungen tritt hĂ€ufig die Aufgabe der Dokumenteingabe auf. In der Regel besteht ein Dokument aus einer Ăberschrift und einigen Zeilen, die sich jeweils auf ein Objekt (z. B. ein Produkt) beziehen. In den meisten FĂ€llen wird eine regulĂ€re Tabelle verwendet, um DatensĂ€tze in ein Dokument einzugeben, in dem der Benutzer Zeilen hinzufĂŒgen und löschen sowie deren Inhalt Ă€ndern kann.
In einigen FĂ€llen ist ein solches Schema fĂŒr Benutzer jedoch nicht immer praktisch. In diesem Artikel werde ich Ihnen erklĂ€ren, wie Sie mithilfe der Technik der Produktauswahl eine praktische BenutzeroberflĂ€che erstellen.
Herausforderung
In der Regel gibt es bei der Eingabe von Dokumenten fĂŒr den Benutzer eine EinschrĂ€nkung fĂŒr die Gruppe von Objekten, die hinzugefĂŒgt werden können. In diesem Fall ist es fĂŒr den Benutzer logisch, eine Liste solcher Objekte anzuzeigen, mit der Möglichkeit, sie schnell in das Dokument aufzunehmen (und auszuschlieĂen). In den Spalten ist es auch zweckmĂ€Ăig, fĂŒr jedes der Objekte die Daten anzuzeigen, die erforderlich sind, um eine Entscheidung ĂŒber die Notwendigkeit zu treffen, sie in das Dokument aufzunehmen. Und schlieĂlich besteht zusammen mit dem Objekt hĂ€ufig die Notwendigkeit, seine Menge einzugeben.
Betrachten wir drei Arten von Dokumenten, die hÀufig in GeschÀftsanwendungen enthalten sind:
- Bestellung . In solchen Dokumenten ist es logisch, dass der Benutzer eine Liste aller Waren anzeigt, die beim Lieferanten bestellt werden können. In den Spalten ist es zweckmĂ€Ăig, den aktuellen Saldo, den Umsatz fĂŒr ein bestimmtes Intervall sowie die fĂŒr Kauf und Verkauf bestellte Menge anzuzeigen.
- Kundenauftrag . Hier wird meistens eine Liste von Waren angezeigt, die sich in der Bilanz des ausgewÀhlten Lagers befinden und dem ausgewÀhlten Kunden zum Verkauf angeboten werden. Aktuelle Preise sollten ebenfalls angezeigt werden.
- Ănderung der Salden . Dieses Dokument wird verwendet, um die aktuellen Salden im Falle von Abweichungen vom tatsĂ€chlichen Betrag anzupassen. Alle Produkte werden normalerweise in der Auswahl angezeigt, wobei die tatsĂ€chliche Bilanz fĂŒr eines von ihnen eingegeben werden kann. Gleichzeitig wird dem Dokument ein Produkt mit einem Betrag hinzugefĂŒgt, der der Differenz zwischen dem tatsĂ€chlichen und dem aktuellen Saldo entspricht.
Lösung
Als nÀchstes werde ich zeigen, wie diese Logik basierend auf der offenen und kostenlosen
lsFusion- Plattform schnell und einfach implementiert werden kann. Lassen Sie uns als Beispiel eine Logik fĂŒr die Eingabe einer Bestellung erstellen.
FĂŒgen Sie zunĂ€chst einen Produktleitfaden ĂŒber die Standard-
CRUD- OberflÀche hinzu:
Wir erstellen das Konzept eines Lieferanten und geben in Form der Bearbeitung die Möglichkeit, die Produkte auszuwÀhlen, mit denen er arbeitet:
Deklarieren Sie die Ordnungslogik mit den Zeilen:
FĂŒgen Sie den Linien Produkte und Mengen hinzu:
Wir fahren direkt mit der Erstellung des von uns benötigten Auftragsbearbeitungsformulars fort. FĂŒgen Sie zunĂ€chst die Bestellung selbst und ihre Zeilen hinzu:
Auf diese Weise erhalten wir eine Standardschnittstelle fĂŒr die Arbeit mit Auftragspositionen durch HinzufĂŒgen und Entfernen.
Als nĂ€chstes fĂŒgen wir diesem Formular die Auswahlfunktion hinzu, die wir benötigen. Erstellen Sie dazu zunĂ€chst ein Objekt im Formular mit einer Liste aller Waren, in der nur diejenigen gefiltert werden, die beim ausgewĂ€hlten Lieferanten bestellen dĂŒrfen:
Wir haben das Design so eingerichtet, dass die Bestellpositionen und die Auswahl als Registerkarten eines Containers angezeigt werden:
Wir erstellen Hilfseigenschaften fĂŒr die Anzeige und Eingabe der Menge durch den Benutzer in der entsprechenden Spalte:
Die erste Eigenschaft berĂŒcksichtigt die Menge fĂŒr diese Bestellung und das Produkt in diesem Dokument. Die zweite findet die letzte Zeile (der Benutzer kann mehrere Zeilen mit einem Produkt eingeben).
Als NĂ€chstes erstellen wir eine Aktion, mit der der Benutzer den Wert in die entsprechende Spalte auf der Registerkarte Auswahl eingibt:
SchlieĂlich fĂŒgen wir dem Formular eine Spalte hinzu, die die Aktion angibt, die ausgefĂŒhrt werden soll, wenn der Benutzer versucht, seinen Wert zu Ă€ndern:
Es bleibt nur ein Formular mit einer Liste von Bestellungen zu zeichnen und es dem Navigator hinzuzufĂŒgen:
Das resultierende Formular sieht ungefĂ€hr so ââaus:
Alle Ănderungen, die an einer der Registerkarten vorgenommen werden, werden automatisch auf die andere Registerkarte ĂŒbertragen.
In realen ERP-Systemen werden dem Formular erheblich mehr Spalten und andere Elemente hinzugefĂŒgt. In einer dieser
Implementierungen sieht es beispielsweise so aus:
Lassen Sie uns sehen, wie diese FunktionalitÀt in anderen GeschÀftsanwendungen implementiert wird.
1C
In verschiedenen Konfigurationen von 1C weist die Auswahllogik bestimmte Unterschiede auf, aber das Prinzip ist mehr oder weniger dasselbe. Auf dem Dokumentbearbeitungsformular befindet sich eine SchaltflÀche AuswÀhlen, die einen Dialog mit der Warenauswahl aufruft:

In diesem Dialog können Sie die Ware wie folgt auswÀhlen:

Dieser Mechanismus weist mindestens zwei Unannehmlichkeiten auf.
Um die Menge des Produkts zum Dokument hinzuzufĂŒgen (und meistens kennt der Benutzer bereits die Menge, die er hinzufĂŒgen möchte), mĂŒssen Sie zuerst auf das Produkt doppelklicken, es den Zeilen hinzufĂŒgen und dann die Menge in den Zeilen Ă€ndern. DarĂŒber hinaus sieht der Benutzer in der Produktliste nicht, ob und mit welcher Menge dieses Produkt bereits hinzugefĂŒgt wurde. DarĂŒber hinaus âverbrauchtâ ein solches Schema zusĂ€tzlichen Speicherplatz, da Sie zwei Tabellen auf einem Bildschirm anstatt auf einem anzeigen mĂŒssen.
Zweitens, nachdem Sie die Zeilen direkt zum Dokument hinzugefĂŒgt haben und Sie erneut auf die SchaltflĂ€che AuswĂ€hlen klicken, beginnt die Auswahl âvon vorneâ. In der unteren Tabelle werden keine Zeilen angezeigt, und zum Zeitpunkt der erneuten Auswahl ist nicht klar, was bereits im Dokument enthalten ist und was nicht. Es verstöĂt auch gegen eine der wichtigen Regeln beim Erstellen der BenutzeroberflĂ€che: Wenn sich der Benutzer irrt, muss ihm die Möglichkeit gegeben werden, zurĂŒck zu gehen und den Fehler zu beheben. Hier stellt sich heraus, dass er nicht zur Auswahl von Waren mit denselben Daten zurĂŒckkehren kann wie vor dem Klicken auf die SchaltflĂ€che HinzufĂŒgen zum Dokument.
In 1C ist es jedoch möglich, dass Sie das obige Schema implementieren. Aus irgendeinem Grund wird jedoch in den typischen Konfigurationen, die auf der Site mit Demos verfĂŒgbar sind, ein anderes verwendet.
Microsoft Dynamics 365
Als Lösung habe ich Retail gewÀhlt (nur darin habe ich Àhnliche Funktionen unter
https://trials.dynamics.com gefunden ). Darin können Sie die Auswahl im Bestellformular auf zwei Arten aufrufen:

Die erste SchaltflÀche ist nach dem 1C-Schema implementiert (obwohl es viel weniger Spalten gibt), daher werde ich nicht weiter darauf eingehen.
Die zweite SchaltflÀche öffnet einen Dialog mit einer Liste von Produkten, in denen die Menge bereits in Spalten eingegeben werden kann. Dies geschieht jedoch auf sehr eigenartige Weise.
Erstens werden dort standardmĂ€Ăig nur Produktcodes angezeigt (auch ohne Namen). NatĂŒrlich verstehe ich, dass Sie dort Erweiterungen erstellen und andere Spalten einfĂŒgen können, aber dieses Verhalten in der Basisversion zu sehen, ist etwas seltsam.
Zweitens war Microsoft anscheinend so begeistert von dem Design, dass sie aus irgendeinem Grund bei der normalen Verarbeitung von Bildlaufdaten, der Verarbeitung von Tricks und Ereignissen punkten konnten. Es sieht ungefĂ€hr so ââaus:

WĂ€hrend des normalen Tastaturbetriebs werden die aktuellen Serien beim erneuten Lesen von Daten stĂ€ndig umgeschaltet. Gleichzeitig können Sie erst mit der Eingabe beginnen, nachdem Sie auf die gesamte Ereignisverarbeitung gewartet haben. Andernfalls wird die Menge entweder ĂŒberhaupt nicht oder in der falschen Reihe eingegeben. Wie echte Benutzer damit arbeiten, bleibt mir ein RĂ€tsel. Anscheinend nutzen nur wenige Menschen diese FunktionalitĂ€t speziell. Nun, oder es sind die EinschrĂ€nkungen der Demo, aber im Betrieb funktioniert alles gut.
Fazit
Das beschriebene Dokumenteneingabeschema ĂŒber eine separate Auswahlregisterkarte wurde von unseren Benutzern sehr geschĂ€tzt.
In der Praxis kann dieses Konzept auf verschiedene Weise kompliziert sein. Zeigen Sie beispielsweise anstelle einer Produktliste eine Artikelliste mit der Möglichkeit an, fĂŒr einzelne Merkmale unterschiedliche Mengen einzugeben. Oder in einem der Dokumente befanden sich Lager in den Zeilen, und es war erforderlich, die Mengen fĂŒr jedes dieser Lager in den Spalten festzulegen.
Ein solches Schema kann beispielsweise in derselben Reaktion implementiert werden, indem die aktuellen Zeilen des Dokuments als Status verwendet und mit zwei Komponenten auf zwei verschiedenen Registerkarten angezeigt werden. Es sollte jedoch beachtet werden, dass es in der Tabelle viele EintrĂ€ge mit Waren geben kann und Sie die sogenannte âunendliche Schriftrolleâ implementieren mĂŒssen. DarĂŒber hinaus ist es ratsam, dem Benutzer die Möglichkeit hinzuzufĂŒgen, Produkte in dieser Liste zu sortieren und zu filtern (und dies muss auf dem Server und nicht auf dem Client erfolgen, um keine zusĂ€tzlichen Daten dorthin zu ziehen). All dies wird fĂŒr den Entwickler zu einer eher nicht trivialen Aufgabe.
In der lsFusion-Plattform ist diese FunktionalitÀt sofort implementiert und erfordert nur den oben beschriebenen Code. Sie können versuchen, wie es funktioniert, und wenn Sie möchten, können Sie den Code online auf der entsprechenden
Seite Ă€ndern. Hier ist der gesamte Quellcode, der auf der Registerkarte Plattform und dann durch Klicken auf Wiedergabe eingefĂŒgt werden kann: