Autor Thema: Type Mismatch  (Gelesen 16933 mal)

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Type Mismatch
« am: 03.08.11 - 14:28:44 »
Hallo zusammen,

es ist glaub echt nicht meine Woche. Ich brauch mal eine kleine Hilfe zur Fehlermeldung "Type mismatch".

Folgender Fall:
Ich möchte via If Abfrage prüfen ob eine Feld In einem Dokument leer ist, oder nicht. Besonderheit: Das Feld ist eine Checkbox. Das Feld ist laut debugger, wenn es nicht angehakt ist, "".

Wie muss meine If Abfrage nun aussehen, damit ich das prüfen kann?
If Not doc.Getitemvalue("CollectionNotes") = "" Then  und andere bringen mir den Typ mismatch.
Gibt es eine Übersicht, wann ich bei solchen Abfragen welche Operaoren nehmen muss ? Also wann ich jetzt = "" oder != "" oder <> "" oder IS NOTHING oder IsEmpty oder oder oder nehme?
Ich stolpere(scheitere) nämlich häufiger auf(an) das(dem) Problem.

Danke für Tips

Gruß
Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Type Mismatch
« Antwort #1 am: 03.08.11 - 14:34:01 »
du vergleichst Array mit String.


richtig ist: Inhalt erstes Array-Element mit String:
doc.Getitemvalue("CollectionNotes")(0) = ""
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Type Mismatch
« Antwort #2 am: 03.08.11 - 14:34:11 »
NotesDocument.GetItemValue gibt Dir den Inhalt des kompletten Items zurück - und das sind immer Arrays. Du erwartest in Deinem Code aber einen skalaren Wert. Das kann nicht gut gehen  ;)

Und lesbarer wäre beispielsweise
If doc.CollectionNotes (0) <> "" Then

Bernhard

klaussal

  • Gast
Re: Type Mismatch
« Antwort #3 am: 03.08.11 - 14:52:45 »
Ich lege immer noch ein Trim um die ganze Sache, falls mal ein User die Leertaste betätigt habe sollte.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Type Mismatch
« Antwort #4 am: 03.08.11 - 14:57:16 »
In einer Checkbox, Klaus?

Bernhard

klaussal

  • Gast
Re: Type Mismatch
« Antwort #5 am: 03.08.11 - 15:01:17 »
Zitat
Ich möchte via If Abfrage prüfen ob eine Feld In einem Dokument leer ist, oder nicht.

Mehr darauf bezogen.

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Type Mismatch
« Antwort #6 am: 03.08.11 - 15:02:25 »
Oh man. Super, vielen Dank euch!! :D
Gibts denn da dann vielleicht eine kleine Übersicht, wann ich  = "" oder is Nothing oder sonst was nehmen kann?
Oder hilft da nur es immer wieder falsch zu machen, bis man es richtig macht? ::)

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Type Mismatch
« Antwort #7 am: 03.08.11 - 15:04:51 »
Nothing in Bezug auf Objekte.
Operatoren wie = etc. in Bezug auf skalare Werte.

HTH,
Bernhard

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Type Mismatch
« Antwort #8 am: 03.08.11 - 15:10:08 »
Okay. Und isEmpty oder IsNull sind nur bei Varianten möglich, oder ?
Und wie kann ich prüfen ob ein ganzes Array leer ist ? :)
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Type Mismatch
« Antwort #9 am: 03.08.11 - 15:12:22 »
Was verstehst Du unter "leer"?

Bernhard

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Type Mismatch
« Antwort #10 am: 03.08.11 - 15:22:36 »
Leer... eben nicht gefüllt  ;D
Also = "".
Es kann ja vor kommen, dass beim Array(0 to X) Array(0) = "" ist, aber Array(2) = "Irgendwas" ist.
Wie prüf ich, ob das komplette Array(0 to X) = "" ist ?

Ich hoffe, das versteht man jetzt  :)
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Type Mismatch
« Antwort #11 am: 03.08.11 - 15:28:08 »
Fulltrim

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Type Mismatch
« Antwort #12 am: 03.08.11 - 15:35:21 »
Klasse! Vielen Dank  :D
Jetzt hab ich ja mein Nachschlagewerk  :)

Beste Grüße
Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Type Mismatch
« Antwort #13 am: 04.08.11 - 11:38:05 »
So, ich wollte jetzt mal das Nachschlagewerk erweitern :)

Variant oder Array in einen einzelnen String umwandeln
Zitat
Implode function 
Concatenates all members of an Array of Strings and returns a string. Elements of the Array are separated by a delimiter, if provided, or the space character (" ").
Note  This function is new with Domino Release 6.
Syntax
Implode(sourceArray, [delimiter])

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Type Mismatch
« Antwort #14 am: 04.08.11 - 13:58:40 »
... Implode() oder Join() funktioniert nur auf Textarrays - daher Vorsichtig sein mit den Datentypen

Ich nehme IsArray(  ) um auf Array zu prüfen.

Leerfelder überprüfe ich
wie Bernhard mit => Cstr( doc.FELDNAME(0) )
oder => Cstr( doc.GetItemValue("FELDNAME")(0) )
oder über Evaluate für komplexere Prüfungen mit dem doc als Parameter

... und ggf. mit Trim um Space abzufangen.

Toni
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz