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:
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
Wenn ich jetzt allerdings diese Funktion aufrufen moechte liefert sie mir einen Fehler (Error 91, Object Variable not set).
Dim Result As NotesDocumentCollection
Set Result = dbwsBuscarSecoesx("PT")
Msgbox Result.Count
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
Hallo Zaludtske,
wenn ich dich richtig verstanden habe dann soll ich, anstatt die NotesViewEntryCollection als Rueckgabewert der Funktion zu uebergeben als Parameteruebergeben?
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
und dann diesen wert auslesen:
Dim myVar As NotesDocumentCollection
Call dbwsBuscarSecoesx("PT", myVar )
Msgbox myVar .Count
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.
Danke ZaLudtske,
ich habe es getestet und es funktioniert, fuer diejenigen die das gleiche Problem haben wie ich schreibe ich noch wie meine funktion richtig aussieht:
Function dbwsBuscarSecoes(sIdIdioma As String, myView As NotesView ) As NotesViewEntryCollection
On Error Goto ErrorHandler
Dim chave As String
chave = sIdIdioma
Set dbwsBuscarSecoes = myViewGetAllEntriesByKey(chave, True)
Exit Function
ErrorHandler:
Call terrTratarErro( Session, "", "dbwsBuscarSecoes", Error$, Err, Erl )
Exit Function
End Function
und der Aufruf:
Dim myVar As NotesViewEntryCollection
Dim myView As NotesView
Set myView = db.getView("($BDWS-SECA)")
myVar = dbwsBuscarSecoesx("PT", myView)
Msgbox myVar .Count