Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Sabine_Schiller am 09.03.10 - 15:06:01

Titel: Richtextfeld sperren
Beitrag von: Sabine_Schiller am 09.03.10 - 15:06:01
Hallo,

hab da eine Frage. Wie kann ich nach Bearbeitung ein Richtextfeld sperren damit es anschließend nicht mehr bearbeitet werden kann?

Gibt es eine Option ein Feld über LotusScript nachträglich auf Computed zu setzen ?

Vielen Dank im Voraus

Titel: Re: Richtextfeld sperren
Beitrag von: DerAndre am 09.03.10 - 15:14:45
Hast Du es schon mit einem Zugriffskontrollierten Abschnitt versucht?
Titel: Re: Richtextfeld sperren
Beitrag von: Sabine_Schiller am 09.03.10 - 15:20:41
ICh weiss nicht ob das so richtig ist....

Ich will ein Feld haben das von jedem bearbeitet werden soll. Am Ende soll es ein bestimmter Status gesetzt werden und das Feld nicht mehr bearbeitbar sein.....

Kann ich das mit dem was meinst machen?

Titel: Re: Richtextfeld sperren
Beitrag von: Jens Winkelmann am 09.03.10 - 15:35:39
Möglichkeit A)

Du kannst den Entering Event des Rich-Text Feldes verwenden.
Wenn das Feld nicht mehr bearbeitet werden soll, dann hüpfe immer automatisch in ein anderes Feld.
Hierdurch kann der Benutzer den Inhalt nicht mehr verändern.
Jedoch sieht man dem Rich-Text Feld dieses nicht an.
Man sollte eventuell über dem Feld einen entsprechenden Hinweis einblenden.

Dim nuiw As New NotesUIWorkspace
Call nuiw.CurrentDocument.GotoField( "AnderesFeld" )

Möglichkeit B)
Rich-Text Feld über eine Subform einblenden.
Wenn das Feld bearbeitbar sein soll wird die Subform mit dem bearbeitbaren Feld geladen.
Im anderen Fall wird eine Subform mit einem Computed Rich-Text Feld geladen, welches den Rich-Text berechnet.
Titel: Re: Richtextfeld sperren
Beitrag von: DerAndre am 09.03.10 - 15:37:04
Also dritter Reiter.

Berechnet zur Anzeige

Formel: @if(Status = "Bearbeitbar";@UserName;"Keine Bearbeitung möglich")

Sollte so gehen.
Titel: Re: Richtextfeld sperren
Beitrag von: cebolina am 09.03.10 - 15:55:00
Noch ein Tipp:

2. Reiter: Abschnitt "für Editoren" und "Andere außer Editoren" alles auf "Abschnitt automatisch erweitern".
5. Reiter: Absatz verbergen

Dann sieht kein Mensch, dass es sich um einen Abschnitt handelt.

Meine Formel lautet übrigens i.d.R. so:
@If(Status = "bearbeitbar" ; "" ; " - ")

Gruß Stefan
Titel: Re: Richtextfeld sperren
Beitrag von: koehlerbv am 09.03.10 - 18:47:43
@Jens Winkelmann: Ich halte beide Varianten für Verfahren, die man genau nicht einsetzen sollte.

Möglichkeit A): Security by obscurity. Kann ausgetrickst werden. Und wehe, man denkt an die "Lösung" nicht mehr, wenn man "AnderesFeld" entfernt oder umbenennt oder als nur mehr berechnet erklärt oder ...

Möglichkeit B): Von der Arbeit mit einem RTI ("I", nicht "F"!) mit zwei unterschiedlichen Feldern rät selbst IBM Lotus ab. Sporadisch kann es Dir damit das RTI zerlegen, und das ganze Dokument ist nicht mehr zu öffnen.

Andrés und Stefans aufgezeigter Weg ist der, der genau für diese Fälle vorgesehen ist. Und der funktioniert auch sicher.

Bernhard
Titel: Re: Richtextfeld sperren
Beitrag von: botschi am 10.03.10 - 10:59:06
Also dritter Reiter.

Berechnet zur Anzeige

Formel: @if(Status = "Bearbeitbar";@UserName;"Keine Bearbeitung möglich")

Sollte so gehen.

Das verstehe ich nicht, kannst Du das nochmal in ganzen Sätzen beschreiben?
Danke!

Matthias
Titel: Re: Richtextfeld sperren
Beitrag von: cebolina am 10.03.10 - 11:12:27
3. Reiter in den Eigenschaften des Maskenabschnitts
Titel: Re: Richtextfeld sperren
Beitrag von: botschi am 10.03.10 - 11:43:09
Und dann sieht man zwar noch den Inhalt des RTI, aber kann es nicht mehr bearbeiten?

Matthias
Titel: Re: Richtextfeld sperren
Beitrag von: DerAndre am 10.03.10 - 11:47:39
Jepp.

Sinnier... bin mir jetzt aber nicht 100% sicher wegen der ACL. Ich glaub Autor ist da angebracht.
Titel: Re: Richtextfeld sperren
Beitrag von: botschi am 12.03.10 - 14:20:19
Und wenn der User aus der Ansicht heraus STRG + B drückt?

Bei mir läuft das ganz super mit dem Abschnitt, nur in dem oben erwähnten Fall nicht...
Mach ich was falsch oder greift der Trick in dem Fall nicht?

EDIT:
Ich hantiere mit Rollen, herum an der Stelle. Also mit Rolle Admin kann man das RTI bearbeiten (egal in welchem Zustand das Dok ist) und ohne Rolle ab Zustand "1" nicht mehr.


Matthias
Titel: Re: Richtextfeld sperren
Beitrag von: koehlerbv am 12.03.10 - 14:52:15
Der Weg zum Erreichen des EditMode spielt hier keine Rolle (oder wurde da mit R8 was verbockt? Kann es gerade nicht testen).

Rollen sind eine gute Idee. Deine Frage ist aber nur zu beantworten, wenn Du die Formel für den Zugriff veröffentlichst.

Bernhard
Titel: Re: Richtextfeld sperren
Beitrag von: botschi am 12.03.10 - 15:00:42
Formel:
Code
@If(
status = "1";
@IsNotMember("[Admin]";@UserRoles);1;0;
@True)

Also wenn Dok schon eingereicht (dann status = "1"), dann darf nur noch der Inhaber der Rolle "Admin" an dem Item etwas ändern.

EDIT:
So auch nicht erfolgreich
Code
@If(
status = "1" &
@IsNotMember("[Admin]";@UserRoles);1;0)

Matthias