Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: scipio am 15.12.03 - 20:54:57
-
Ich habe das Forum durchsucht, aber keine Hilfe gefunden die passt, also muss ich ein wenig tippen:
In unserer Firma gibt es eine Datenbank mit Dokumenten, die über eine Maske mit 5 RichText-Feldern erfasst werden. In den Richtext-Feldern (Anhang_1 bis Anhang_5) wurden bis zu 5 Anhänge (je Feld eines) eingebunden. In einem weiteren RT-Feld "Quelltext" wurde über den Datei-Import Agenten HTML-Quelltext (Dateiname, Dateigröße) etc. reingeschrieben.
Nach und nach haben die Kollegen die Datei-Anhänge nicht über den Import-Agenten, sondern über Datei - Anhängen ausgetauscht. Somit stimmt der Quelltext nicht mehr.
Ich habe in der Erfassen-Maske eine neue Schaltfläche eingebunden. Über das Click-Event soll der Quelltext gelöscht und dann neu reingeschrieben werden.
In einem 1. Versuch habe ich neben jedem RT-Feld weitere berechnete Felder eingefügt, die Namen und Größe des Anhangs über die entsprechende @Formel aus dem RT-Feld mit Anhang aufnehmen. Über den Click-Agenten werden dann die Werte aus den berechneten Feldern mit umgebenden HTML nach und nach in das RT-Feld "Quelltext" geschrieben.
Das klappt auch ganz gut. Nur, geht es etwas eleganter, ohne die zusätzlichen berechneten Felder, also nur mit LotusScript???
Wie kann ich das mit einem Array lösen, der Dateigröße und Dateiname des jeweiligten Attachments ausliest und in das RT-Feld schreibt?
Wie sähe das Skript aus? Danke für eure Hilfe
-
Salve o Imperator Scipio Africanus, victor Hannibalis Punici
Si vales, bene est, ego valeo.
;D
Zu Deiner Frage: in der Designer-Hilfe gibt es ein Kapitel, das sich genau mit dem Thema befasst:
Working with attachments and embedded objects in LotusScript classes
Darüber hinaus schau Dir die Eigenschaft EmbeddedObjects von NotesRichTextItem und die Klasse NotesEmbeddedObject an, das dürfte weiterhelfen.
Salve
-
Salve,
bin ehrlich, habe mich ca. 4 Stunden mit dem Kapitel auseinander gesetzt, ein paar Ansätze, aber nicht die Lösung gefunden.
Bin jetzt an dem Punkt, dass ich den Wald vor lauter Bäumen nicht sehe. Daher habe ich mich an dieses Forum - dass mir bisher immer ohne eigene Fragen geholfen hat - gewandt.
-
Wieiel LotusScript kannst Du denn?
Die Sache ist eigentlich nicht besonders schwer, halt etwas mit Fleissarbeit verbunden.
Für jedes der 5 Felder ist ja der Ablauf grundsätzlich gleich: Grabbsche das Feld, hol Dir aus dem Feld die EmbeddedObjects heraus, suche die FileAttachments und Du kannst die Daten, die Du brauchst auslesen.
-
Erstelle 5 Richtextfelder mit den Namen Body0 bis Body4 in einer Maske. Erstelle dann eine Schaltfläche und füge in dem Click-Event folgendes Script ein:
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim item As Variant
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
For index = 0 To 4 'Anzahl der RT-Felder
Set item = doc.GetFirstItem("Body" & index)
Forall embobj In item.EmbeddedObjects
Messagebox "Name: " & embobj.Name & Chr(10) _
& "File size: " & embobj.FileSize
End Forall
Next
End Sub
Erstelle dann ein Dokument mit dieser Maske und fülle die RT-Felder mir Anhängen. Speichern und auf die Schaltfläche klicken.
Sollte es eigentlich gewesen sein.
-
Danke!