Nur so ganz auf die Schnelle:
Die bisherigen Lösungen funktionieren entweder nicht (HasEmbedded wirkt nicht bei importierten Pics, QuerySave bringt nichts, da zu diesem Zeitpunkt das RTF noch nicht im Backend gespeichert wurde, der Grössentest könnte durch andere Felder zu Verfälschungen führen)
Auch nicht ganz sicher, aber seit vier Jahren bei mir bewährt, folgender Code:
| Sub Queryclose (Source As Notesuidocument, Continue As Variant) |
| Dim item As NotesItem |
| Dim szOrgValue As String |
| Dim lRTSize As Long |
| |
| szOrgValue = Source.Document.Anhang (0) |
| |
| Set item = Source.Document.GetFirstItem ("Bild") |
| If item Is Nothing Then |
| Source.Document.Anhang = "nein" |
| Else |
| lRTSize = item.ValueLength |
| If lRTSize > 5000 Then |
| Source.Document.Anhang = "ja" |
| Else |
| Source.Document.Anhang = "nein" |
| End If |
| End If |
| |
| If Source.Document.Anhang (0) <> szOrgValue Then |
| Call Source.Document.Save (True, False, True) |
| End If |
| |
| End Sub |
- Im QueryClose wurde das Dok ja bereits gespeichert
- es wird nur auf die Grösse des interessierenden Items geprüft (auch hier gilt wie bei eknori's Vorschlag: Mit der Grösse experimentieren ... Rund 100 Byte ist ein leeres RTF je nach Version)
- Gespeichert wird nur bei Änderungen (die im Lesemodus nicht passieren können, wenn QueryClose so erreicht wird)
HTH,
Bernhard