Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: orbit am 23.08.10 - 15:11:34
-
Hallo,
gibt es eine Möglichkeit, das Speichern eines Dokumentes zu verhindern, wenn
eine Datei in ein RichText Feld angehängt wird die größer ist als 3MB?
Habe Momentan im QuerySave folgendes:
On Error Goto errorhandler
Dim sess As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Set db = sess.CurrentDatabase
Dim doc As NotesDocument
Set doc = source.Document
Dim rtitem As Variant
Dim object As NotesEmbeddedObject
Dim SizeInBytes As Long
Set rtitem = doc.GetFirstItem( "BeschreibungErstaufnahme" )
If rtitem.Type = RICHTEXT Then
Forall objects In rtitem.EmbeddedObjects
Messagebox objects.FileSize
If objects.Type = EMBED_ATTACHMENT And objects.FileSize > 3145728 Then ' 3MB Grenze
Messagebox "Achtung: Die Datei " & objects.Name & " ist zu groß"
continue = False
Exit Sub
End If
End Forall
End If
... und dann gehts noch weiter mit anderem zeug..
Prinzipiell funktioniert das ganze ja - aber leider nicht beim ersten Speichern des Dokuments,
weil vermutlich der Anhang dann ja noch gar nicht wirklich im RT Feld liegt?
Kann man das vorher irgendwie checken??
Danke Florian
-
falls Du kein RT-Feld im Frontend brauchst, könntest du dir Schaltflächen für das Anhängen, Ansehen, Speichern und Löschen schreiben. Damit kannst du vor dem Anhängen prüfen, wie groß die angehängten Datein plus die neue Datei werden und das Anhängen ggf. abbrechen.
-
Wenn das doch rein über das Frontend gehen soll, geht auch folgender Ansatz:
- Privates Profiledocument mit einem RTF
- Function im QuerySave: Markiert und kopiert Dein RTF im zu prüfenden Dokument ins Clipboard
- RTI im ProfileDocument löschen
- ProfileDocument im Frontend öffnen, Sprung zum dortigen RTF und Clipboard dort abladen
- ProfileDocument speichern
- Grösse checken und "brav" oder "böse" an das QuerySave zurückmelden.
Bernhard
-
Danke für Eure Antworten,
das mit dem Profildokument funktioniert soweit ganz gut, auch wenn ich (Anfänger!)
dafür eine halbe Ewigkeit gebraucht hab. Dummerweise sollen da jetzt in diese Maske noch
3 RT Felder rein.
Womit ich wohl eher dazu tendiere die Dokumentengröße als Ganzes zu beschränken.
\Florian
-
Hallo,
wie kommt es eigentlich zu der grösse?
Bzw. ich war mal in einer ähnlichen Lage.
Bilder in eine Db.. wie diese jetzt einigermassen klein halten?
Eine einheitliche grösse, mehr oder weniger nicht möglich.
Also habe ich die Bilder in pdf gewandelt und siehe da sie wurden annähernd gleich gross.
Also erlaube ich nur pdf's zu importieren.
Boris
-
Die Grössen kommen aus allen möglichen Dateien,
Hauptsächlich aber: *.pdf, *.doc, *.jpg, *.tif
Wobei die in 90% der übergroßen Dokumente *.doc & *.jpg verantwortlich sind.
\Florian