Beiträge von helmie

    Einen einfachen Weg gibt es nicht (zumindest kenne ich keinen).
    Wenn Du Notes 6 hast, dann kannst Du für jedes Feld ein Event programmieren, das sich "OnChange" nennt. Damit kann man Änderungen relativ einfach abfángen.


    Falls das bei Dir nicht geht, oder Dir zu schwierig wird, dann bleibt Dir nur übrig, beim öffnen des Dokuments (bzw. beim ändern des Bearbeitungsmodus) die alten Werte der Felder, die überwacht werden sollen in ein neues Feld zu schreiben und beim speichern zu vergleichen ob sich eine Änderung ergeben hat. Und wenn ja, dann eben diesen Wert dem "Historienfeld" hinzufügen.


    Ist alles nicht wirklich ganz einfach und auf jeden Fall ein nicht unerheblicher Aufwand...

    Hallo,


    dazu gab es hier vor kurzem schon mal einen Thread.
    Da ging es glaub ich zwar drum ein RTFeld zu sperren, ist aber letzten Endes das gleiche.
    Beispiel für die Felder die nur vom Admin zu ändern sind:
    @if(status = "DeinStatus"; "[Admin]"; "")
    ("" bedeutet jeder darf)

    Wenn Du die Option "Auswahl in der Agentenliste" wählst setzt Notes Klammern um den Agentennamen (wohl um zu zeigen das sie versteckt sind). Entsprechend müssen die Schaltflächen angepasst werden. Statt
    @Command([ToolsRunMacro]; "Agentenname")
    muss es dann heoßen
    @Command([ToolsRunMacro]; "(Agentenname)")


    Dann laufen die Dinger auch wieder

    Wollen wir die Sache abkürzen?
    Schick mir einfach eine PM mit Deiner Mailadresse. Dann schicke ich Dir meine lokale Testdatenbank, bei der das eben nochmal alles funktioniert hat. Da musst Du dann nur noch die ACL anpassen (Konsistente ACL nicht vergessen) und kannst dann damit testen. Vielleicht liegt ja wirklich der Fehler in einem winzigen Detail.
    Was hast Du eigentlich für eine Notes-Version?

    Nicht ganz so schnell verzweifeln. Notes hat manchmal eine eigene Logik... ;)


    Im Querysave kannst Du auch von LotusScript auf Formelsprache umstellen. Wenn Du aber im Script schon die ganze restliche Sache drin hast, dann schieb noch (sicherheitshalber) 2 uidoc.refresh ein


    carsten: Ja, eigentlich sollte es auch ohne den zusätzlichen refresh gehen, aber ich hatte den Fehler auch schon mal (zumindest in Notes 4). Daher gehe ich jetzt immer auf Nummer Sicher, siehe oben mit der eigenen Logik :)

    Ich hab das bei mir grad mal durchprobiert. Es funktioniert sowohl lokal (bei aktivierter konsistenten ACL, sonst nicht) als auch auf dem Server.
    Und auch der @command([viewrefreshfields]) funktioniert im Querysave

    Okay, kein Problem.
    Wenn Du sagst, das beim speichern der status auf 3 oder 6 gesetzt wird, wie machst Du das? Ist das Feld Status berechnet?
    Das ist auch nicht schlimm. Versuch nur mal, vor dem speichern noch 2 Aktualisierungen der Feldinhalte hinzubekommen.


    Und noch ein Tip zur Fehlerbehandlung:
    Ich erstelle mir für diese Zugriffsformeln auf berechnete Abschnitte immer ein Feld. Da kann ich dann wenigstens den Feldinhalt auslesen um zu sehen, ob meine Berechnungsformel stimmt. Dieses Feld kannst Du dem Abschnitt als "Formel" einstellen zur Berechnung des Zugriffs.
    Mach das ruhig mal: Erstelle ein neues Feld in der Maske, Typ Text und Berechnet. Da machst Du dann die Formel von weiter oben rein. Bei der Berechnungsformel für den Abschnitt trägst Du dann nur den Feldnamen ein.
    Falls Dein Dokument über eine Schaltfläche gespeichert und geschlossen wird, trage da die ViewRefreshfields (s.o.) zweimal ein. Dann schaue, was in dem neu erstellten Feld als Wert steht.

    Wie kommt denn der Wert in das Feld "Status"? Über eine Schaltfläche wenn eine Person diese klickt? Falls das so ist, solltest Du vor dem speichern ZWEIMAL ein @command([ViewRefreshFields]) ausführen. Damit hatte ich auch schon mal Probleme ausräumen können.

    Der Typ der Zugriffsformel für den Abschnitt soll natürlich auf "Berechnet" stehen. Sorry, hab ich eben vergessen zu schreiben. Bei "Bearbeitbar" ist letzten Endes der Zugriff immer umstellbar.
    Also die Maske nochmal im Designer öffnen, Eigenschaften des Abschnitts wählen und bei Formel das "Berechnet" einstellen. Danach sollte es gehen. Hab ich bei mir mehrfach im Einsatz

    Leg das Feld am einfachsten in einen Abschnitt mit kontrolliertem Zugriff.
    -> Erstellen\Abschnitt\Kontrollierter Zugriff <-
    Die Zugriffsformel müsste dann etwa so aussehen:
    ->@if(status<2; ""; "Abschnitt gesperrt")<-


    Das gibt zwar keine 100%-ige Sicherheit (wer weiß wies geht kriegt trotzdem Änderungen rein), aber für "Normaluser" ausreichend.

    Hast Du die View in eine Seite oder eine Maske eingebunden?
    Bei einer Maske kannst Du die Bedingung für die "single-categorie" in einem Feld berechnen lassen. Wenn Du dieses Feld (testweise) nicht versteckst kannst Du immerhin das Ergebnis der Berechnung sehen