Domino 9 und frühere Versionen > ND7: Entwicklung
DokumentObjekt als Funktionsrückgabewert?!
samWare:
Hallo Leute,
ich hab gerade eben was Probiert, sieht ungefähr so aus:
--- Code: ---Funktion get_doc() as NotesDocument
...BLABLA...
Dim vw As NotesView
...View holen usw, usw...
'DokumentObjekt zurückgeben
Set get_doc = vw.GetFirstDocument
End Function
--- Ende Code ---
Nutzen wollte ich das ganze dann wiefolgt:
--- Code: ---....BLABLABLA....
Dim doc As NotesDocument
...BLABLABLA....
Set doc = get_doc()
--- Ende Code ---
Funktioniert leider nicht. Ihr werdet mir bestimmt auch sofort sagen können warum ;) Ich würde die Sache sehr toll finden, da ich bisher immer nur Integers, Strings und weis der Geier was zurückgegeben habe, und docObjects immer nur per ÜbergabeWert verändert // gesetzt habe.
Ich wär echt glücklich wenn das so auf die Art und Weise irgendwie Funktionieren könnte..
mfg Samuel
Edit: Der Debugger zeigt mir in der get_doc() Funktion am Ende an dass er get_doc auf das Dokument gesetzt hat. Das scheint also zu Funktionieren. Ich kriege dann nur das "doc"Objekt im unteren Code nicht gesetzt... :'(
dirk_2909:
..weil Du dasd BackendDoc über die View holst.
Das View Handle ist aber nur in der externen Funktion verfügbar. In der aufrufenden Methode ist das View-Object nicht verfügbar und somit auch nicht seine Unterobjekte.
Wenn, dann musst Du die View (und auch die db) global deklarieren.
samWare:
Würde das auch auf eine andere Art und Weiße funktionieren? Kann mir grad nicht vorstellen wie das klappen soll, da beide Funktionen später in verschiedenen LS_Libs liegen würden. Kann man das überhaupt auf die Art ordentlich lösen oder muss ich das per ÜbergabeObjekt lösen?
BigWim:
Dann muss Du Deiner Funktion die View mitgeben.
Also in etwa so:
function Get_doc (tmpView as view) as NotesDocument
Set Get_doc=tmpView.GetFirstDocument
End Function
Stichwort "objektorientiertes Denken" ;)
Aber, wie gesagt, man kann sich da sehr leicht "verschachteln" (war sehr lehrreich)
Markus
samWare:
Also doch mit ÜbergabeObjekt.. neiiin! Schrecklich! Ich wollte das nutzen um ein KonfigurationsDokument aus einer externen DB zu laden. Da spar ich mir ja nicht viel wenn ich das über diese Methode löse... :'(
Dann wär aber das noch das schlauste:
--- Code: ---Dim tmpdoc As NotesDocument
Call get_doc(tmpdoc)
--- Ende Code ---
--- Code: ---Function get_doc(tmpdoc As NotesDocument)
....
Dim vw As NotesView
....
Set doc = vw.GetFirstDocument
--- Ende Code ---
Nur blöd dass "tmpdoc" immer "tmpdoc" heißen muss... :'(
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln