BASE: Eingabehilfe

Istzustand:

Eine Datenbank hat die DB-Felder AlterInhalt und NeuerInhalt.

Beide sind mit Werten belegt (z.B. Datum).

Nach Eintritt eines Ereignisses macht es sich notwendig die Inhalte dieser beiden DB-Felder zu bearbeiten.

In der Praxis kommt es des Öfteren vor, dass der Wert aus dem DB-Feld NeuerInhalt nun in das DB-Feld AlterInhalt verfrachtet werden muss. Und in das DB-Feld “NeuerInhalt” muss ein neuer Wert eingegeben werden bzw. auch oft erst einmal LEER bleiben.

Der Dialog “Global ersetzen…” kann nicht immer eingesetzt werden, da die Werte je Datensatz auch (oft) unterschiedlich sein können.

Es könnte also einen kleinen Dialog geben, der auf den jeweils aktuellen Datensatz wirkt.

Dort wird das DB-Feld festgelegt, aus dem ausgeschnitten wird.

Dort wird das DB-Feld festgelegt, in dem das Ausgeschnittene eingefügt wird.

Wurden diese beide Einstellungen vorgenommen, erscheint ein Button XYZ im Eingabeformular der DB-Tabelle.

Ein Klick auf diesen Button bewirkt, dass der Wert von NeuerInhalt ausgeschnitten und in AlterInhalt eingefügt wird.

Abschließend wird manuell ein neuer Wert in das nun leere DB-Feld NeuerInhalt geschrieben.

Und weiter geht es dann zum nächsten Datensatz…

Die Anwendung mit dem Ausschneiden aus einem Feld und Einfügen in ein zweites Feld erscheint mir zu speziell als dass man dafür gleich eine eigene Funktion in Papyrus vorsehen sollte.

Allerdings wäre es tatsächlich schön, wenn man auch Buttons als zusätzliches Eingabe-Element im Formular hätte und diesen beliebige Formeln als Aktion hinterlegen könnte. Fürs erste würde hierzu der schon vorhandene Formelinterpreter in Papyrus ausreichen. Anders als bei Rechenfeldern würde die Formel aber erst bei einem Klick auf den Button ausgeführt werden.

Den von Dir benötigten Fall könnte man dann einfach mit einem Button lösen, der folgende Formel ausführt:

alterWert = neuerWert
neuerWert = “”

Naja, speziell ist eine derartige Bearbeitung von DB-Felder in einer Datenbank nicht.

Oft ist es ja so, das programmierte Datenbankjobs (bzw. kleine eigene Scripts (Lua - war hier schon Thema)) derlei Sachen übernehmen und dem Anwender wird mittels Oberfläche gesagt möchten Sie dies, das oder jenes tun…Button-Klick und der Job ist erledigt.

Glucose ich weis nicht, ob ich das jetzt richtig verstanden habe; einen oder mehrere ich nenne sie mal “Vorrats”-Buttons wohl in j e d e m(?) Eingabeformular, die auch durchaus einmal nicht benötigt werden, weil kein Bedarf in der einen oder anderen Datenbank da ist? Das würde ICH uncool finden.

Wenn, dann müssten die Buttons je DB-Tabelle (Eingabeformular) ein/ausblendbar sein. Vielleicht eine Anwender-Schalterleiste (Aktionsleiste)

Hoffentlich ist es so einfach, wie Du denkst.

Immerhin muss bei Klick auf so einen Button zunächst der aktuelle Datensatz lokalisiert und dieser dann in den Bearbeitungsmodus gesetzt werden. Nun erfolgt die hinterlegte ZUWEISUNG. Abschließend wird das Ganze mit Klick auf “Setzen” gespeichert.

Und dann noch die vom Programmierer zu lösende Aufgabe, dass BASE mitgeteilt werden muss, dass die Beteiligten DB-Felder hier mal keine Rechenfelder im papyrus-Sinne sind.

Ich würde Deine Lösung genauso begrüßen.

Allerdings einen Button der erst angezeigt wird, wenn er tatsächlich gebraucht wird finde ich besser.

(Übrigens zum Thema “Eingabehilfe”. Ein grafischer Monatskalender für die BASE-Datentypen Datum | Zeitpunkt fände ich auch hilfreich. Macht einfach mehr her und der Überblick ist auch größer (Monat)). Ein Klick in den Kalender und der Zeitpunkt ist übernommen…

Mit speziell meinte ich den von Dir beschriebenen Fall. Wenn man sich schon Buttons für Papyrus wünscht, dann sollten sie möglichst flexibel sein und nicht nur ein paar Feldinhalte tauschen können.

Richtig. Da ich aber davon ausgehe, dass Papyrus in absehbarer Zeit keine eigene Skriptsprache bekommen wird, könnte die Nutzung der schon vorhandenen Funktionalität (plus ein paar Erweiterungen) eine realistischere Chance auf Umsetzung haben. Deshalb der Vorschlag mit den Buttons, die frei definierbare Funktionen ausführen sollen.

Ich möchte in einem Eingabeformular nicht nur Textfelder, Popups oder Rahmen für Bilder einsetzen, sondern auch Buttons, die auf Knopfdruck entsprechend hinterlegte Funktionen aufrufen. Formulare ohne Buttons sind dabei wie bisher auch möglich.

Diese Schritte sind bereits durchgeführt, sobald ein Eingabeformular geöffnet wird.