Datensatz sperren
Hallo, ist es eigentlich möglich eine Sperre für die Datensätze einzurichten, so daß man nicht versehentlich in einem falschen Datensatz etwas ändert.
Gruß
Thomas
29 Antworten
-
Hallo Thomas,
Auf Tabellenebene gibt es ein Feld "Schreibbar wenn". Dort kansst du die Bedingungen rein shreiben. Z.B ein Ja/Nein Feld namens Gesperrt erstellen und Die Bedingung Gesperrt!=true schreiben. so kannst du die Bearbeitung der Felder mit einem Klick sperren indem du das Feld Gesperrt anklickst. Problematisch wird es die Sperre aufzuheben - noch Mal kliecke geht nicht (ist ja alles gesperrt). Abhilfe schaffen die Befehlsschaltflächen, diese kannman auch in geperrtem Zustand anklicken und die Skripte werden ausgeführt. Also zwei flechen erstellen: Sperren und Bearbeiten.
Bei Sperren Skript
Gesperrt:=true
und die Sichtbarkeit auf
Gesperrt != true
Bei Bearbeiten Skript
Gesperrt:=false
und die Sichtbarkeit auf
Gesperrt = true
Wenn du beide Felder jetzt gleich groß machst und nacheinander platzierst, griegst du eine Anwendung zum Sperren/Editieren.
Leo
-
Hallo Leo, super. Klappt einwandfrei. Ist sicher auch für andere interessant.
Gruß
Thomas -
Hallo Leo,
ich stelle mich wieder mal an! Gibt es da ein Beispiel? "Auf Tabellenebene gibt es ein Feld "Schreibbar wenn". Dort kansst du die Bedingungen rein shreiben. Z.B ein Ja/Nein Feld namens Gesperrt erstellen und Die Bedingung Gesperrt!=true schreiben" und auch:" Wenn du beide Felder jetzt gleich groß machst und nacheinander platzierst, griegst du eine Anwendung zum Sperren/Editieren."
Irgendwie klappt das nicht so.
Gruß tschijoh
-
Es gibt bei Webinar DE 2018 eine Datenbank 47_Toggle Eingabe Lock_input Version 2 von Birger.
Bist du dort angemeldet?
Leo
-
...leider nein
-
Hallo Tschijoh, an welcher Stelle klappt es nicht?
Gruß Thomas -
Hallo Thomas und Leo,
...vielen Dank, es hat geklappt. Mit etwas ruhe ist man doch schneller! Schönen Abend.
Gruß Jens
-
Hab da sogar ne Lösung entwickelt, dass man an das entsperren eine Passwortabfrage dranknüpft, damit nicht einfach jeder entsperren kann. Bei Interresse kann ich eine Beispieldatei zur Verfügung stellen.
-
Sehr geehrter Herr Pulver, das würde mich Interressieren und würde mich über die Beispieldatei freuen.
Gruß Jens
-
Hier die Datenbank:
https://drive.google.com/open?id=17ucUiYFIUlJDwmaqqkZlerwWn_WSZL3PWenn ein neuer Datensatz in "Maske" angelegt wird und mit 'OK' abgeschlossen, wird er gesperrt. Nun muss man durch Eingabe des Masterkennwortes die Felder zur Bearbeitung öffnen.
-
Vielen Dank an die Beteiligten hier. Habe mir auch mal einen Sperrbutton eingebaut und das funktioniert super.
-
Eine einfachere Lösung: Schreibbar wenn: Feld = 0 or userHasRole("supervisor"). Feld ist eine Verknüpfung, die besonders schützenswert sind. Handelt es sich um ein normales Feld, nimmt man Feld = null or userHasRole("supervisor"). Man spart sich zusätzlich Felder und Button sowie auch Masterpasswörter.
-
Man kann natürlich auch "admin" nehmen. Dieser kann aber grundlegende Ändeurngen vornehmen, während der "supervisor" nur den Betriebsablauf steuert.
-
Oh mein Gott, löscht bitte meine ersten Eintrag. ( Die anderen waren schuld!)
Sehr geehrter Herr Pulver,
ich würde mich ebenfalls sehr über Ihre Beispielsdatei freuen.
Leider klappt der DL nicht mehr.
Gruß Götz -
Hallo an alle.
Der Beitrag ist gut. Hat mir bei meiner Erstlleung der DB geholfen.
Frage zu Ausnahmen.
Ich habe 3 Check-Boxen zum Anzeigen von Untertabellen / Feldern.
Wenn die Eingabe Maske nach dem Beispile gespert ist kann ich die Check-Boxen nicht bearbeitn.
Gibt es eine Möglichkeit die Check-Boxen nicht durch die Spere zu blocken?
Gruß
Brani
-
Hallo,
du kannst auch alle anderen Felder einzeln sperren.
Ansonsten kannst du aber auch Befehlsschaltflächen (die je nach Inhalt der Check-Boxen ein- oder ausblendest) benutzen, um die Checkboxen zu bearbeiten.
Gruß, Jörg
-
Hallo,
ich finde die Funktion im Beispiel 047 sehr interessant, habe dazu zwei Fragen:
1. Wenn ich Änderungen per Script vornehmen möchte, muss ich wohl als erstes das Flag ändern, um die Änderungen freizugeben. Ändere ich dann im Script das Feld, welches für die Sperrung zuständig ist, wird dann auch die Sperrung wieder aktiv?
2. Ist es möglich die Sperrung durch das Schließen des Datensatzes vorzunehmen?
Danke und viele Grüße
Jörg
-
1 / Ja, das ist ein Problem. Buttons werden aber immer funktionieren.
2 / Nein. Es gibt nur folgende Trigger:
- onCreate - Beim Erstellen eines Datensatz'
- onChange - Beim Ändern eine Datensatz' oder Felds
- onOpen - Beim Öffnen der Datenbank
Birger -
Danke, Birger.
Ich habe eine Version 3 der Datenbank 047 (047_3) hochgeladen. Vielleicht ist diese Vorgehensweise hilfreich.
-
Ich habe das mit dem sperren eines Datensatzes so gelöst, dass ich einen Button mit der Bezeichnung „Datensatz schließen“ eingebaut habe, mit dem ich den Datensatz schließe.
Als Code hinterlegt
Gesperrt:= true;
closeRecord()
Man muss natürlich dann darauf achten, den Datensatz immer so zu schließen. Am besten funktioniert das bei mir bei einem Vollbildformular, dann ist man nicht so geneigt auf einen anderen Datensatz an der Seite zu klicken oder das kleine x in der Ecke zu nutzen!
Gruß
Mirko
-
Hallo Mirko,
so habe ich es letztendlich auch gelöst. Wie schon geschrieben, habe ich die Beispieldatenbank 047 ergänzt und als 047_3 hochgeladen.
Danke und viele Grüße
Jörg
-
Hallo zusammen,
gibt es eine Möglichkeit, auch die Bearbeitung einer verknüpften Tabelle zu sperren? Die verknüpfte Tabelle soll nur für diesen einen Datensatz gesperrt sein. Sie selbst kann aber weiterhin bearbeitbar sein.Hintergrund / Beispiel:
Ich habe verschiedene Marketing-Kampagnen (Tabelle). Außerdem habe ich Ansprechpartner (Tabelle). Einer Marketing-Kampagne weise ich mehrere Ansprechpartner zu (als verknüpfte Tabelle). Wenn die Kampagne beendet ist, soll sie nicht mehr bearbeitet werden können (Sperren / entsperren). Die Sperre funktioniert aktuell nicht für die Ansprechpartner, also die verknüpfte Tabelle. Lässt sich das ändern?
Viele Grüße
Fabian -
Hallo Fabian,
Du kannst auch den Feldstatus einer verknüpften Tabelle als Kriterium zur Bearbeitbarkeit heranziehen. Die Tabelle Ansprechpartner lässt Du bearbeitbar, wenn z.B.
'Marketing-Kampagnen'.Sperre = true
'Sperre' wäre in dem Beispiel ein Ja/Nein-Feld in der verknüpften Tabelle 'Marketing-Kampagnen'.
lg, Torsten
-
Hallo zusammen,
ich würde gerne einen "Master-Button" realisieren mit dem ich in allen Datensätzen einer Tabelle "Gesperrt:=true" setzen kann, quasi eine Massendatenänderung auf Knopfdruck. Leider komme ich auf keinen geeigneten Ansatz bzw. keine geeignete Formel. Oder ist dies generell nicht möglich?
Viele Grüße
Malte
Content aside
- vor 4 JahrenZuletzt aktiv
- 29Antworten
- 11117Ansichten