Domino 9 und frühere Versionen > ND6: Entwicklung
Tipp zur Umsetzung eines Links zum Kontakt
dabjoern:
Hallo liebe Forenmitglieder,
ich brauche mal wieder einen Denkanstoß. Und zwar möchte ich eine Dialogbox (o.ä.) verwenden, die aus einer View alle Namen der vorher angelegten Kontakte anzeigt. Mehrfachauswahl möglich.
Jetzt mein Problem: Wenn man jemanden (oder mehrere) Personen ausgewählt hat, möchte ich, dass ein Link für jede Person vorhanden ist. Betätigt man den Link, erhalte ich das Kontaktdokument der jeweiligen Person. Am Besten wäre es, wenn der Name der Person der Link wäre. Hat jemand Vorschläge zur Realisierung?
Gruß und Danke im Voraus
Björn
Axel:
Hi,
lass dir die Kontakte mit der Methode PicklistCollection (Klasse NotesUUIWorkspace) anzeigt. Die liefert dir eine DocumentCollection mit allen gewählten Dokumenten. Diese kannst du dann mit AppendDocLink (Klasse NotesRichTextItem) in ein RTF - Feld in deine Maske einfügen.
Das ist so ganz grob mal eine Idee.
Axel
dabjoern:
Hi Axel,
danke für deinen Beitrag. Was du da vorschlägst sind zwar alles unbekannte Sachen für mich, ich werde es aber dennoch mal austesten und in der Hilfe recherchieren.
Gruß
Björn
dabjoern:
Hallo,
ich habe mittlerweile folgenden Code zusammengestückelt:
--- Code: ---Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim coldoc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim doc2 As NotesDocument
Dim uidoc As NotesUIDocument
Dim unid As String
Set db = session.CurrentDatabase
Set uidoc = ws.CurrentDocument
Call uidoc.Save
Set Doc2 = uidoc.Document
Set collection = ws.PickListCollection(PICKLIST_CUSTOM,True,db.Server,"lehre\StrategicMarketingIS.nsf","Person","Contacts"," " )
Set coldoc = collection.GetFirstDocument
Set rtitem = New NotesRichTextItem(Doc2, "SO_EconomicBuyer")
Call rtitem.AppendDocLink(coldoc, "Dokument")
Doc2.Form = "Sales Opportunity"
Doc2.Saveoptions = "0"
Call Doc2.Save(True, False)
unid = Doc2.UniversalID
Set Doc2 = db.GetDocumentByUNID(unid)
Set uidoc = ws.EditDocument(Doc2)
uidoc.editmode = True
End Sub
--- Ende Code ---
Dieser Code funktioniert soweit, jedoch wird die Mehrfachauswahl nicht beachtet. D.h. es wird -auch wenn ich mehrere Personen auswähle - nur ein Link erzeugt. Hat jemand einen Tipp, wie die Schleife aussehen müsste? Und außerdem: ist das Skript effizient und sauber? Hat jemand Verbesserungsvorschläge?
Gruß
Björn
Axel:
Hi,
die Schleife müsste so aussehen:
--- Code: ---...
Set collection = ws.PickListCollection(PICKLIST_CUSTOM,True,db.Server,"lehre\StrategicMarketingIS.nsf","Person","Contacts"," " )
Set coldoc = collection.GetFirstDocument
Set rtitem = New NotesRichTextItem(Doc2, "SO_EconomicBuyer")
While Not (coldoc Is Nothing)
Call rtitem.AppendDocLink(coldoc, "Dokument")
Call rtitem.AddNewLine(1) 'Einfügen einer Zeilenschaltung
Set coldoc = collection.GetNextDocument(coldoc)
Wend
Doc2.Form = "Sales Opportunity"
...
--- Ende Code ---
So auf den ersten Blick ist am Code nichts auszusetzen.
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln