Domino 9 und frühere Versionen > Entwicklung

Rückgabewert einer Funktion

(1/4) > >>

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