Domino 9 und frühere Versionen > ND8: Entwicklung
LS - Per Button editierbare Mail aus einer DB erstellen mit Datenübernahme
deepsee3:
Bin nicht so fit im Lotusscript ... obwohl es sich ja sehr Ähnelt mit vb.net ...
Möchte aus einer DB eine Mail öffnen die Daten übergeben bekommt ... hier mal abgespeckt ...
Problem ... neue Mail wird erstellt (Mail DB öffnet sich mit neuer Mail ) aber null Daten ???
Public Sub CreateMail()
On Error GoTo ERRORHANDLER
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim session As New NotesSession
Dim doc As NotesDocument ' Notesdokument ->
Dim docm As NotesDocument ' Neue Mail
Dim vMailDB As Variant 'Mail DB
Dim varindex As Variant ' aus Dokument gelesene EMail Adresse
'Datenindex aus Dokument einlesen
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
varindex = doc.GetItemValue( "KontaktMail" )
' # ... die Parameter der Mail-Datenbank einlesen.
vMailDB = Evaluate("@MailDBName")
'Mail erstellen
Dim maildoc As NotesUIDocument
Set Maildoc = ws.ComposeDocument(vMailDB(0), vMailDB(1), "Memo")
'Erstelltes Dokument mit Daten füllen
Set docm = Maildoc.Document
docm.sendto = varindex(0)
docm.Subject = "Test"
EXIT_SCRIPT:
Exit Sub
ERRORHANDLER:
MsgBox "Error: " & Err & " - " & Error$ & Chr(10) & Chr(10)_
& "Line: " & Erl & Chr(10), _
48, "An error occured"
Resume EXIT_SCRIPT
End Sub
deepsee3:
ok ... in meinen Augen völlig beklo. ... warum das so gemacht wird ... aber so geht es ... ;D
Direkt das Datenfeld "sendtoenter" angesprochen ....
Warum geht eine GotoField Anweisung und eine direkte klassische Zuordnung nicht ...
Wenn jemand ne elegantere bzw. bessere Idee hat ... bin für alles offen ...
Public Sub CreateMail()
On Error GoTo ERRORHANDLER
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim session As New NotesSession
Dim doc As NotesDocument ' Notesdokument ->
Dim docm As NotesDocument ' Neue Mail
Dim vMailDB As Variant 'Mail DB
Dim varindex As Variant ' aus Dokument gelesene EMail Adresse
'Datenindex aus Dokument einlesen
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
varindex = doc.GetItemValue( "KontaktMail" )
' # ... die Parameter der Mail-Datenbank einlesen.
vMailDB = Evaluate("@MailDBName")
'Mail erstellen
Dim maildoc As NotesUIDocument
Set Maildoc = ws.ComposeDocument(vMailDB(0), vMailDB(1), "Memo")
Maildoc.GotoField( "sendtoEnter" ) ' -> zum Feld gehen
Maildoc.InsertText(varindex(0)) ' -> Feld füllen ...
EXIT_SCRIPT:
Exit Sub
ERRORHANDLER:
MsgBox "Error: " & Err & " - " & Error$ & Chr(10) & Chr(10)_
& "Line: " & Erl & Chr(10), _
48, "An error occured"
Resume EXIT_SCRIPT
End Sub
Tode:
Du befüllst das backend dokument und wunderst Dich, dass das Frontend das nicht anzeigt. Typisches Anfänger- Script- Problem (uidocument vs. Document). Befülle das uidoc direkt per setfield (ich glaube so heisst das) oder erstelle ein backend document (set dbmail = new notesdatabase( server, db ) dann set doc = new notesdocument (dbmail) dann replaceitemvalue, dann call ws.editdocument)
Edit: bekloppt ist es nur, wenn man nicht versteht was man tut...
deepsee3:
Ok ... versuche mal zu verstehen ...
Das heisst wenn ich einmal ...
Dim uidoc As NotesUIDocument
eingesetzt habe ...
dann bleibt der da ,auch wenn ich im laufendem Script versuch umzuschalten ...
Dim maildoc As NotesUIDocument
Set Maildoc = ws.ComposeDocument(vMailDB(0), vMailDB(1), "Memo")
dann verstehe ich das ... klar ... der bleibt auf meinem Hauptdokument wo ich das script starte ...
... halt Anfängerfehler ;)
WildVirus:
Moinsen,
versuch mal den Unterschied zwischen NotesDocument und NotesUIDocument wirklich zu verstehen.
Dein letzter Post zeigt, dass Du das nicht verstanden hast.
CU,
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln