Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Jürgen Gerhold am 28.03.05 - 10:42:55

Titel: Type mismatch on external Function
Beitrag von: Jürgen Gerhold am 28.03.05 - 10:42:55
Ich habe eine eigene Script-Bibliothek angelegt und dort eigene Functionen erstellt.  Nun habe ich folgendes Problem:

Wenn ich die Function wie folgt declariere kann ich sie ohne Fehlermeldung aufrufen.

Function Ostern (Jahr As Integer) as Integer
Dim a,b,c,d,e,f,g,h As Integer
.....
    Ostern = i + j+22

Ändere ich die Function wiefolgt ab, bekomme ich eine Fehlermeldung beim Aufruf der Function.

Type mismatch on external Name : Ostern

Function Ostern (Jahr As Integer) as String
Dim a,b,c,d,e,f,g,h As Integer
.....
    Ostern = Str(i + j+22)


Ich kann mir nicht klären worum.

Titel: Re: Type mismatch on external Function
Beitrag von: eknori (retired) am 28.03.05 - 11:00:13
hmm, habe dein Codefragment sowohl unter R5 als auch unter R6 getestet und erhalte keine Fehlermeldung.

Ist evtl die Variable, die den Wert von "Ostern" aufnimmt noch als integer deklariert ?
Titel: Re: Type mismatch on external Function
Beitrag von: TMC am 28.03.05 - 11:07:50
Dim a,b,c,d,e,f,g,h As Integer

Hat jetzt wohl nichts mit der Fehlermeldung zu tun, aber damit deklarierst Du nur h als Integer. a,b,c,d,e,f,g sind so als Variant deklariert.

Besser:
Dim a As Integer,b As Integer,c As Integer,d As Integer,e As Integer,f As Integer,g As Integer, h As Integer

Und ja, ich vermute auch, dass die Variable "Ostern" nicht als String deklariert wurde.
Titel: Re: Type mismatch on external Function
Beitrag von: eknori (retired) am 28.03.05 - 11:19:34
seltsam, selbst mit diesem CodeHorror kann ich keine FM erzeugen

Sub Click(Source As Button)
   Dim retval As Integer
   retval = Ostern("1999")
   Msgbox retval
End Sub

Function Ostern (Jahr As Integer) As String
   'Dim i,j As Integer
   
   Ostern = Str(i + j+22)
   
End Function
Titel: Re: Type mismatch on external Function
Beitrag von: animate am 28.03.05 - 11:21:15
Die Fehlermeldung kommt immer dann, wenn du die Signatur einer Funktion änderst und die Funktionsaufrufe nicht anpasst. Nach dem Ändern der Signatur einer Funktion musst du alles Script, das die Funktion verwendet neu kompilieren. In R5 manuell (oder automatisch mit Klimmzügen) in Notes 6 automatisch mit der Funktionalität des Designers.
Titel: Re: Type mismatch on external Function
Beitrag von: animate am 28.03.05 - 11:24:04
seltsam, selbst mit diesem CodeHorror kann ich keine FM erzeugen

Sub Click(Source As Button)
   Dim retval As Integer
   retval = Ostern("1999")
   Msgbox retval
End Sub

Function Ostern (Jahr As Integer) As String
   'Dim i,j As Integer
   
   Ostern = Str(i + j+22)
   
End Function

hehe. Code-Horror find ich gut.
Das liegt wohl daran, dass LotusScript da (und nicht nur da) eine automatische Typenumwandlung macht