Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Bruce Willis am 12.04.05 - 23:02:01
-
Hallo,
es gibt so eine Datenbank - let's say Knowledgebase :)
Ich möchte aus jedem Dokument eine Email mit dem Dokumentinhalt UND meinen Kommentaren verschicken können.
Ich hab' mir folgendes vorgestellt:
1. In jedem Dok soll ein Button sein > Alle Text- und RT-Felder bzw. Daten werden in einer neuen Maske angezeigt
2. Diese Maske hat ein Zusatzfeld für meine Kommentare und einen Button zum Verschicken
3. Felder bzw. Daten werden bearbeitbar sein
4. Wenn ich per folgendes LS verschicke, werden nur Text-Daten extern verschickt :(
Was mache ich falsch?
Oder lieber anders formuliert: Wie soll ich richtig machen? ;)
Sub Click(Source As Button)
Dim ws As New notesuiworkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim UIDoc As notesuidocument
Dim Empfaenger As String
Set UIdoc=ws.CurrentDocument
Set doc=uidoc.Document
Set db= session.CurrentDatabase
Empfaenger=uidoc.FieldGetText("Empfaenger")
Call doc.ReplaceItemValue( "SendTo", Empfaenger )
Call doc.Save( False, True )
Call doc.Send( True )
End Sub
-
Ich möchte aus jedem Dokument eine Email mit dem Dokumentinhalt UND meinen Kommentaren verschicken können.
Warum nimmst Du da nicht @Command[Mailforward]), schreibst Deinen Comment dazu und klickst dann auf "Senden"?
-
@Matthias - Du hast geantwortest, während ich an meinem "Elaborat" noch feilte: Leo hat ja angetönt, dass er zusätzlich das gesandte Mail auch noch speichern möchte. Daher lasse ich meinen Text mal so stehen. "Forward" kommt da aber auch vor ;) Liebe Grüsse von "Ober..." nach "Nieder..."
Hallo, Leo,
ein Mail besteht ja im wesentlichen aus sehr wenigen wichtigen Items:
SendTo
CopyTo
BlindCopyTo
Subject
Body (!!!)
Wenn man also irgendein Dokument einfach so versendet, wird sich selten eine Deckungsgleichheit mit den erforderlichen Feldern ergeben. Was Du brauchst, ist:
- Neues Dokument erstellen
- Das zu versendene Dokument dort in ein Item "Body" rendern (NotesDocument.RenderToRTItem)
- SendTo etc. füllen
- Das neue Dokument als FrontEnd-Document öffnen - und nun kannst Du Deine Kommentare noch beliebig dazugeben.
Okay - da fehlen noch ein paar Feinheiten, aber Du willst ja auch basteln ... ;D
Anderer Weg, der in vielen Situationen funktioniert:
Alles im FrontEnd mit NotesUIDocument.Forward. Ans UIDoc kommst Du ja auch über's Backend heran. Damit kannst Du das erzeugte Memo - was ja auch Deine Frage im anderen Thread war - auch im eigenen MailFile speichern.
Lesetip hierfür aus der DesignerHelp: NotesDatabase.OpenMail
Ich helfe hier aber selbstverständlich auch gerne tiefschürfender weiter. Muss mich jetzt aber leider bis Donnerstagabend ausklinken - der Job ruft morgen, und der müde Körper drängt jetzt in die Horizontale.
Vsjevo charoschevo,
Bernhard
-
@Matthias - Du hast geantwortest, während ich an meinem "Elaborat" noch feilte: Leo hat ja angetönt, dass er zusätzlich das gesandte Mail auch noch speichern möchte. Daher lasse ich meinen Text mal so stehen.
Wäre auch sehr schade gewesen, Deinen Erguss wieder zu löschen ;) Viele Grüße zurück nach Ober...
Noch zur Ergänzung meines Vorschlags:
Wenn Du, Leo, da z.B. berechneten Text verwendest mit Formeln wie @DBTitle, dann klappt das nicht richtig, es wird da dann beim Empfänger der Name der Mail-DB angezeigt.
Daher vermeide ich eigentlich berechneten Text und nehme da lieber Felder. Computed for Display reicht, um z.B. @DBTitle dann richtig beim Empfänger anzeigen zu lassen, wenn mit dem Mailforward @Command gearbeitet wird.
Bei der Bernhard'schen Lösung mit RenderToRTItem sollte das aber keine Rolle spielen und Text wird so übernommen wie in der Ursprungs-DB angezeigt.
-
Warum nimmst Du da nicht @Command[Mailforward]), schreibst Deinen Comment dazu und klickst dann auf "Senden"?
IST MIR ZU EINFACH !
Nicht sofisticated genug!!
:)
Ehrlich gesagt, hab bloß nicht daran gedacht.
Ständig sage ich mir "Zuerst denken, danach schießen" und vergesse wieder... :(
Ich habe gerade mit einem Dok ausprobiert - es funktioniert!
Nur sieht nicht perfekt aus, da das Dok-Layout in eine Email nicht so passt.
D.h. die Zwischenmaske wird noch benötigt:
Dok-Button > Zwischenmaske formatieren/Bearbeiten -Button > Email formatieren - Button "Senden"
Oder kann ich diesen Zwischenschritt irgendwie umgehen?
Beim @Command[Mailforward]) die Dok-Maske durch eine andere Zwischenmaske ersetzten?
Danke!
-
Ich helfe hier aber selbstverständlich auch gerne tiefschürfender weiter. Muss mich jetzt aber leider bis Donnerstagabend ausklinken - der Job ruft morgen, und der müde Körper drängt jetzt in die Horizontale.
Hallo Bernhard,
danke für ALLE Tipps.
Ich mache gleich den Letzten und morgen probiere die anderen.
:-*
Gruß
Leo
-
Sag einfach, was Du noch brauchst.
Ich habe gerade aktuell ein Problem mit MailForward in einer Fremdapplikation, die richten soll. Unter R5 ging das noch prima, in R6 gibt es auf einmal Probleme: Die Maske, auf der das weiterzuleitende Dokument beruht, verwendet ScriptLib-Aufrufe. Ich bin noch am untersuchen, ob das am Programmierstil liegt oder ein generelles Problem von R6 ist (und unter welchen Umständen). R6 meckert jedenfalls, dass er die Libs nicht kennt nach dem Forward (klar, die gibt es ja auch nicht im MailFile).
Wie Du siehst, bin ich da eben gerade sehr nah dran.
Bernhard
PS: Wegen "schiessen": Was nimmst Du da ? Wie ich Dich kenne, nicht 7,62. 9 mm sowieso nicht - ist ja nur für Weicheier (acht Warnschüsse, dann kommt der tödliche Wurf !). Waren das 13 mm oder 13,2 bei der richtigen noch tragbaren Wumme ? Konnte man doch vom 60PB auch abbauen und 'rumtragen (=schleppen=) oder ? ;D
-
D.h. die Zwischenmaske wird noch benötigt:
Dok-Button > Zwischenmaske formatieren/Bearbeiten -Button > Email formatieren - Button "Senden"
Oder kann ich diesen Zwischenschritt irgendwie umgehen?
Das verstehe ich jetzt nicht. Generell ist MailForward ziemlich sehr authentisch gegenüber Original, höchstens Seitenhintergrundfarbe oder so wird da nicht mitgezogen. Was machst Du mit diesen Buttons, welcher Code steckt da dahinter?
-
R6 meckert jedenfalls, dass er die Libs nicht kennt nach dem Forward (klar, die gibt es ja auch nicht im MailFile).
Schuss ins Blaue: Die Maske enthält Buthongs, und diese verweisen auf ScriptLibs. Hatte ich so jedenfalls schon. Lösung war dann ein Hide-When ("copied to the clipboard" -> was ja auch für MailForward gilt) auf diese Buttons.
-
Wegen "schiessen": Was nimmst Du da ? Wie ich Dich kenne, nicht 7,62. 9 mm sowieso nicht -
:P Rate mal:
(http://home.arcor.de/teamplay/download/lastman2.jpg)
Danke und bis morgen!
-
Schuss ins Blaue: Die Maske enthält Buthongs, und diese verweisen auf ScriptLibs. Hatte ich so jedenfalls schon. Lösung war dann ein Hide-When ("copied to the clipboard" -> was ja auch für MailForward gilt) auf diese Buttons.
An sich nicht. Und R5 hatte ja auch keine Probleme. Aber das ist trotzdem ein weiterer Ansatz, und mir kommt da gerade eine Idee ... Danke für den Ansatz - der könnte ich (wenn auch ganz anders ... demnächst weiter!) Vielleicht wird es ja noch ein BP-Artikel ;) Aber nicht mehr heute Nacht ;D
Bernhard
-
Das verstehe ich jetzt nicht.
Keine Bange, nobody is perfect!
Ich verstehe auch nicht alles.
:P
Generell ist MailForward ziemlich sehr authentisch gegenüber Original, höchstens Seitenhintergrundfarbe oder so wird da nicht mitgezogen. Was machst Du mit diesen Buttons, welcher Code steckt da dahinter?
Du hast natürlich recht.
Das Problem, die Felder im Dok haben die festen und zu langen Breiten - in externen Emails kommt also alles durcheinander. Einige Felder sollen überhaupt nicht verschickt werden... Die Farben sehen komisch aus...
Was die Buttons betrifft:
1. Button im Dok soll eine Zwischenmaske offnen
2. Button im Zwischenmaske soll @Command[Mailforward]) machen
3. (existierende) Button in der Email soll diese senden
Es sein denn, man kann beim @Command[Mailforward]) die Dok-Maske gleich wechseln... Geht es?
Gruß
Leo
-
Es sein denn, man kann beim @Command[Mailforward]) die Dok-Maske gleich wechseln... Geht es?
Guckst Du: @Command([ViewSwitchForm]; "Bruce")
D.h. erst Form switchen und dann ein @PostedCommand MailForward. Geht so auch in LS.
Wie Du wünschst.
Das ganze packst Du in 1 Buthong, z.B.:
@Command([ViewSwitchForm]; "Bruce");
@PostedCommand([MailForward]);
Hab das jetzt nicht getestet, aber so sollte das gehen. LS geht so auch. Also notfalls auf LS ausweichen.
Einige Felder sollen überhaupt nicht verschickt werden
Siehe oben den Tipp an Bernhard: Hide-When und Haken bei "copied to the clipboard" setzen, dann wird der Absatz nicht weitergeleitet. Evtl. musst Du halt die entsprechenden Felder in Tables setzen, damit Du HideWhen gezielt einsetzen kannst auf Feld-Ebene.
-
Hallo Matthias,
vielen Dank!
Gruß
Leo