Autor Thema: Problem mit Datenübergabe  (Gelesen 4562 mal)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Problem mit Datenübergabe
« Antwort #20 am: 16.10.07 - 09:34:48 »
ein spiel mit dem feuer ich weiss, aber man muss ja nur einmal einen blick auf die deklaration werfen

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.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: Problem mit Datenübergabe
« Antwort #21 am: 16.10.07 - 10:06:24 »
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
Andy

Offline frankie07

  • Frischling
  • *
  • Beiträge: 8
Re: Problem mit Datenübergabe
« Antwort #22 am: 16.10.07 - 11:16:07 »
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.

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: Problem mit Datenübergabe
« Antwort #23 am: 16.10.07 - 11:35:15 »
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()

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.
« Letzte Änderung: 16.10.07 - 11:38:02 von pete_bla »
pete(r)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz