Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: 7Stein am 14.09.04 - 15:07:10

Titel: Rückgabewert einer Funktion
Beitrag von: 7Stein am 14.09.04 - 15:07:10
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

Wie kann ich dann das Rückgabedokument aufrufen?
Mit
Code
Dim ResultDoc As NotesDocument

   ProcessPositions = ResultDoc

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?
Titel: Re:Rückgabewert einer Funktion
Beitrag von: Onkel ToM am 14.09.04 - 15:13:59
Gehts denn mit ResultDoc = ProcessPositions(...)

Bye
Onkel ToM
Titel: Re:Rückgabewert einer Funktion
Beitrag von: 7Stein am 14.09.04 - 15:21:21
Nein, aber mit einem set davor macht er das zwar,
aber ich denke dann ist der Funktionsaufruf rekursiv und Lotus hängt sich weg.
Titel: Re:Rückgabewert einer Funktion
Beitrag von: Onkel ToM am 14.09.04 - 15:23:10
Nö, das liegt dann an den Punkten zwischen den Klammern

uw

Onkel ToM
Titel: Re:Rückgabewert einer Funktion
Beitrag von: 7Stein am 14.09.04 - 15:38:58
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

Titel: Re:Rückgabewert einer Funktion
Beitrag von: koehlerbv am 14.09.04 - 16:01:02
Richtig wäre
Set ProcessPositions = DeinGefundenesNotesDocument

Nur ist mir völlig schleierhaft, WELCHES NotesDocument Du zurückgeben willst. Ausserdem hat Deine Function den Parameter "detaildoc", den Du aber überhaupt nicht benötigst, sondern in der function selbst ermittelst.

So ein Konstrukt funktioniert in keiner Programmiersprache.

Bernhard
Titel: Re:Rückgabewert einer Funktion
Beitrag von: 7Stein am 14.09.04 - 16:04:56
Das war der falsche Ansatz.
Ich habe den Fehler gefunden.

Er war an einer anderen Stelle im Code.
Danke trotzdem.

@koehlerbv
Nur weil du es nicht verstehst, musst du nicht gleich behaupten, dass es nicht funktioniert.
Titel: Re:Rückgabewert einer Funktion
Beitrag von: Don Pasquale am 15.09.04 - 08:15:13
@7Stein,

für Nachfolgende, die vielleicht über denselben Fehler gestolpert sind, wäre es fein, drucktest Du die Lösung bzw. den funktionierenden Code ab.
So haben alle was von Deinem Problem.

Ciao
Don Pasquale
Titel: Re:Rückgabewert einer Funktion
Beitrag von: klaussal am 15.09.04 - 08:21:34
@bernhard,
Vorsicht, bissiges Mitglied ... ;D ;)
klaus
Titel: Re:Rückgabewert einer Funktion
Beitrag von: eknori am 15.09.04 - 08:25:29
hier noch weiterführende Informationen aus dem Spotlight forum
http://www.spotlight.de/zforen/lts/m/lts-1095163229-32444.html (http://www.spotlight.de/zforen/lts/m/lts-1095163229-32444.html)
Titel: Re:Rückgabewert einer Funktion
Beitrag von: koehlerbv am 15.09.04 - 08:30:44
Wenn man sich an die unfreiwillige Komik dieser Postings hält, dann kann man der Sache sogar noch einigen Spass abgewinnen  ;D

Bernhard
Titel: Re:Rückgabewert einer Funktion
Beitrag von: klaussal am 15.09.04 - 08:42:45
Ich mag 7Stein inzwischen sogar ein bisschen.....  ;)
klaus
Titel: Re:Rückgabewert einer Funktion
Beitrag von: eknori am 15.09.04 - 08:46:14
*** hier fängt es aber jetzt langsam an zu rauschen ***
Titel: Re:Rückgabewert einer Funktion
Beitrag von: koehlerbv am 15.09.04 - 08:48:33
Dieser ganze Thread ist von Anfang an ein einziges Rauschen, Ulrich.
Titel: Re:Rückgabewert einer Funktion
Beitrag von: Glombi am 15.09.04 - 09:25:13
Ja, ist schon abenteuerlich.
Entweder eine Function mit Rückgabetyp NotesDocument oder ein Call By Reference (als Sub oder Function as Integer mit True/False).

Andreas
Titel: Re:Rückgabewert einer Funktion
Beitrag von: klaussal am 15.09.04 - 10:21:12
... was ist "rauschen".. ??? ???