Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: StanPete am 06.12.02 - 10:57:00
-
Hallo,
ich hab da immer noch ein kleiner problem mit dem aktualisieren von Leserfeldern die aus einer ansicht herraus beschreibe.
Das Problem ist genau folgendes:
Ich habe in einer Maske ein Leserfeld (LF) dieses will ich in der Ansicht (All) über einen Button mit werten (meistens Rollen)
befüllen. Hinter dem Button liegt aber noch eine Dialogmakse welche ein Feld mit gleich lautendem Namen enthält.
Wenn ich jetzt in das Feld der Dialogmaske eine Rolle eintrag (FIELD LF:= "[Rolle1]") und die Dialogmaske mit OK schliesse dann wird die Rolle zwar in das LeserFeld des Dokuments eingetragen, aber es funktioniert nicht. Erst wenn ich das Dokument nochmal öffne und speichere.
Wenn ich ein Berechnetes Feld in das Dokument einfüge welches den Wert des feldes LF enthält, dann funktioniert das nur dann wenn das berechnete Feld zur Zeit des Aufrufs der Dialogmaske schon existiert.(und bei mir tut es das leider nicht)
Wie kann ich über einen Formelbefehl Leserfelder in einem Dokument aktualisieren ?
-
vielleicht hilft dir das weiter
http://www.atnotes.de/attachments/Passwort321.zip
cu
-
... ich vermute mal, daß die Leser-Felder in den Dokumenten nachträglich hinzugefügt wurden. Die Zuweisung soll nun die Sicherheit herstellen...
... wenn das so stimmt, dann weiß das Feld bei der Formelzuweisung erst nach der Speicherung des Dokumentes im Frontend von seinem Glück ein Leserfeld zu sein...
... deshalb weise ich Lesefeldern Inhalte per LS zu. Damit kann ich dem Feld die Eigenschaft "doc.IsReader = True" zuweisen, bzw. gibt es dafür auch Parameter...
... sollte es so sein, dann gib kurz Bescheid, ich kann dir den Weg dann beschreiben...
ata
-
Genau so ist der Weg allerdings kann ich in dieser Situation nicht auf LS zurückgreifen. Aber vielleicht kann ich mit LS in einem Event der Dialogmaske (QueryClose,Terminate o.ä.) arbeiten.
Aber beschreib mit trotzdem mal den Weg wie du es gemacht hast , das hilft mir bestimmt weiter :)
-
... hier in groben Zügen der Code in LS - du kannst das sicherlich über einen Agenten aufrufen...
Set item = doc.GetFirstItem("Reader_FieldName")
If Not Item Is Nothing Then
If item.IsReaders = True Then
' # das Feld ist ein Leserfeld
Else
' # das Feld hat nicht die Eigenschaft eines Leserfeldes
item.IsReaders = True
If item.IsSummary = False Then
item.IsSummary = True
End If
End If
Else
' # das Feld muß neu angelegt werden...
' # ...
End If
ata