Domino 9 und frühere Versionen > Entwicklung

+++ Q: Automatisches Generieren eines DocLinks +++

<< < (2/3) > >>

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