Domino 9 und frühere Versionen > ND7: Entwicklung
NotesViewEntryCollection als Rueckgabewert einer Funktion
geppertb:
Hallo,
ich habe ein kleines Problem und zwar wollte ich eine Variabel des Typs 'NotesViewEntryCollection' als Rueckgabewert einer Funktion. Innerhalb der folgenden Funktion kann ich auf die Dokumente ohne Probleme zugreifen:
--- Code: ---Function dbwsBuscarSecoes(sIdIdioma As String ) As NotesViewEntryCollection
On Error Goto ErrorHandler
Dim nvSecao As NotesView
Dim chave As String
' Busca visão de páginas
' =======================
Set nvSecao = DbCadastrosWebsite.GetView("($BDWS-SECA)")
If nvSecao Is Nothing Then
Error 5000, "Erro acessando visão de seção."
End If
chave = sIdIdioma
Set dbwsBuscarSecoes = nvSecao.GetAllEntriesByKey(chave, True)
Exit Function
ErrorHandler:
Call terrTratarErro( Session, "", "dbwsBuscarSecoes", Error$, Err, Erl )
Exit Function
End Function
--- Ende Code ---
Wenn ich jetzt allerdings diese Funktion aufrufen moechte liefert sie mir einen Fehler (Error 91, Object Variable not set).
--- Code: ---Dim Result As NotesDocumentCollection
Set Result = dbwsBuscarSecoesx("PT")
Msgbox Result.Count
--- Ende Code ---
Schreibe ich nun das ganze auf NotesDocumentCollection um funktionierts, allerdings verliere ich dabei auch die Sortierung, auf welche ich nicht verzichten kann.
Wie kann ich also eine sortierte NotesViewEntryCollection aus einer Funktion zurueckgeben?
mfg
Bastian
ZaLudtske:
Hallo,
das Problem ist bekannt. Du mußt der Prozedur als Paramater den Bezug auf die View übergeben. Bei deiner Vorgehensweise wird der Rückgabewert beim Aussprung aus der Funktion gelöscht.
mfg
Rainer
geppertb:
Hallo Zaludtske,
wenn ich dich richtig verstanden habe dann soll ich, anstatt die NotesViewEntryCollection als Rueckgabewert der Funktion zu uebergeben als Parameteruebergeben?
--- Code: ---Function dbwsBuscarSecoes(sIdIdioma As String, myVar As NotesViewEntryCollection ) As String
On Error Goto ErrorHandler
Dim nvSecao As NotesView
Dim chave As String
' Busca visão de páginas
' =======================
Set nvSecao = DbCadastrosWebsite.GetView("($BDWS-SECA)")
If nvSecao Is Nothing Then
Error 5000, "Erro acessando visão de seção."
End If
chave = sIdIdioma
Set myVar = nvSecao.GetAllEntriesByKey(chave, True)
dbwsBuscarSecoes = ""
Exit Function
ErrorHandler:
Call terrTratarErro( Session, "", "dbwsBuscarSecoes", Error$, Err, Erl )
Exit Function
End Function
--- Ende Code ---
und dann diesen wert auslesen:
--- Code: --- Dim myVar As NotesDocumentCollection
Call dbwsBuscarSecoesx("PT", myVar )
Msgbox myVar .Count
--- Ende Code ---
Dies habe ich schon probiert und es hat leider auch nicht geklappt. Vielleicht ist es an dieser Stelle interessant, dass die erste Funktion (dbwsBuscarSecoes) in einer Bibliothek steckt und ich das ganze aus einem Agent heraus aufrufe.
s_Old:
--- Zitat von: geppertb am 31.03.09 - 14:24:53 ---Hallo Zaludtske,
wenn ich dich richtig verstanden habe dann soll ich, anstatt die NotesViewEntryCollection als Rueckgabewert der Funktion zu uebergeben als Parameteruebergeben?
--- Ende Zitat ---
Ich hab´s so verstanden, dass du die NotesView mit übergeben musst... nur keine Ahnung, ob die schon gesetzt sein muss oder nicht??
ZaLudtske:
Der Notesview muß gesetzt übergeben werden.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln