Suche ganz simple Eingabe-Datenbank (Ordererfassung)

    • Offizieller Beitrag

    stimmt abs auch gerade gefunden

    Zitat

    "Eingabe aktiviert" funktioniert nur, wenn der Feldstil auf "Betriebssystem" gesetzt ist.


    Verwende wenn möglich Rollen. Ist dies nicht möglich dann Gruppen. Ist dies auch nicht möglich dann UserName.


    Warum die Reihenfolge?
    Rollen hat der Entwickler im Griff,
    Gruppen können im Adressbuch verändern werden, dann funktionieren die Rechte nicht mehr.
    User können ihren Namen (Heirat) oder ihre Zulassungsstelle ändern. OK ist alles richtig eingestellt, zieht dies der Adminp wieder gerade, aber wenn der User das Unternehmen verlässt, dann hat kein Autor mehr Zugriff auf das Dokument und ein (mind.) Editor muss das Autoren-Feld neu setzen.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Guten Morgen,


    danke erstmal für die zahlreichen Antworten - bin am testen komme aber auf keinen grünen Zweig.
    Möchte es nun einem Autorenfeld machen, sprich der User soll das Dokument anlegen aber später nicht mehr bearbeiten können, das reicht aus.
    Ein Autorenfeld im Formular habe ich angelegt, die Rolle habe ich dann bei "Default Value" einfach eingetragen ohne @Funktion oder ähnliches, funktioniert leider nicht. Wie trage ich denn die Rolle richtig ein, damit dies funktioniert??


    Danke schonmal und Grüße,
    Clemens

  • Ok, vielleicht habe ich vergessen das zu schreiben, die Authoren können nun nur ihre eigenen documents bearbeiten, das mit fremden klappt schon nicht mehr, das ist sehr gut.
    Ziel wäre dann wenn sie nach dem ersten speichern ihres eigenen Documents dieses auch nicht mehr bearbeiten können.


    Gruss

  • Im QuerySave-Event halt die Rolle rausnehmen: @SetField("author_field"; "")

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • *Ziel wäre dann wenn sie nach dem ersten speichern ihres eigenen Documents dieses auch nicht mehr bearbeiten können.*


    Dann dürfen die User nicht ins Autorenfeld, dann können sie zwar ein Dokument erstellen, aber nach dem ersten Speichern nicht mehr bearbeiten.

  • Moment, du änderst das Autorenfeld im QuerySave?


    Das geht in der Regel in die Hose, wenn du im QuerySave dem User , der gerade speichern will, die Rechte entziehst, kann er das nicht mehr abspeichern.

  • du willst, dass deine User ein Dokument erstellen, und nachher nicht mehr bearbeiten können, richtig?


    dann mach sie zum Autor, gib ihnen das Recht zum Erstellen von Dokumenten. Können sie nach dem ersten Speichern nichts mehr machen.


    Ansonsten musst du beim Speichern einen Flag setzen, den du im Querymodechange und im QueryOpen abfragst, wenn ja, dann nicht zu bearbeiten.


    Was sicher in die Hose geht, ist, dem User im Moment des Speicherns das Recht hierzu zu entziehen, dann wird das Speichern nämlich nicht mehr durchgeführt.


    Autorenfelder ändern würde ich nur über periodische Agenten machen oder so.


    aber vielleicht liegt dein Fehler auch noch wo ganz anders.

  • Ich habs grad mal versucht nachzustellen, das tut bei mir. Notes 8, Domino 6.5.5 und 8

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Ok, habe gerade folgenden Ansatz:


    Im Queryopen:
    If source.IsNewDoc Then continue=True Else continue=False


    Jetzt sollte ich nur noch afragen können, ob der User "Mitglied" einer Rolle ist, kann man das hier evtl. mit einbauen?

  • So...habe das nun über die Querysafe gereget, sieht jetzt am ende so aus, nicht ganz professionell aber funktioniert :)



    Sub Querysave(Source As Notesuidocument, Continue As Variant)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Set db = session.CurrentDatabase
    roles = db.QueryAccessRoles(session.UserName)

    If source.IsNewDoc Then continue=True Else usercheck = 1
    If usercheck = 1 Then

    Forall role In roles
    msg$ = msg$ & role & Chr(10)
    If role = "[User]" Then continue=False Else continue=True
    End Forall
    End If
    End Sub



    @DauIn: :pint: