Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Catrex am 28.06.04 - 09:34:40
-
Hallo, zunächst einmal wünsche ich allen einen wunderschönen Montagmorgen.
Ich hätte eine Frage bzgl. Textfelder. Und zwar bin ich gerade dabei so eine Art Begleitblatt zu div. Auftragsabläufen in einer DB zu erstellen. Es soll dann so laufen das man dieses Dokument aus einem Hauptdokument raus erstellen bzw. falls schon vorhanden aufrufen kann. In dem Begleitblatt selber sollen dann farblich alternierende Abschnitte sein wobei immer nur dann ein neuer Abschnitt sichtbar wird wenn ein vorheriger ausgefüllt worden ist.
Soweit sogut !
Nun zu meiner Frage: Ist es möglich ein Textfeld nach der Eingabe durch einen Benutzer sperren zu lassen so das ein anderer Benutzer dieses nicht mehr ändern kann. Also das nur noch der "Schreiber" selber seinen Eintrag editieren kann ? Wenn ja wie müsste ich an die Sache rangehen ?
Für eure Hilfe jetzt schon mal ein dickes Dankeschön ! ! !
mfg
Sebastian ! ! !
-
Da sind mir 3 mögliche Lösungen bekannt:
a) Über berechnete Teilmasken
b) Im Entering der RTF ein LotusScript, wo Du Bedingungen abfragst;
wenn User nicht ändern darf: uidoc.gotofield( "IRGEND EIN ANDERES FELD" )
c) über zugriffkontrollierte Abschnitte
-
Ich verwende meistens die Variante c).
Aber: Alles schützt vor dem Agent nicht, den der geneigte User theoretisch schreiben kann...
Dann müsste man da schon mit dynamischen Autorenfeldern arbeiten.
Andreas
-
Mmmh, im grunde genommen ist es nicht ganz so wichtig wäre halt nur nett gewesen. Über Zugriffsrechte ist nicht sogut, denn es sind sagen wir mal so 5-10 Personen die eh nur das recht haben in dieser Maske einen Kommentar zu schreiben. Aber es soll halt verhindert werden, dass man eingestellte Kommentare nachträglich noch ändern kann, oder wenn dann halt nur auch derjenige der ihn geschrieben hat. Halt so wie ein Forum. ;)
-
... mit der Variante b.) solltest du eigentlich gut fahren...
... von a.) halte ich nicht viel. Teilmasken ziehen unnötig an der Performance, und reagieren erst nach einem erneuten Öffnen des Dokumentes. Ausserdem hast du dann redundante Felder - was einen vermehrten Pflegeaufwand mit sich bringt. In dieser Teilmaske sit das RTF dann berechnet, was unerwünschte Nebeneffekte haben kann...
ata
-
Hallo,
haltet mich für dumm oder so, aber mir ist das noch nicht so ganz klar. Lässt sich das denn auch realisieren wenn ich in einem dokument 10 RTF habe. also das jedes eine anderen Änderungsberechtigung bekommt.
Könnte jemand diese Idee mit dem Script im Bereich Entering noch ein wenig auschmücken ?
mfg
Sebastian ! ! !
-
... so auf die schnelle und ungeprüft
Dim ws As New NotesUIworkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
If Uidoc.CurrentField = "Dein_RT-FELDNAME" Then uidoc.GotoField "Dein_ZIEL_FELDNAME"
ata
-
Das geht schon.
Da sich RTFs nicht ohne weiteres (bw. ohne Zusatz-Software) vergleichen lassen (in Deinem Fall der Vorher-Nachher-Vergleich), sollte man die Itemlänge der RTFs vergleichen.
n (= Anzahl Deiner RTFs) Variable in den Declarations Deiner Maske als Long oder Double deklarieren.
n versteckte Felder für die Namen der Änderer erstellen
Im PostOpen die Länge der RTFs ermitteln und in den Variablen speichern.
Im Entering der RTFs prüfen, ob es im Ändererfeld für dieses RTF bereits einen Namen gibt. Wenn ja, auf Übereinstimmung mit NotesSession.UserName prüfen. Ungleich - anderes Feld anspringen
Im QuerySave auf Veränderung der Itemlänge der RTFs prüfen. Wenn kein Name eingetragen und die Änderung stattgefunden hat, aktuellen User in das dem RTF zugeordnete Ändererfeld schreiben.
Nicht ganz einfach also ...
Bernhard
-
sorry muss den alten thread noch mal rauskramen ...
würd gern das rtf sperren wenn an einer bestimmten stelle eine voraussetzung erfüllt ist.
also keine user abfragen oder so ...
die abfrage isat kein problem aber wie zur hölle sperre ich das rtf?
hatte es bis eben so gelöst das das feld ab einem bestimmten status nicht mehr sichtbar ist und der wert über @text in ein anderes feld geschrieben wird ... aber wenn man da anhänge reinbaut sind die ja logischerweise weg ...
gibt es einen anderen befehl der inkl. anhänge importiert ?
PS: ich weiss ich bin schlimm ... ich glaub ihr müsst ein blutiger anfänger forum für mich aufmachen ;)
-
Erstell einfach ein zweites RTF-Feld, setz den Typ auf Berechnet und gib als Standardwert den Feldnamen des ersten RTFs an.
Dann kannst Du bei Eintritt der gewünschten Bedingung das erste, bearbeitbare RTF verbergen und das zweite, nicht bearbeitbare RTF anzeigen.
-
irgendwie versteh ich s nicht
mein erstes rtf heisst "Specs"
das zweite (berechnet) heisst "Specstxt"
bei wert hab ich bei "Specstxt" "Specs" eingeben ...
aber es tut nichts ... feld wird nicht angezeigt ...
-
das mit dem berechneten RTF-Feld funktioniert nicht.
du musst, wie schon mal vorgeschlagen in diesem Thread, das Feld in einen zugriffskontrollierten Abschnitt packen. Da kannst du dann spezifizieren, wann das Feld editierbar ist und wann nicht
-
geht das nicht irgendwie einfacher ? ???
das feld darf bzw soll von niemandem mehr bearbeitet werden können sobald einmal ein bestimmter status erreicht ist ...
-
Aah, Mist. Ich hatte es nur mit Attachments getestet. Da funktionierts. Sorry. ::)
-
geht das nicht irgendwie einfacher ? ???
das feld darf bzw soll von niemandem mehr bearbeitet werden können sobald einmal ein bestimmter status erreicht ist ...
was ist einfacher, als einen zugriffskontrollierten Abschnitt zu erstellen?
-
hab nen bereich erstellt. rtf rein geschoben und dem bereich gesagt bearbeitbar, als formel status<2
dann noch eingestellt das immer ausgeklappt angezeigt wird ...
jetzt hab ich masken mit dem status 6 udn ich kanns immern och bearbeiten ....
hilfe
-
Ist Status denn ein Feld vom Typ Zahl ?
-
jup