Autor Thema: Type mismatch - versteh ich nicht...  (Gelesen 2513 mal)

Offline spirix

  • Frischling
  • *
  • Beiträge: 14
Type mismatch - versteh ich nicht...
« am: 11.01.07 - 12:31:34 »
Hi Forum,

ich rufe in NotesScript eine Funktion auf:
sFirstDay$ = GetFirstDayOfMonth(sCurrentMonth$, Cint(sCurrentYear$))

getFirstDayOfMonth ist folgendermassen vereinbart:
Function GetFirstDayOfMonth(psMonth As String, piYear As Integer) As String

Wenn ich nun die Funktion aufrufe erhalte ich die Fehlermeldung:
"Type mismatch on external name: GETFIRSTDAYOFMONTH"

Wenn ich es so mache gehts lustigerweise, ich wäre aber schicker wenn ich das Jahr als Integer übergeben kann:
sFirstDay$ = GetFirstDayOfMonth(sCurrentMonth$, sCurrentYear$)

Function GetFirstDayOfMonth(psMonth As String, psYear As String) As String


Kann mir bitte jemand erklären warum der 1. Lösungsversuch nicht funktioniert? Danke!

Viele Grüße und danke für die Geduld ;)
Patrick

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Type mismatch - versteh ich nicht...
« Antwort #1 am: 11.01.07 - 12:36:13 »
Wie sieht denn der Code der Funktion aus? Ohne den lässt sich schwer was sagen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline spirix

  • Frischling
  • *
  • Beiträge: 14
Re: Type mismatch - versteh ich nicht...
« Antwort #2 am: 11.01.07 - 12:42:07 »
Die Funktion ist erstmal nur ein Gerüst um zu schauen obs funktioniert,
die Parameter werden noch nicht ausgewertet.

Code
Function GetFirstDayOfMonth(psMonth As String, piYear As Integer) As String
' Berechnet den Namen des ersten Tages im Monat
' Erfordert den Monat psMonth und das Jahr piYear als Parameter
'
	Dim sTemp As String
	
	sTemp$ = "Montag"
	
	GetFirstDayOfMonth$ = sTemp$
End Function
Viele Grüße und danke für die Geduld ;)
Patrick

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Type mismatch - versteh ich nicht...
« Antwort #3 am: 11.01.07 - 12:47:40 »
Hallo

Wie sind die Variablen deklariert:

sCurrentMonth$ und  Cint(sCurrentYear$)  ??


Habe die Meldung öfters bekommen, wenn die Variablen nicht expliziet deklariert wurden!

ein

Dim sCurrentMonth as String, sCurrentYear as String   klappt dann auch nicht.
Nur:

Dim sCurrentMonth as String
Dim sCurrentYear as String


Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Type mismatch - versteh ich nicht...
« Antwort #4 am: 11.01.07 - 12:52:00 »
Ich würde in sCurrentYear$ auch was rein schreiben. Wenn der String leer ist, schmeisst CInt einen Fehler ""Type mismatch" ;)

HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline spirix

  • Frischling
  • *
  • Beiträge: 14
Re: Type mismatch - versteh ich nicht...
« Antwort #5 am: 11.01.07 - 12:58:58 »
Hi Dirk, Hi m3,

ich fasse mich mal kurz, deklariert sind die Variablen richtig und in sCurrentYear$ steht auch was drin ;)

Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Dim sCurrentMonth As String
	Dim sCurrentYear As String
	Dim sMessageBoxSelectString As String
	Dim sFirstDay As String

	Set uidoc = workspace.CurrentDocument	
	
	sCurrentMonth$ = uidoc.FieldGetText("DiaMonat")
	sCurrentYear$ = uidoc.FieldGetText("Jahr")
	sMessageBoxSelectString$ = "Gewählten Monat füllen? " + sCurrentMonth$ + " " + sCurrentYear$  
	
	sFirstDay$ = getFirstDayOfMonth(sCurrentMonth$, Cint(sCurrentYear$))
	Messagebox sFirstDay$ 'TEST
	
	If Messagebox(sMessageBoxSelectString$, 36, "Monat erstellen") = 6 Then
		Messagebox ("Monat wird gefüllt") 'TEST
	Else
		Messagebox  ("Abbruch") 'TEST
	End If
	
	
End Sub

Viele Grüße und danke für die Geduld ;)
Patrick

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Type mismatch - versteh ich nicht...
« Antwort #6 am: 11.01.07 - 13:06:48 »
Ich habe deinen Code auf die Schnelle mal getestet.

Wenn ich die beiden Variablen so fülle

sCurrentMonth$ = "Januar"
sCurrentYear$ = "2007"

dann funktionierts.

Was hat denn dein Jahr-Feld für einen Typ?


Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Type mismatch - versteh ich nicht...
« Antwort #7 am: 11.01.07 - 13:08:05 »
Ich hab den Code jetzt mal so laufen lassen (mit einem Test-Dokument mit den Feldern).Klappt wunderbar.

IMHO hat es was mit den Feldeigenschaften bzw. deren Inhalt.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline spirix

  • Frischling
  • *
  • Beiträge: 14
Re: Type mismatch - versteh ich nicht...
« Antwort #8 am: 11.01.07 - 13:10:01 »
Hm, das Jahr-Feld ist bei mir vom Typ Text. Das Monatsfeld ist eine Dialogliste.
Viele Grüße und danke für die Geduld ;)
Patrick

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Type mismatch - versteh ich nicht...
« Antwort #9 am: 11.01.07 - 13:12:04 »
Mach mal
Code
sMessageBoxSelectString$ = "Gewählten Monat füllen? |" & sCurrentMonth$ & "| |" & sCurrentYear$ &  "| |" & CStr( CInt(sCurrentYear$ ) ) & "|"
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline spirix

  • Frischling
  • *
  • Beiträge: 14
Re: Type mismatch - versteh ich nicht...
« Antwort #10 am: 11.01.07 - 13:19:24 »
Da kommt dann raus
"Gewählten Monat füllen? |Januar| |2007| |2007|"

Wieso geht das da und bei der Parameterübergabe nicht?
Viele Grüße und danke für die Geduld ;)
Patrick

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Type mismatch - versteh ich nicht...
« Antwort #11 am: 11.01.07 - 13:23:58 »
Mal so ein Schuss in Blaue.

Beende mal Notes und lösche die cache.ndk und probiers dann nochmal.


Und noch etwas, was du mal probieren kannst ist, den gesamten Scriptcode mal neu zu kompilieren.

Im Designer Werkzeuge - Lotusscript vollständig neu komplilieren.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline spirix

  • Frischling
  • *
  • Beiträge: 14
Re: Type mismatch - versteh ich nicht...
« Antwort #12 am: 11.01.07 - 13:34:01 »
Hilft leider nix... ich mach das jetzt anders, ich übergeb das Jahr als String und wandel es innerhalb der Funktion um - eigentlich nicht mein Stil aber wenns nicht anders geht gehts halt nicht anders :-/

Danke für die Hilfe an alle
Viele Grüße und danke für die Geduld ;)
Patrick

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz