hmmm ich hatte nur kurz auf die Deklaration geachtet,
dachte wir haben hier nur Snippets.
Dann holt er sich halt das aktuelle uidoc mit
Set uidoc = ws.currentdocument
das sollte ja dann das Dokument sein in dem er den Knopf gedrückt hat.
Verstehe ich das richtig? Beim drücken auf einen Knopf in dem Dokument, soll ein anderes Dokument geöffnet werden und dabei ein Feldwert übertragen werden?
Ich habe mal gar keine Ahnung woher Du die ID des Dokumentes nimmst, aber das soll mal nicht hier das Hauptthema sein.
Versuche mal so etwas:
Option Declare
Dim session As NotesSession
Dim dbCurrent As NotesDatabase
Sub Initialize
Set session = New NotesSession
Set dbCurrent = session.CurrentDatabase
End Sub
Sub Click(Source As Button)
'
On Error Goto ErrorHandler
'
Dim uiws As NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim docCurrent As NotesDocument
Dim docEdit As NotesDocument
Dim sDocUNID As String
'
Set uiws = New NotesUIWorkspace
Set uidoc = uiws.CurrentDocument
Set docCurrent = uidoc.Document
Let sDocUNID = "78E5B66BE7BA1B27C1257313002AE7EF" ' woher kommt die?
Set docEdit = dbCurrent.GetDocumentByUNID( sDocUNID )
Call docEdit.CopyItem( docCurrent.GetFirstItem( "avd_kont_art" ), "test" )
Call uiws.EditDocument( True, docEdit )
'
end_S:
Exit Sub
'
ErrorHandler:
Print "ERORR in line " + Cstr(Erl) + ": " + Error$(Err) + " (" + Cstr(Err) + ")"
Resume end_S
'
End Sub
Hi,
also wie schon angedeutet fehlt Dir das 2. UIDokument, das Du nun neu öffnen willst.
Hast Du schonmal in der Desingerhilfe nachgesehen ? (immer informativ, im desinger einfach auf F1 drücken.)
Sieh mal unter "NotesUIDocument" "NotesUIWorkspace" nach!
Deines Lösels Rätzung ist:
Dim uidoc As NotesUIDocument ' das Aktuell vorliegenden UIDokument für Quelle
' neu: ---->
Dim uidoc2 As NotesUIDocument ' zu öffnendes UIDokument für Ziel der Daten
set UIDoc = WS.CurrentDocument ' falls Du das nicht schon haben solltest
' <-----
Set db = session.currentdatabase
Set doc = db.getDocumentByUNID ("78E5B66BE7BA1B27C1257313002AE7EF")
' streichen: Call ws.EditDocument(True, doc)[/s]
' erstezen durch:
Set UIDoc2 = ws.EditDocument(True, doc)
' neu: ---->
If not UIDoc2.Editmode = TRUE then
Messagebox "Kann das Dokument nicht bearbeiten!"
Exit sub ' oder Function oder was du grade hast
End if
' frontend aus frontend variante:
Call UIDoc2.FieldSettext("Feld1", UIDoc.FieldGetText("Feld1") )
' oder: frontend aus backend variante:
Call UIDoc2.FieldSettext("Feld1", Doc.Feld1(0) )
' noch ein refresh:
Call UIDoc2.Refresh()
Du solltest Deine Daten in das neu geöffnete UIDokument schreiben, da dann auch auch die regulären Funktionen des Zieldokuments verwendet werde.
Eingabefehler, Falsche Felder... (ist hier gewollt!)
Falls Du noch Fragen hast, stell sie.
Grüsse, Pete(r)
PS. noch vermisse ich Deinen Link vom Domino-Forum hierher.