Autor Thema: Probleme mit dem Rückgabewert einer Funktion  (Gelesen 2316 mal)

Offline hOtze

  • Aktives Mitglied
  • ***
  • Beiträge: 159
  • Geschlecht: Männlich
  • .:[gEHt nIt???? gIBTs nIt!!!!]:.
Probleme mit dem Rückgabewert einer Funktion
« am: 17.01.03 - 12:01:34 »

Moje!

Hab hier mal wieder ein Prob, was ich mir nicht erklären kann! Hoffe ihr könnt mir helfen.

Habe eine Funktion der ich diverse Parameter mitgebe. DIese Funktion soll dann aufgrunde der Parameter eine Piclist liefern, und dann aufgrunde der Auswahl das entsprechende Dokument der Funktion als NotesDocument zurückgeben!

Die Funktion habe ich in eine Scriptbibliothek eingelagert!

Sie Funktioniert auch soweit! Im Debuger sehe ich das das dokument einwandfrei selektiert wird, aber leider wird das doc nicht aus der Funktion übermittelt! Woran kann das liegen?

Ich poste gleich auch mal den code bevor jemand fragt:

--------------------------------------------BUTTON SCRIPT
Dim ws As New NotesUiWorkspace
Dim s As New NotesSession

Dim doc As NotesDocument
Dim zdoc As NotesDocument
Dim db As NotesDatabase
Dim link As String
Dim ansicht As String

Set doc = ws.CurrentDocument.Document
Set db = s.CurrentDatabase


ansicht = "Navigatoren"

'------ [FUNKTIONSAUFRUF] -----------
Set zdoc = PickListView(db.filename, ansicht,2 )
'------ [FUNKTIONSAUFRUF] -----------


If zdoc Is Nothing Then
Exit Sub
End If

--------------------------------------------FUNCTION SCRIPT
Function PicklistView(dbname As String, viewname As String, columnr As Integer) As NotesDocument

Dim ws As New NotesUiWorkspace
Dim s As New NotesSession
Dim db As NotesDatabase
Dim zieldb As NotesDatabase
Dim zieldoc As NotesDocument
Dim result As Variant
Dim dbpfad As String



Set db = s.CurrentDatabase
dbpfad =pfad+"\" +dbname

result = ws.PickListStrings( PICKLIST_CUSTOM, False, server,dbpfad , viewname, "[BOG Logistik] Document Picker" , "Bitte ein Dokument auswählen: " , Cstr(columnr) )
If Isempty(result) Then
Exit Function
End If
If result(0) = "" Then
result = Msgbox("Fehlerhafte Auswahll! Es wurde kein Dokument ausgewählt! Bitte wiederholen Sie ihre Auswahl!",0+16,"[BOG Logistik] Document Picker")
Exit Function
End If

Set zieldb = s.GetDatabase(server,pfad + "\"+ dbname)
Set zieldoc = zieldb.GetDocumentByUnId(result(0))
Set PickListView = zieldoc
End Function


...........::]hOtze[::...............................................

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Probleme mit dem Rückgabewert einer Funktion
« Antwort #1 am: 17.01.03 - 12:14:28 »
wenn du ein dok zurückgeben willst mach es doch mit der Picklistcollection

das geht schneller - deine suche nach der Auswahl entfällt

cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline hOtze

  • Aktives Mitglied
  • ***
  • Beiträge: 159
  • Geschlecht: Männlich
  • .:[gEHt nIt???? gIBTs nIt!!!!]:.
Re:Probleme mit dem Rückgabewert einer Funktion
« Antwort #2 am: 17.01.03 - 12:21:18 »
Ja gut das werde ich gleich nach Mittag mal austesten, aber woran liegt das das das Dokument nicht zurüggegeben wird!

Die Zuweisung in der Funktion funktioniert ja noch! (laut debugger)
nur wenn er dann wieder ins UrsprungsScript springt, is es nicht mehr da!  ???
...........::]hOtze[::...............................................

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Probleme mit dem Rückgabewert einer Funktion
« Antwort #3 am: 17.01.03 - 12:35:18 »
wie rufst du die Funktion auf ?

notesdok = PicklistView("", "", 1)  oder ?

müsste funktionieren


cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline hOtze

  • Aktives Mitglied
  • ***
  • Beiträge: 159
  • Geschlecht: Männlich
  • .:[gEHt nIt???? gIBTs nIt!!!!]:.
Re:Probleme mit dem Rückgabewert einer Funktion
« Antwort #4 am: 17.01.03 - 13:49:36 »
Jiep rufe die Funktion so auf

'------ [FUNKTIONSAUFRUF] -----------
Set zdoc = PickListView(db.filename, ansicht,2 )
'------ [FUNKTIONSAUFRUF] -----------

zdoc ist auch als NotesDocument deklariert, genau so wie der Rückgabewert der Funktion!  ???


--------------EDIT------------------------------------------------------------------



Hab jetzt gerade mal ausprobiert: und laß mir nicht das Dokument, sondern dessen ID zurück geben also einen String!

Shizophren ist das der String einwandfrei übergeben wird, will ich das aber mit dem Dokument machen, funktioniert das nicht!
WARUM????? Hilfe! Bin hier total am verzweifeln! Was mach ich denn falsch?



--------------EDIT------------------------------------------------------------------
Soooooo ..... wenns intressiert habe gerade im LDD die Lösung gefunden!
Die Funktion muß als static deklariert sein!
« Letzte Änderung: 17.01.03 - 15:21:50 von hOtze »
...........::]hOtze[::...............................................

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Probleme mit dem Rückgabewert einer Funktion
« Antwort #5 am: 17.01.03 - 15:35:53 »
ok - wenn du den String zurückbekommst musst du deine zieldb auch öffnen
Set zieldb = s.GetDatabase(server,pfad + "\"+ dbname)
flag =  zieldb.open(server, dbfile)
if flag then
Set zieldoc = zieldb.GetDocumentByUnId(result(0))
end if

-- das ist aber der komplizierte Weg, vor allem weil du in der gleichen db nochmal die gleiche db initialisierst und öffnest eben über eine neue Variable.


ich würde das so machen:
Dim col As NotesDocumentCollection
Set col = ws.PickListCollection( PICKLIST_CUSTOM, False, db.server, db.filepath, viewname, "Document Picker" , "Bitte ein Dokument auswählen" )
If Not col Is Nothing Then
   Set PicklistView = col.GetFirstDocument
End If



cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline Doc Torte

  • Aktives Mitglied
  • ***
  • Beiträge: 178
  • Geschlecht: Männlich
  • ...promovierter Bäcker... ;-)
    • ...that's me
Re:Probleme mit dem Rückgabewert einer Funktion
« Antwort #6 am: 17.01.03 - 15:50:40 »
schon mal probiert, das "Set" wegzulassen und einfach nur zu schreiben :

PickListView = zieldoc


???
Wer nicht ständig besser wird, hört bald auf gut zu sein !
Schritt für Schritt geht's immer vorwärts...

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Probleme mit dem Rückgabewert einer Funktion
« Antwort #7 am: 17.01.03 - 15:54:42 »
@Doc Torte

hast du das schon probiert   8) 8) 8) 8)

ich glaube jetzt brauche ich noch einen Beta Blocker  ;D ;D


cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline Doc Torte

  • Aktives Mitglied
  • ***
  • Beiträge: 178
  • Geschlecht: Männlich
  • ...promovierter Bäcker... ;-)
    • ...that's me
Re:Probleme mit dem Rückgabewert einer Funktion
« Antwort #8 am: 17.01.03 - 16:14:14 »
@Performance


...danke, wer lesen kann ist klar im Vorteil -

1:0 für Dich !

Wer nicht ständig besser wird, hört bald auf gut zu sein !
Schritt für Schritt geht's immer vorwärts...

Offline ToniTester

  • Frischling
  • *
  • Beiträge: 22
  • Ich liebe dieses Forum!
Re: Probleme mit dem Rückgabewert einer Funktion
« Antwort #9 am: 04.01.05 - 20:45:57 »
hey hOtze, danke dass du die Lösung da noch mit reingeschrieben hast. Hat mir gleich weitergeholfen!
Hier nochmal der komplette Link zum LDD Thread:
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/a0fd37d07868ea8a852568fc00444570?OpenDocument
----------------------------------------------------
...und in der Hilfe steht's natürlich auch drinnen  ::)
Static
Optional. Specifies that the values of the function's local variables are saved between calls to the function.
« Letzte Änderung: 04.01.05 - 20:56:46 von ToniTester »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz