Domino 9 und frühere Versionen > ND6: Entwicklung

DocLink im Frontend einfügen nach Auswahl

(1/2) > >>

jofa:
Hi @all,

ich habe folgendes Problem,
ich möchte in einem RichTextFeld einen DocLink zu einem anderen Dokument einfügen. Das Script läuft soweit auch und erzielt im Debugger keinen Fehler und belegt die Felder korrekt, dennoch wird der DocLink nicht gespeichert.

Hier mein Script:

---snip---
Sub Click(Source As Button)
   
   Dim session As New notessession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   
   Dim docUNID As String  
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = ws.CurrentDocument 'get the frontend doc
   
   Dim backendDoc As NotesDocument
   Set backendDoc = uidoc.Document 'get the backend doc
   
   Dim rtitem As NotesRichTextItem
   Set rtitem = backendDoc.GetFirstItem( "T_Vert1" )
   
   
   Dim docPick As New NotesDocument( db )
   
   Dim vStringArray As Variant
   Dim tname As String
   Dim vname As NotesItem
   Dim nname As NotesItem
   
   vStringArray = ws.PickListStrings(PICKLIST_CUSTOM, False, db.Server, db.FilePath, "ID", "Vertretung", "Bitte wählen Sie eine Vertretung aus.", 5, "")
   
   tname = Fulltrim(vStringArray(0))
   
'   Set view   = db.GetView("ID")
   
   Set tdoc   = db.GetDocumentByUnId(tname)
   
   Set vname   = tdoc.Getfirstitem("T_Vorname")
   Set nname   = tdoc.Getfirstitem("T_Name")
   
   
   Msgbox tname & ": " & vname.Text & " " & nname.Text
   
   backendDoc.RemoveItem( "T_Vert1" )
   
   Set rtitem = New NotesRichTextItem( backendDoc, "T_Vert1")
   Call rtitem.AppendDocLink( tdoc, vname.Text & " " & nname.Text, vname.Text & " " & nname.Text)
   
   
   Call backendDoc.Save( True, True) ', True )
   
   Call uidoc.Refresh(True)
   
'   Call uidoc.Close
   

End Sub
---snap---

Hat von Euch einer einen Tip ?

Gruss JoFa

jofa:
ich habs:

---snip---
Sub Click(Source As Button)
   
   Dim session As New notessession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   
   Dim docUNID As String  
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = ws.CurrentDocument 'get the frontend doc
   
   Dim backendDoc As NotesDocument
   Set backendDoc = uidoc.Document 'get the backend doc
   
   Dim rtitem As NotesRichTextItem
   Set rtitem = backendDoc.GetFirstItem( "T_Vert2" )
   
   
   Dim docPick As New NotesDocument( db )
   
   Dim vStringArray As Variant
   Dim tname As String
   Dim vname As NotesItem
   Dim nname As NotesItem
   
   vStringArray = ws.PickListStrings(PICKLIST_CUSTOM, False, db.Server, db.FilePath, "ID", "Vertretung", "Bitte wählen Sie eine Vertretung aus.", 5, "")
   
   tname = Fulltrim(vStringArray(0))
   
   Set tdoc   = db.GetDocumentByUnId(tname)
   
   Set vname   = tdoc.Getfirstitem("T_Vorname")
   Set nname   = tdoc.Getfirstitem("T_Name")
   
'   Msgbox tname & ": " & vname.Text & " " & nname.Text
   
   backendDoc.RemoveItem( "T_Vert2" )
   
   Set rtitem = New NotesRichTextItem( backendDoc, "T_Vert2")
   Call rtitem.AppendDocLink( tdoc, vname.Text & " " & nname.Text, vname.Text & " " & nname.Text)
   Call backendDoc.Save( True, True) ', True )
   
   backendDoc.saveoptions="0"
   
   Call uidoc.close
   Set uidoc=ws.editdocument(True,backendDoc,False)
   Call uidoc.GotoField("T_Vert2")
   
   
End Sub
---snap---

GRuss JoFa

cash:
soetwas will ich auch machen... Komme aber garnicht klar.

Ich habe in einer Maske eine Schaltfläche (Picklist) wenn man dort drauf klictk und sich ein Dokument aus der Ansicht ID aussucht wird die Dok_ID aus Spalte 3 per Prompt ausgegeben (vorher in Variabe _ID geschrieben. Wie kriege ich es hin das in der aktuellen Maske durch diese Dok_ID ein DokLink in das Feld DocLink erzeugt wird??

Cash

dirk_2909:
Hallo

Wenn in einem Textfeld (!!) ein Dokumentlink angezeigt werden soll, muss in dem Feld die entsprechende DocumentUniqueID gespeichert sein! NICHT als Text!

Tipp:
ab Version 6 kannst Du mit einem @DBLookUp die DocumentUniqueID zurückgeben lassen !

Hinweis:

Bitte keine uralt Threads wieder aufmachen!!!  :-P
Erstelle einen neuen !

Thomas Schulte:
So wie es hier beschrieben ist gar nicht. Das funktioniert nämlich nur mit RT Feldern und der unten beschriebenen Umwandlung mit AppendDoclink.

Außerdem ist ein DOCLink ein ganz spezielles Feld vom Typ NoteRef wie sich jeder überzeugen kann der mal mit einem Linksklick auf ein Dokument geht in dem ein berechnetes Feld mit @DocumentUniqueID drinsteht.

Das lässt sich auch mit keinem Tool bearbeiten. Weder mit ScanEz von Ytria noch mit NoteMan.

Aber was man mit dem Feld machen kann ist es als NotesItem in ein anderes Feld hineinzukopieren.
Also ist die Vorgehensweise diese:
Im Ursprungsdokument ein berechnetes Feld Link2Myself haben das schlicht und einfach nur die @DocumentUniqueID empfängt.
Und dann bei der Übergabe ein copyitem.
Fertig ist die Laube.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln