Autor Thema: Durchgereichte Variable verliert Werte  (Gelesen 1414 mal)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Durchgereichte Variable verliert Werte
« am: 11.10.11 - 09:07:00 »
Hallo @All

Folgendes Konstrukt:

Code
Function Lese_Daten( listINFO List As Variant ) As Boolean
   listINFO( "message" ) = "Dies ist ein Test"
End Function

Function Zeige_Daten() As Boolean
   Dim listINFO List As Variant
   Call Lese_Daten( listINFO )
   If IsElement( listINFO("message") ) Then
      MsgBox listINFO( "message" )
   Else
      MsgBox "... gibt es nicht..."
   End If
End Function

... es wäre zu erwarten, daß ich hier "Dies ist ein Test" angezeigt bekomme. Stattdessen erhalte ich die Meldung "... gibt es nicht..."

Im Debugger kann ich die List-Variable sehen und der List-Tag "message" existiert und ist befüllt, sowohl in der Funktion zum Befüllen, als auch zu Lesen.

Kennt das jemand und kann mir auf die Sprünge helfen?

Toni ???
« Letzte Änderung: 11.10.11 - 09:43:12 von ata »
Grüßle Toni :)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Durchgereichte Variable verliert Werte
« Antwort #1 am: 11.10.11 - 09:12:42 »
... ich muß noch erwähnen, daß ich diesen Code in einem Button zum Testen verwende und da funktioniert alles Bestens - nur in der Original-Library nicht.
Kann es damit zusammenhängen, daß die beiden Funktionen im Original aus unterschiedlichen Libraries/Datenbanken kommen?

Ich hätte gesagt - eigentlich nicht...
Grüßle Toni :)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Durchgereichte Variable verliert Werte
« Antwort #2 am: 11.10.11 - 09:18:15 »
Also in einem Agenten funktioniert es bei mir auch
Code
Option Public
Option Declare

Sub Initialize()
	Call Zeige_Daten()
End Sub



Function Lese_Daten( listINFO List As Variant ) As Boolean
   listINFO( "message" ) = "Dies ist ein Test"
End Function

Function Zeige_Daten() As Boolean
   Dim listINFO List As Variant
   Call Lese_Daten( listINFO )
   If IsElement( listINFO("message") ) Then
      MsgBox listINFO( "message" )
   Else
      MsgBox "... gibt es nicht..."
   End If
End Function

Zitat
...Original aus unterschiedlichen Libraries/Datenbanken...
Unterschiedliche Libraries ok... (aber Libs müssen ja in der selben DB sein)
Hast du schon mal geprüft ob die Libraries fehlerfrei gespeichert werden?
Mit 8.5.x legt Notes ja beim Speichern ein $Scriptlib_error Item an. Es wird dann nicht der Code ausgeführt den man sieht...

Gruß
Roland
 
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Durchgereichte Variable verliert Werte
« Antwort #3 am: 11.10.11 - 09:43:00 »
... danke für die schnelle Reaktion.

Zitat
Unterschiedliche Libraries ok... (aber Libs müssen ja in der selben DB sein)
... nein - nicht zwingend - bei vererbtem Design können sie auch aus unterschiedlichen Datenbanken kommen.

Ich bin nun zwischenzeitlich zur Fehlereingerenzung hergegangen, und habe die Funktion des Lesens in eine Library der gleichen Datenbank migriert - und siehe da - es funktioniert. Lediglich die List-Variable wird nicht zuzrückgespiegelt, alle weiteren Variablen in meiner Originalfunktion sind korrekt aktualisiert ud lassen sich auch so ansprechen.

Notes is a miracel ;)

Danke für den seelischen Beistand
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz