Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Sillik am 03.07.03 - 14:21:59
-
Hoi,
ich hab eine Maske mit einem RichtTextFeld. Wenn ich mit dieser Maske ein neues Dokument erstelle will ich noch vor dem Speichern auslesen ob das RTF gefüllt ist.
Wie mach ich das am besten?
Ich habs mit folgender Funktion versucht:
Function IsrtfMT (doc As Notesdocument , FieldName As String) As Integer
' This function checks if a rich text field is empty
Dim mbdcount As Integer,plaintext As String
Dim rtitem As Variant
mbdcount =0 ' initialize
Set rtitem = doc.GetFirstItem(fieldname)
If ( rtitem.Type = RICHTEXT ) Then
plainText = rtitem.GetFormattedText( False, 0 ) ' render the Rich item into text this gets all text values and ignores attachments/OLE
If Len(plaintext) < 1 Then
If Isarray(rtitem.EmbeddedObjects) Then
Forall o In rtitem.EmbeddedObjects ' loop through array of embedded objects in the rich text item
mbdcount=mbdcount+1 ' there is at least one emb object
End Forall
End If
End If
End If
If (mbdcount + Len(plaintext)) < 1 Then ' if there are no embedded objects AND there is no text also
IsrtfMT=1 ' return flag to calling string RTF IS EMPTY
Else
IsrtfMT=0 ' return flag to calling string RTF IS NOT EMPTY
End If
End Function
Aber da bekomm ich den Fehler (Objektvariable not set)
-
Das ist Problem ist die Stelle
Set rtitem = doc.GetFirstItem(FieldName)
Wenn es sich um ein noch nicht gespeichertes Dokument handelt, kennt Notes das Richtext Item noch nicht. Daher wird das Objekt rtitem nicht gesetzt.
Ich habe es auch mit der @Formelsprache und @Abstract getestet: Das geht ebenfalls nicht. Steht auch in der Hilfe:
>>>Achtung Rich-Text-Felder sind erst dann Bestandteil des Dokuments, wenn es gespeichert wurde. Wenn @Abstract Ergänzungen und Änderungen des aktuellen Dokument bearbeiten soll, müssen Sie das Dokument erst speichern und neu berechnen lassen.<<<
Andreas
-
Dann kann man wohl nichts machen... :(
-
... ich hätte da noch eine Idee - aber noch nicht ausprobiert...
... du legst ein 2. Feld an - Berechnet - mit dem @Abstract des Richtextfeldes - damit könntest du zumindestens abchecken, ob Text im Feld ist...
... oder ein zusätzliches temporäres Doc speichern, überprüfen und gleich wieder löschen - und dann weiter wie gewünscht...
ata