AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
20.09.20 - 16:33:22
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Best Practices
| |-+  Diskussionen zu Best Practices (Moderatoren: Axel, MartinG, animate, koehlerbv)
| | |-+  Type Mismatch
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Type Mismatch  (Gelesen 12704 mal)
Klafu
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1935


Remember the Cookies!


« 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
Gespeichert

„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...“
DAU-in
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Weiblich
Beiträge: 1129


- unterwegs -


« Antworten #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) = ""
Gespeichert

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #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  Wink

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

Bernhard
Gespeichert
klaussal
Gast
« Antworten #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.
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #4 am: 03.08.11 - 14:57:16 »

In einer Checkbox, Klaus?

Bernhard
Gespeichert
klaussal
Gast
« Antworten #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.
Gespeichert
Klafu
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1935


Remember the Cookies!


« Antworten #6 am: 03.08.11 - 15:02:25 »

Oh man. Super, vielen Dank euch!! Cheesy
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? Roll Eyes

Chris
Gespeichert

„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...“
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #7 am: 03.08.11 - 15:04:51 »

Nothing in Bezug auf Objekte.
Operatoren wie = etc. in Bezug auf skalare Werte.

HTH,
Bernhard
Gespeichert
Klafu
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1935


Remember the Cookies!


« Antworten #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 ? Smiley
Gespeichert

„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...“
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #9 am: 03.08.11 - 15:12:22 »

Was verstehst Du unter "leer"?

Bernhard
Gespeichert
Klafu
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1935


Remember the Cookies!


« Antworten #10 am: 03.08.11 - 15:22:36 »

Leer... eben nicht gefüllt  Grin
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  Smiley
Gespeichert

„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...“
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #11 am: 03.08.11 - 15:28:08 »

Fulltrim
Gespeichert
Klafu
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1935


Remember the Cookies!


« Antworten #12 am: 03.08.11 - 15:35:21 »

Klasse! Vielen Dank  Cheesy
Jetzt hab ich ja mein Nachschlagewerk  Smiley

Beste Grüße
Chris
Gespeichert

„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...“
Klafu
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1935


Remember the Cookies!


« Antworten #13 am: 04.08.11 - 11:38:05 »

So, ich wollte jetzt mal das Nachschlagewerk erweitern Smiley

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
Gespeichert

„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...“
ata
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 5092


drenaiondrufflos


WWW
« Antworten #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
Gespeichert

Grüßle Toni Smiley
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: