Domino 9 und frühere Versionen > ND6: Entwicklung

Problem mit Datenübergabe

<< < (5/5)

DAU-in:

--- Zitat von: bikerboy am 16.10.07 - 09:17:36 ---ein spiel mit dem feuer ich weiss, aber man muss ja nur einmal einen blick auf die deklaration werfen

--- Ende Zitat ---

Bei etwas verzwickteren Sachen ist der Blick auf die Deklaration nicht immer einfach - vor allem, wenn du mehrere Scriptlibrarys hast und dazu global definierte Variablen.

Andrew Harder:
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:

--- Code: ---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
--- Ende Code ---

frankie07:
Hallo zusammen,

vielen Dank für eure schnelle und kompetente Hilfe. Aber ich muss ganz ehrlich gestehen, dass mich das alles schon ein wenig verwirrt  ???

Ich habe bis jetzt folgenden Code:
Sub Click(Source As Button)
     Dim session As New notessession
     Dim db As notesdatabase
     Dim doc As notesdocument
     Dim ws As New NotesUIWorkspace
     Dim uidoc As NotesUIDocument
   
     Set db = session.currentdatabase
     Set doc = db.getDocumentByUNID ("78E5B66BE7BA1B27C1257313002AE7EF")

     Call ws.EditDocument(True, doc)
End Sub

Wenmn ich auf die Schaltfläche klicke, öffnet sich auch wunderbar das gewünschte Dokument. Jetzt will ich eben nur noch einen Wert in das gerade geöffnete Dokument übergeben.

pete_bla:
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:

--- Code: ---     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()

--- Ende Code ---

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.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln