Domino 9 und frühere Versionen > Entwicklung
+++ Q: Automatisches Generieren eines DocLinks +++
geisslix:
@ata, @Centaury,
habe aus euren antworten geschlossen, dass der weg über ein Namen-Auswahlfeld wohl der falsche ist. soweit ersteinmal danke.
habe jetzt
@PickList( [Custom] : [Single] ; Server : Datei ; Ansicht ; Titel ; Eingabeaufforderung ; Spalte ; Kategorie )
auf eine schaltfläche gelegt, auf eine ansicht in der adressdatenbak verwiesen, lese dort spaltenwerte aus und lasse diese werte in meiner maske in berechnete felder eintragen.
in dieser ansicht habe ich auch einen spaltenwert, der mit @Text(@DocumentUniqueID) die dokumenten-ID anzeigt, die ich verwenden wollte, um einen DocLink in meiner maske zu erzeugen.
das hat natürlich nicht geklappt.
die dokumenten-ID wird zwar sauber übernommen (jedoch nur, wenn das berechnete feld vom typ text ist, als rich text aktualisiert er das feld nicht, wenn ich einen anderen namen auswähle, es bleibt der bei der ersten auswahl gesetzte eintrag stehen).
weiter weiss ich nicht, wie ich jetzt aus der Dokumenten-ID den DocLink basteln muss, der bei mausklick auf das dokument in der adressdatenbank linkt.
ich bin für weitere anregungen dankbar.
cu
klaussal:
rich-text-felder müsser erst gespeichert werden (also das doc). sonst ist da nix drinne...
ata:
... ich hätte es mit LotusScript gelöst. Wie fit bist du mit LS?
ata
geisslix:
@ ata,
ich würde mich eher als engagierten anwender bezeichnen denn als fitten programmierer. :-[
ich glaube jedoch, ls lesen, einigermaßen verstehen und anpassen zu können.
deshalb bin ich auch brennend an einen programmatischen ansatz interessiert, der mein oben beschriebenes problem lösen könnte.
wenn du einen ansatz hättest, der in ls vorhanden ist und für mein problem von mir angepasst werden müsste, wäre ich mehr als zufrieden.
geisslix
Axel:
Hi,
ich hab' mal so was ähnliches realisiert. Ich habe eine Adressdatenbank und eine dazugehörige Vorgangsdatenbank, in der zu den einzelnen Adresse Vorgänge, wie Korrespondenz, Mails etc. gespeichert werden. Aus den Vorgangsdokumenten lassen sich Aufgaben in der jeweiligen Maildatenbnak des Users erzeugen. In den Aufgaben werden zwei DocLinks eingefügt, einmal der zum Vorgangsdokument und zum anderen ein Link zu Adress-Dokument.
Hier ist der Code des Agenten. Er wird über eine Aktion aus dem jeweiligen Dokument ausgeführt.
--- Zitat ---Sub Initialize
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim maildb As NotesDatabase
Dim adressdb As NotesDatabase
Dim currentdb As NotesDatabase
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim adrdoc As NotesDocument
Dim taskdoc As NotesDocument
Dim taskuidoc As NotesUIDocument
Dim rtitem As NotesRichTextItem
Dim strTemp As String
Dim vDbName As Variant
Dim iAdressDbError As Integer
iAdressDbError = 0
Set currentdb = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
'Prüfen ob Mail-DB vorhanden
Set maildb = New NotesDatabase("","")
Call maildb.OpenMail
If Not maildb.IsOpen Then
Messagebox "Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es wird keine Aufgabe erstellt.", 16, "Adressen"
Exit Sub
End If 'If Not maildb.IsOpen Then
If ConfigLookup("xAdressDB", vDbName) And vDbName(0) = "" Then
iAdressDbError = 1
Else
Set adressdb = New NotesDatabase(currentdb.Server, vDbName(0))
If Not adressdb.IsOpen Then
iAdressDbError = 1
End If 'If Not adressdb.IsOpen Then
End If 'If ConfigLookup("xAdressDB", vDbName) Then
Set adrdoc = adressdb.GetDocumentByUNID(doc.xAdressID(0))
If adrdoc Is Nothing Then
iAdressDbError = 1
End If 'If adrdoc Is Nothing Then
'Neue Aufgabe erstellen
Set taskdoc = New NotesDocument(maildb)
taskdoc.Form = "Task"
Call taskdoc.ComputeWithForm(True, True)
If doc.Kontaktperson(0) = "" Then
strTemp = doc.Firma(0)
Else
strTemp = doc.Kontaktperson(0) + " - " + doc.Firma(0)
End If 'If doc.Kontaktperson(0) = "" Then
taskdoc.Subject = "Aufgabe zu einem Vorgang zu " + strTemp
'Anlegen und füllen des Richtextfeldes
Set rtitem = taskdoc.CreateRichTextItem("Body" )
Call rtitem.AppendText(doc.Aktionen(0))
Call rtitem.AddNewLine(2)
Call rtitem.AppendText("Vorgang -> ")
Call rtitem.AppendDocLink(doc, "")
If Not iAdressDbError Then
Call rtitem.AddNewLine(2)
Call rtitem.AppendText("Adresse -> ")
Call rtitem.AppendDocLink(adrdoc, "")
End If 'If Not iAdressDbError Then
Call taskdoc.Save(True,False) 'Temp. Speichern des Backend-Doc. damit RTF-Feld angezeigt wird.
Set taskuidoc = workspace.EditDocument(True, taskdoc) 'Dokument im Frontend öffnen
Call taskdoc.Remove(True) 'Das Dokument, das im Backend erstellt wurde, löschen
End Sub
--- Ende Zitat ---
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln