Domino 9 und frühere Versionen > ND8: Entwicklung

LS - Per Button editierbare Mail aus einer DB erstellen mit Datenübernahme

(1/4) > >>

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