Domino 9 und frühere Versionen > Entwicklung
Rückgabewert einer Funktion
7Stein:
Wenn ich eine Funktion habe, die mir ein Document als Rückgabewert geben soll, als
--- Code: ---Public Function ProcessPositions(Doc, detaildoc)As NotesDocument
.........
End Function
--- Ende Code ---
Wie kann ich dann das Rückgabedokument aufrufen?
Mit
--- Code: ---Dim ResultDoc As NotesDocument
ProcessPositions = ResultDoc
--- Ende Code ---
funktioniert es nicht.
Aber wenn eine Funktion einen Integer oder einen Varianttyp zurückgeben soll, mche ich das immer so, und das funktioniert auch ohne Probleme.
habe ich da irgendwo einen Fehler oder kann Lotus kein Dokument zurückgeben?
Onkel ToM:
Gehts denn mit ResultDoc = ProcessPositions(...)
Bye
Onkel ToM
7Stein:
Nein, aber mit einem set davor macht er das zwar,
aber ich denke dann ist der Funktionsaufruf rekursiv und Lotus hängt sich weg.
Onkel ToM:
Nö, das liegt dann an den Punkten zwischen den Klammern
uw
Onkel ToM
7Stein:
ja uns was muss ich dahin schreiben?
--- Code: ---Public Function ProcessPositions(Doc, detaildoc)As NotesDocument
Dim collection As NotesDocumentCollection
Dim posDoc As NotesDocument
Dim ResultDoc As NotesDocument
Dim i As Integer
If Doc.EditKst(0) = 1 Then
Doc.EditKst = 0
Doc.BestellNr = GetNextBestellNr( Doc ) Call Doc.save( True, True )
End If
Set collection = db.Search( |Form = "Bestellposition" & ParentUNID = "| + Doc.UniversalID + |"|, Nothing, 0 )
' zur Sicherheit neu abspeichern
Doc.LastDetailPos = collection.Count
For i = 1 To collection.Count
Set detailDoc = collection.GetNthDocument(i)
' Zur Sicherheit neu durchnummerieren
detailDoc.Pos = i
detailDoc.BestellNr = Doc.BestellNr
detailDoc.HB = Doc.HB
detailDoc.Kst = Doc.Kst
detailDoc.Status = Doc.Status
Call detailDoc.Save( True, True )
If detailDoc.SonderBestellung(0) = "1" Then
' Call pingSonderBesteller( posDoc )
End If
Next
Set ResultDoc= ProcessPositions(?,?)
End Function
--- Ende Code ---
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln