Habe folgenden Code der mittels Aktionsschaltfläche in einer Maske ausgeführt wird. Damit wird die Größe und die Anzahl der Dokumentanhänge ermittelt und das Ergebnis in die entsprechenden Felder geschrieben. Das Script funktioniert auch, bloss muss das Dokument, falls es sich dabei um ein neues handelt, zuerst gespeichert werden, bevor die Schaltfläche funktioniert. Wie kann ich dieses Problem lösen. Möchte das Script auch im querysave event einfügen.
Danke Maria
Dim s As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rt As NotesRichTextItem
Dim item As NotesItem
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set rt = doc.GetFirstItem( "D_Doku" )
If rt Is Nothing Then
Msgbox "Kein Dateianhang vorhanden. Speichern Sie zuerst das Dokument"
Exit Sub
End If
Call ws.EditDocument( True ) 'Um das Dokument im Edit Mode zu öffnen
idx = 0
Forall o In rt.EmbeddedObjects
Redim Preserve strDateiInfo(idx)
strDateiInfo(idx) = o.Name & " (" & Format(o.Filesize, "#,##0") & " Bytes)"
' Ermittel die Gesamtgröße der Anhänge
gr = gr +o.Filesize
idx = idx + 1
' Ermittelt die Anzahl von Dateien und schreibt Sie in das Feld
If idx = 1 Then
doc.D_ZuFas = idx & " Datei"
Else
doc.D_ZuFas = idx & " Dateien"
End If
End Forall
doc.D_Info = strDateiInfo
doc.D_GrGes = "mit " & Round(gr/1024,2) & " KBytes"
Hallo,
OK hier wurde nach Script gefragt,
aber ich hätte hier eine @variante die eine Lösung bringen könnte:
verwende berechnete Felder mit:
@AttachmentLengths
@AttachmentNames
@Attachments
ein refresh genügt, speichern ist nicht notwendig. ;)
Allerdings werden dabei alle Anhänge des Dokuments ausgewertet, nicht nur die des RT-Felds.
zusammensetzen ginge z.B. so:
tpSize:= @Text(@AttachmentLengths/1024) + " kb";
tpNames:=@AttachmentNames;
tpNames + " " + tpSize
Summe der Grössen z.B. so:
noch "keine Attachments" beachten sonst gibts type-missmatch bei @Text(@AttachmentLengths)"
Grüsse, Pete(r)