Domino 9 und frühere Versionen > ND9: Entwicklung

Anstatt Werte im RichTextfeld anzuhängen wird es nochmals angelegt.

(1/4) > >>

Lancelot:
Hallo Experten,

ich habe ein echtes Verständnisproblem und da ich hier alleine für Notes zuständig bin habe ich leider keinen der meine Wissenslücke schließen kann.

Es gibt eine History mit einem Richtextfeld Namens "aenderungen_history".
Das Feld ist als RichText-Feld in der Maske hinterlegt.
Nun soll bei jedem Speichern das Feld erweitert werden, aber bei mir wird das gleiche Feld nochmal angelegt und ich weis überhaupt nicht warum!
Es gibt keine andere Stelle wo das Feld nochmals angesprochen oder befüllt wird, dass passiert nur im Ereignis QuerySave.

Hoffe jemand kann mir in meiner Verzweiflung einen Tipp geben woran das liegen könnte?
Oder hat jemand einen Tipp wie ich in dem Fall vorgehen sollte um raus zu finden, warum das zweite Feld angelegt wird?

Ich weis das der Fehler wahrscheinlich bei mir liegt, aber das bringt mich kein Stück weiter, weil ich es nicht verstehe, warum das so ist.
Die Feldbezeichnung habe ich überall wo sie vorhanden ist reinkopiert und nicht getippt.
Es befinden sich auch kein Leerzeichen vor oder nach der Feldbezeichnung.

Ich bin echt für jeden noch so kleinen Tipp dankbar.

Dim s As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim usename As Notesname
   Dim aenderungsvar As String
   Dim msg As String
   Dim rtitem As Notesrichtextitem
      
   Set db = s.Currentdatabase
   Set uidoc = ws.Currentdocument
   Set doc = uidoc.document
   Set usename = s.CreateName(s.UserName)
   Set rtitem = doc.Getfirstitem("aenderungen_history")
      
   'Füllen der Felder für die History
   'Alter Stand des Feldes übergeben
   aenderungsvar = Trim(CStr(doc.aenderungen_history))
   msg = usename.Common
   doc.ModifiedBy = Trim(CStr(Now)) + " Uhr " + msg + Chr(10) + "Aktion: " + doc.how_save(0) 'Feld "how_save" wird von gedrückten Button gefüllt

   'Speichert nur die History wenn das Feld auch noch ein RichText-Format ist
   If ( rtitem.Type = RICHTEXT ) Then
      Call rtitem.Appendtext(Trim(CStr(doc.ModifiedBy(0)))+ Chr(10)+ Trim(CStr(aenderungsvar)))   
      Call doc.Save(True, False)
   End If

RunRevilo:
Hallo,

ich bin zwar kein Experte, aber mir ist nur aufgefallen, dass beim Beispiel in der Note Hilfe das rtitem als Variant deklariert wird.
Kannst ja das mal versuchen.

Hier aus der Notes Hilfe:

This script adds two lines of text, separated by a carriage return, to the end of the Body item in a document.


--- Code: ---Dim doc As NotesDocument
Dim rtitem As Variant
'...set value of doc...
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
  Call rtitem.AppendText( "Add text to the rich text item" )
  Call rtitem.AddNewLine( 1 )
  Call rtitem.AppendText("Add more text to rich text item")
  Call doc.Save( False, True )
End If
--- Ende Code ---

Grüße
Oliver

Lancelot:
Danke Oliver für den schnellen Tipp.
Das habe ich schon versucht, hat aber leider am Problem nichts geändert.

Aber danke nochmals für den Tipp.

ascabg:
Hallo,

Ich habe ein kleines Verstaendnisproblem bei deinem Code.

In aenderungsvar hast du den bereits vorhandenen Inhalt des RT-Feldes.

Warum haengst du diesen jedesmal wieder mit an den neu zu schreibenden Eintrag
in diesem Feld an.

Call rtitem.Appendtext(Trim(CStr(doc.ModifiedBy(0)))+ Chr(10)+ Trim(CStr(aenderungsvar)))


Andreas

Lancelot:
Hallo Andreas,

weil es gewünscht ist, dass der neuste Eintrag de Historie immer oben stehen muss um bei Bedarf nicht immer erst nach unten scrollen muss.

Ich darf die Historie z.B. nicht auf die letzten 50 Änderungen beschränken, die muss immer komplett und vollständig gehalten werden.
Deswegen habe ich mich auch für ein RichText-Feld entscheiden müssen, da ein Textfeld nicht größer als 32 KB werden kann. und diese Grenze wurde in der DB nämlich schon häufiger überschritten. 

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln