Domino 9 und frühere Versionen > ND7: Entwicklung

NotesViewEntryCollection als Rueckgabewert einer Funktion

(1/2) > >>

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