Domino 9 und frühere Versionen > Entwicklung

Email-Auswahl

<< < (2/2)

manuel:
Durch @Command([MailAddress]) öffnet sich der Adressauswahldialog, so wie du ihn gewöhnt bist, wenn du eine Mail schreibst.


--- Zitat ---MailAddress  

Öffnet das Fenster "Mail-Adresse", aus dem Sie die Namen von Personen und Arbeitsgruppen für die Aufnahme in ein Adreßfeld eines Mail-Dokuments wählen können.
Syntax
@Command([MailAddress])
--- Ende Zitat ---

taheri:
Danke ersmal

mit Command hat es sehr gut geklappt. ich kann jetzt ein auswahl treffen. mit Agent nicht. kommt felhler Meldung.

für  Anfang ist klasse. der Anwender soll nur den erste Emfänger entfernen . es ist automatische in auswahl eingetragen

mfg

manuel:
Ups, hab ich nicht mitgedacht, ist eh klar. Mit ws.CurrentDocument greift man auf das aktuelle Frontend-Dokument zu, nur im Agenten kann das nicht funktionieren. Du könntest die Adresse in ein Profildokument schreiben und dann auslesen. Weißt wie das funktioniert?

taheri:
so was habe ich mir auch gedacht. so ein art profil.weil die Emfänger maximal 3 personen sind.Leider weiss ich nicht wie . abgesehen von maske erstellen und Ansichten

mfg

manuel:
Erstelle eine neue Maske, Name könnte lauten "MailAddress". Diese Maske enthält ein Feld mit dem Namen "SendTo". Das Feld "SendTo" in der anderen Maske bleibt aber dennoch erhalten.

Die Aktion "Adresse" muss nun so aussehen:
@Command([MailAddress]);
@SetProfileField("MailAddress"; "SendTo"; SendTo; @UserName)

In das Profildokument "MailAddress", das einem bestimmten User zugeordnet ist, wird in das Feld SentTo der Inhalt des Feldes SentTo der Auftragsmaske geschrieben.

Im Script musst du natürlich auch noch ein paar Zeilen ergänzen:

Sub Initialize
Dim session As New Notessession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument      
Dim db As NotesDatabase      
Dim newdoc As NotesDocument  'neuer Reproauftrag in DB
Dim doc As NotesDocument     'Plandokument in DB
Dim vdoc As NotesDocument   'Verteilerdokument in DB
Dim profile As notesdocument  
Dim profileMail As NotesDocument
Dim rtitem As NotesrichtextItem
Dim plitem As NotesItem
Dim profitem As Notesitem
Dim view As NotesView
Dim user As String
 
Set db = session.Currentdatabase
Set View = db.GetView("ReproAuswahl")
Set profile = db.GetProfileDocument("DBProfil")
Set profileMail = db.GetProfileDocument("MailAddress", session.UserName)
Nummern = profile.GetItemValue("Nummern")    
 
Set newdoc = New NotesDocument(db)
newdoc.Form = "ReproAuftrag"
user=session.CommonUserName
Call newdoc.ReplaceItemValue("Autor",user)
Call newdoc.ReplaceItemValue("Ersteller",user)
'als Autorenfeld setzen:      
Set plitem=newdoc.GetFirstItem("Autor")
plitem.IsAuthors=True  
plitem.IsSummary=True
    'SendTo-Feld erzeugen:
    Call newdoc.ReplaceItemValue("SendTo", profileMail.SendTo(0))
 
For i = 0 To Ubound(Nummern)
 zw = ""
 Set doc = view.GetDocumentByKey(Nummern(i))
 
%REM
Die Plan-Dateien werden nicht mehr mit dem Auftrag verschickt...
 Set rtitem = doc.GetFirstItem("Plot")
 Call newdoc.CopyItem(rtitem,"Anlage_" & i)
%END REM
 
 '... dafür wird jetzt die Doc-ID des Plandocumentes mitverschickt...
 Call newdoc.replaceitemvalue( "PlanUnid_" & Cstr(i), doc.universalid)
 
 '... und der Name des Attachments
 Set rtitem = doc.getfirstitem("Plot")
 If Isarray( rtitem.embeddedObjects) Then
  Forall att In rtitem.embeddedObjects
   If att.type = Embed_Attachment Then  
    zw = zw + att.name
   End If
  End Forall
 End If
 If zw <> "" Then
  Call newdoc.replaceitemvalue( "AttName_" & Cstr(i), zw)
 Else  
  Call newdoc.replaceitemvalue( "AttName_" & Cstr(i), "Kein Attachment vorhanden!")
 End If
 
 
 Set plitem=doc.GetFirstItem("PlanFormat")
 Call newdoc.CopyItem(plitem, "Größe_" & i)    
 
 Set plitem=doc.GetFirstItem("Verteilerschluessel")      
 Call newdoc.CopyItem(plitem,"VS_" & i)    
 
 Set plitem=doc.GetFirstItem("PlanID")      
 Call newdoc.CopyItem(plitem,"PlanID_" & i)
 
 
 
 Anz=0
 For j=0 To 9      
  zw=doc.GetItemValue("Farbe_" & Cstr(j))      
  Anz= Anz+Cint(zw(0))
 Next j
 Call newdoc.ReplaceItemValue("pafa_" & i, Anz)
 
 Anz=0
 For j=0 To 9      
  zw=doc.GetItemValue("sw_" & Cstr(j))      
  Anz= Anz+Cint(zw(0))
 Next j
 Call newdoc.ReplaceItemValue("pasw_" & i, Anz)
 
Next i
 
Call newdoc.save(True,True)      
 
Call view.Refresh
Set uidoc = ws.EditDocument(True,newdoc)      
 
End Sub


Ich hoffe es funktioniert!
lg

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln