Moin zusammen,
ich bin wieder auf eine spannende Frage gestossen, nämlich folgende:
Kann man ein Richtextfeld, dass in Bearbeitung ist auf Größe validieren?
Voraussetzungen:
Notesclient 8.x oder höher, ein normales Richtextfeld (kein RT-Lite), validiert werden soll die Gesamtgröße, d.h. Attachments, Text und eingefügte Screenshots
Was ich schon probiert habe:
...
dim ws as new NotesUIWorkSpace
dim uiDoc as NotesUIDocument
dim doc as NotesDocument
dim rtItem as NotesRichTextItem
dim lngRichTextSize as Long
dim lngRichTextAttachmentSize as Long
set uiDoc = ws.CurrentDocument
set doc = uiDoc.Document
call uiDoc.Refresh ( true, true, true )
call uiDoc.Reload
set rtItem = doc.getFirstItem ( "body" )
if rtItem is nothing then exit function
lngRichTextSize = rtItem.ValueLength ' ==> liefert aber nur die Größe des ersten RT-Items (es kann ja mehrere geben)
if doc.hasEmbedded then
forall eo in rtItem.EmbeddedObjects
lngRichTextAttachmentSize = lngRichTextAttachmentSize + eo.FileSize
end forall
end if
...
lngRichTextAttachmentSize und lngRichTextSize liefern zusammen die Gesamtgröße des RT-Feldes (fast), solange es wirklich nur ein Richtextfeld gibt).
Auch ein Loop über alle Items (... forall item in doc.items ...) und summieren der Größe des RT-Feldes Body bringt nix, da immer nur ein Body-Feld in der Schleife vorhanden ist.
Irgendwie scheine ich nicht an die benötigen Feldgrößen der Body-Felder 2 ... x zu kommen, sondern immer nur an die Größe des ersten.
Hat jemand noch Vorschläge o. Tips?
Anmerkung:
Wird der Inhalt des Richtextfeldes größer als 64k, werden entsprechend weitere Richtextfelder im Dokument angelegt und der Inhalt geteilt. Das sieht man im Eigenschaftenfenster des Dokuments.