0

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

null
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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

    • CTRAVEL
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, super. Klappt einwandfrei. Ist sicher auch für andere interessant.
    Gruß
    Thomas

    • tschijoh
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Es gibt bei Webinar DE 2018 eine Datenbank 47_Toggle Eingabe Lock_input Version 2 von Birger.

    Bist du dort angemeldet?

    Leo

    • tschijoh
    • vor 6 Jahren
    • Gemeldet - anzeigen

    ...leider nein😒

    • CTRAVEL
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Tschijoh, an welcher Stelle klappt es nicht?
    Gruß Thomas

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    • tschijoh
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Thomas und Leo,

    ...vielen Dank, es hat geklappt. Mit etwas ruhe ist man doch schneller! Schönen Abend.

    Gruß Jens

    • Dirk_Pulver_2020
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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.

    • tschijoh
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Sehr geehrter Herr Pulver, das würde mich Interressieren und würde mich über die Beispieldatei freuen.

    Gruß Jens

    • Dirk_Pulver_2020
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hier die Datenbank:
    https://drive.google.com/open?id=17ucUiYFIUlJDwmaqqkZlerwWn_WSZL3P

    Wenn 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.

    • Pyromixer.1
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Vielen Dank an die Beteiligten hier. Habe mir auch mal einen Sperrbutton eingebaut und das funktioniert super.

    • Andreas_Schmitz
    • vor 6 Jahren
    • Gemeldet - anzeigen

    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. 

    • Andreas_Schmitz
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Man kann natürlich auch "admin" nehmen. Dieser kann aber grundlegende Ändeurngen vornehmen, während der "supervisor" nur den Betriebsablauf steuert. 

    • Urban
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • BraniZ
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Team Lead Customer Service
    • joerg
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Joerg.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Birger_H
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Joerg.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke, Birger.

    Ich habe eine Version 3 der Datenbank 047 (047_3) hochgeladen. Vielleicht ist diese Vorgehensweise hilfreich.

    • Mirko.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Joerg.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Selbständig
    • Fabian_Wieland
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Admin.3
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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