Domino 9 und frühere Versionen > ND6: Entwicklung
Attachment in RichText-Feld
m3:
Die Designer-Hilfe (spez. das Thema "Reserved fields that control mailing options ") ist Dein Freund:
--- Zitat ---SaveOptions
Use 1 to save mailed documents. Use 0 so that the document is not saved when mailed. prevent the document from being saved.
--- Ende Zitat ---
Zwischen EMBED_ATTACHMENT und EMBED_OBJECT ist ein Unterschied. IIRC wird bei ersterem das Dokument "angehängt" (den Effekt den Du siehst), bei zweiterem das File in RTItem eingebettet. Siehe "Working with attachments and embedded objects in LotusScript classes" in der Designer-Hilfe.
DAU-in:
Wann kommt der Speicherdialog?
Doch nicht vor dem Speichern des doc, oder?
du musst das in das uidoc setzen, dann wird der Speicherdialog unterdrückt, das Dokument wird nicht gespeichert und damit das Feld auch nicht gesetzt.
wenn du das im Backenddokument abspeicherst, dann ist dîeser Wert auch abgespeichert. Damit wird künftiges speichern unterdrückt.
m3:
IMHO mischt Du mir hier auch etwas zu viel Backend- und Frontend-Aktionen.
Du bist im Postopen, führst @-Formulas aus, rufts dann irgendwie (wie?) LotusscriptCode auf, der das Dokument zuerst im Frontend, und dann auch noch im Backend speichert (im Zusammenspiel mit RTItems eine tötliche Kombination), schließt und wieder öffnet (was dann wieder einen PostOpen Event auslösen würde, siehe Satzanfang ....
Irgendwo ist da im Konzept IMHO der Wurm drinnen. Kannst Du das mal etwas genauer ausführen?
Leddl:
--- Zitat von: m3 am 17.11.08 - 13:55:24 ---Zwischen EMBED_ATTACHMENT und EMBED_OBJECT ist ein Unterschied. IIRC wird bei ersterem das Dokument "angehängt" (den Effekt den Du siehst), bei zweiterem das File in RTItem eingebettet. Siehe "Working with attachments and embedded objects in LotusScript classes" in der Designer-Hilfe.
--- Ende Zitat ---
Na gut, das muss man wissen. Auch diesen Code habe ich hier im Forum gefunden und er wurde in keinem der Beiträge bemängelt. Es würde also ausreichen, EMBED_ATTACHMENT durch EMBED_OBJECT auszutauschen? Damit bekomme ich aber leider weder ein Attachment im Richtext noch unter dem Dokument...
--- Zitat von: DAU-in am 17.11.08 - 13:58:20 ---Wann kommt der Speicherdialog?
Doch nicht vor dem Speichern des doc, oder?
--- Ende Zitat ---
Ich bin schwer irritiert... Ich habe vorhin nach deinem Post die Zeile auskommentiert und es erschien der Speicherdialog. Jetzt habe ich das eben noch einmal versucht und es funktioniert ???
Aber vielen Dank, das war es tatsächlich... Aber da sieht man es wieder, man sollte nicht zuviel kopieren *g* Ich hätte die Zeile nämlich eigentlich auch gar nicht eingefügt, die steht nur da, weil ich den Code so hier gefunden hatte und der Meinung war, das müsse dann schon so stimmen ;D
--- Zitat von: DAU-in am 17.11.08 - 13:58:20 ---du musst das in das uidoc setzen, dann wird der Speicherdialog unterdrückt, das Dokument wird nicht gespeichert und damit das Feld auch nicht gesetzt.
wenn du das im Backenddokument abspeicherst, dann ist dîeser Wert auch abgespeichert. Damit wird künftiges speichern unterdrückt.
--- Ende Zitat ---
Das heißt? Ein Feld "SaveOptions" in die Maske einfügen und dort setzen?
Aber danke vielmals für die Hilfe... ich sags ja, es war ja eigentlich total offensichtlich. Aber manchmal ist man einfach total blind, vor allem wenn man schon wieder ein knappes Jahr nicht in Notes reingeschaut hat :)
--- Zitat von: m3 am 17.11.08 - 14:02:21 ---IMHO mischt Du mir hier auch etwas zu viel Backend- und Frontend-Aktionen.
Du bist im Postopen, führst @-Formulas aus
--- Ende Zitat ---
Wie gesagt, anders hat es bei mir nicht funktioniert und außerdem werden so nicht diese hässlichen grauen Standard-Icons angehängt ;) Zudem wird diese Vorgehensweise in verschiedenen Threads hier im Forum empfohlen.
--- Zitat von: m3 am 17.11.08 - 14:02:21 ---, rufts dann irgendwie (wie?) LotusscriptCode auf, der das Dokument zuerst im Frontend, und dann auch noch im Backend speichert (im Zusammenspiel mit RTItems eine tötliche Kombination), schließt und wieder öffnet (was dann wieder einen PostOpen Event auslösen würde, siehe Satzanfang ....
Irgendwo ist da im Konzept IMHO der Wurm drinnen. Kannst Du das mal etwas genauer ausführen?
--- Ende Zitat ---
Und genau darum geht es doch. Steht doch alles schon im obigen Post:
Mit einem Button wählt der User eine Datei aus, diese soll dann nach einer gewissen Verarbeitung in ein RichText eingefügt werden. Dafür schreibe ich den Dateinamen in ein Feld und lese dieses beim Postopen (ausgelöst durch das Reopen des Dokuments) aus. Die Datei wird angehängt und anschließend das Feld mit dem Dateinamen gelöscht. Ich sehe darin ehrlich gesagt überhaupt kein Problem...
Gut, nachdem ich deinen Einwand gelesen hatte, habe ich versuchsweise die Zeile auskommentiert, in der das doc gespeichert wird, und es scheint auch so zu funktionieren. Auch hier war ich wieder der Meinung, wenn man mehrmals den gleichen Quellcode liest, ohne dass dieser korrigiert wird, sollte man davon ausgehen können, dass dieser korrekt ist.
Inwiefern ist denn das Speichern im Front- und im Backend tödlich in Verbindung mit RichText-Feldern? Nur interessehalber...
Es sollte ja auch eventuell klar geworden sein, dass meine Hauptaufgabe hier nicht darin besteht, in Lotus Notes zu programmieren. Ich habe weder eine einzige Schulung darin gehabt, noch bisher besonders viel darin programmiert. Alles was ich tue habe ich entweder hier aus dem Forum oder mir durch das Betrachten bereits verfügbarer Applikationen beigebracht. Es tut mir daher leid, wenn mir in gewissen Bereichen das Verständnis fehlt, aber da kann ich leider auch nicht viel mehr machen, als zu versuchen, es zu begreifen ;) Und ich möchte auch wirklich klarstellen, dass ich vor meinem Post jetzt bereits schon einige Zeit mit dem Problem verbracht habe und mehrere Stunden hier im Forum nach Lösungen gesucht habe. Ich hasse es nämlich selbst, wenn ohne einen Funken Selbstinitiative nach Lösungen gefragt wird.
Schöne Grüße und nochmals vielen Dank,
Axel
Leddl:
Wenn ich vielleicht noch einmal eine kurze Anschlussfrage stellen dürfte... ;)
Das mit dem Hinzufügen funktioniert ja jetzt prima, es muss jetzt allerdings auch möglich sein, die Attachments über einen Button wieder zu löschen. Dazu benutze ich jetzt folgenden Code:
--- Code: ---Set rtitem = doc.GetFirstItem(rtAttName)
If Isarray (rtitem.EmbeddedObjects) Then
If ( rtitem.Type = RICHTEXT ) Then
Forall object In rtitem.EmbeddedObjects
If ( object.Type = EMBED_ATTACHMENT ) Then
Call object.Remove
End If
End Forall
Call doc.Save(True,True)
End If
End If
--- Ende Code ---
Damit wird aber anscheinend nur die Datei selbst gelöscht, das Dateiicon bleibt weiterhin im Dokument sichtbar - auch nach einem erneuten Aufruf des Dokuments. Ähnliche Threads zu dem Thema laufen eigentlich auf genau den Code hinaus, den ich hier benutze, daher bin ich auch hier wieder eher ahnungslos...
Ich habe auch bereits eine Möglichkeit gefunden, das Icon aus dem Richtext zu löschen, allerdings erscheint dabei eine Abfrage, ob wirklich gelöscht werden soll, was ich eher weniger gebrauchen kann.
Daher nochmal meine Frage: Was übersehe ich hier? Es kann doch nicht sein, dass das Icon ohne Datei dahinter stehenbleibt...
Schöne Grüße,
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln