Autor Thema: Rückgabewert einer Funktion  (Gelesen 4207 mal)

7Stein

  • Gast
Rückgabewert einer Funktion
« 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?

Onkel ToM

  • Gast
Re:Rückgabewert einer Funktion
« Antwort #1 am: 14.09.04 - 15:13:59 »
Gehts denn mit ResultDoc = ProcessPositions(...)

Bye
Onkel ToM

7Stein

  • Gast
Re:Rückgabewert einer Funktion
« Antwort #2 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.

Onkel ToM

  • Gast
Re:Rückgabewert einer Funktion
« Antwort #3 am: 14.09.04 - 15:23:10 »
Nö, das liegt dann an den Punkten zwischen den Klammern

uw

Onkel ToM

7Stein

  • Gast
Re:Rückgabewert einer Funktion
« Antwort #4 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


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Rückgabewert einer Funktion
« Antwort #5 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

7Stein

  • Gast
Re:Rückgabewert einer Funktion
« Antwort #6 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.
« Letzte Änderung: 14.09.04 - 16:12:00 von 7Stein »

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Rückgabewert einer Funktion
« Antwort #7 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

klaussal

  • Gast
Re:Rückgabewert einer Funktion
« Antwort #8 am: 15.09.04 - 08:21:34 »
@bernhard,
Vorsicht, bissiges Mitglied ... ;D ;)
klaus
« Letzte Änderung: 15.09.04 - 08:22:08 von klauss »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Rückgabewert einer Funktion
« Antwort #9 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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Rückgabewert einer Funktion
« Antwort #10 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

klaussal

  • Gast
Re:Rückgabewert einer Funktion
« Antwort #11 am: 15.09.04 - 08:42:45 »
Ich mag 7Stein inzwischen sogar ein bisschen.....  ;)
klaus

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Rückgabewert einer Funktion
« Antwort #12 am: 15.09.04 - 08:46:14 »
*** hier fängt es aber jetzt langsam an zu rauschen ***
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Rückgabewert einer Funktion
« Antwort #13 am: 15.09.04 - 08:48:33 »
Dieser ganze Thread ist von Anfang an ein einziges Rauschen, Ulrich.

Glombi

  • Gast
Re:Rückgabewert einer Funktion
« Antwort #14 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

klaussal

  • Gast
Re:Rückgabewert einer Funktion
« Antwort #15 am: 15.09.04 - 10:21:12 »
... was ist "rauschen".. ??? ???

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz