Autor Thema: Problem mit IsNumeric  (Gelesen 10895 mal)

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Problem mit IsNumeric
« am: 31.03.07 - 20:08:39 »
Hallo zusammen,

grad' steh ich irgendwie aufm Schlauch: Ich hab ein numerisches Feld, das möchte ich gern abfragen, ob auch wirklich ein numerischer Wert drinsteht. In der Designe Help hab ich nur IsNumeric gefunden, ich möcht aber eigentlich andersrum abfragen: NotIsNumeric.
Wie stell' ich den das an?

Gruss Ewald

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Problem mit IsNumeric
« Antwort #1 am: 31.03.07 - 20:16:57 »
Indem du statt einem

If IsNumeric(expr) Then ...

schreibst

If Not IsNumeric(expr) Then ...

Gruß

Norbert
Situs vilate in isse tabernit.

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Problem mit IsNumeric
« Antwort #2 am: 31.03.07 - 20:33:46 »
@Norbert,

das hab ich auch gedacht...

If Not Isnumeric(mIOT_Spend) Then      
   Messagebox "keine zahl",MB_OK+MB_ICONSTOP, BoxTitle$      
   uidoc.gotofield("mIOT_Spend")
   Continue = False
   Exit Function
End If

Wenn in dem Feld mIOT_Spend aber Character stehen, kommt nicht meine Messagebox sondern nur 2 Notes-Fehlermeldungen und genau das wollt ich ja vermeiden.

Gruss Ewald

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem mit IsNumeric
« Antwort #3 am: 31.03.07 - 22:55:56 »
Theoretisch kannst du Errorhandling dafür benutzen. Das ist aber aus verschiedenen Gründen keine gute Idee:

a) verwirrt spätere maintainance Programmierer.
b) ist viel code
c) sieht unschön aus.
d) sehr schlecht für die Performance.

Funktioniert aber und hat funktional keine Nebenwirkungen. (natürlich performance und Wartbarkeit, aber das ist nicht-funtional)

Code für einen Button in einer Maske:
Code
Sub Click(Source As Button)
	On Error Goto FehlerGlobal
	Dim isANumber As Boolean
	Dim xTremeNotNumeric As Variant
	
	
' RUNDE 1
isANumber = True
xTremeNotNumeric  = "zwei"	
	
	On Error Goto FehlerSpezial1
	zweiUndPfirsich= 4 * xTremeNotNumeric
	Goto weiter1
FehlerSpezial1:
	If (Err = 13) Then
		isANumber = False
		Resume Next
	End If	
weiter1:
on Error goto FehlerGlobal
	If (isANumber = False) Then 
		Msgbox |"| &Cstr(xtremeNotNumeric) & |"|& " is Not a number." 
	Else
		Msgbox |"| &Cstr(xtremeNotNumeric)  & |"|& " is a number."
	End If

' RUNDE 2
	isANumber = True
	xTremeNotNumeric = 2
	
	On Error Goto FehlerSpezial2
	zweiUndPfirsich= 4 * xTremeNotNumeric
	Goto weiter2
FehlerSpezial2:

	If (Err = 13) Then
		isANumber = False
		Resume Next
	End If	
	
weiter2:
on Error goto FehlerGlobal
	If (isANumber = False) Then 
		Msgbox |"| &Cstr(xtremeNotNumeric) & |"|& " is Not a number."
	Else
		Msgbox |"| &Cstr(xtremeNotNumeric) & |"|& " is a number."
	End If
isANumber = true

	Exit Sub
	
FehlerGlobal: 
	Print "Fehler:" & Error$ & "(" & Cstr(Err) & ") in Zeile:" & Cstr(Erl)
	Exit Sub
	
End Sub
« Letzte Änderung: 31.03.07 - 23:11:48 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit IsNumeric
« Antwort #4 am: 01.04.07 - 14:46:35 »
Ewald, Du hast leider die "2 Notes-Fehlermeldungen" nicht mit gepostet.
Ich vermute, dass Nr. 1 lautet, dass Text nicht in Zahl umgewandelt werden kann.
Nr. 2 könnte daher rühren, dass Du im QuerySave Code stehen hast und dieser jetzt nochmal meldet, dass die Feldvalidierung fehlgeschlagen ist (QuerySave startet gleich mit einem ErrorCode > 0).

Hier konkurrieren Backend und Frontend. Das Frontend stellt fest, dass im Zahlenfeld gar keine Zahl steht. Das Backend hat ein Problem damit, dass das ganze Item nicht greifbar ist, da aus dem Feld mit diesem Typ im Backend von Notes nichts angelegt werden kann.

Die Frontend-Meldung kannst Du nur schwerlich umgehen, im Backend musst Du vorab entsprechende Prüfungen einbauen.
Mit noch ein paar mehr Infos von Dir werden wir auch besser helfen können.

Bernhard

Offline Mark³

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
  • Nordisch by Nature
    • Das Leben aus der Sicht eines Menschen
Re: Problem mit IsNumeric
« Antwort #5 am: 01.04.07 - 15:23:34 »
besser wäre, im Frontend gleich mit Javascript dafür zu sorgen, dass nur nummerische Eingaben möglich sind.
Wieso erst Falscheingaben zulassen, um sie dann später wieder zu verbieten?
sagt Mark.



slowfood.de

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit IsNumeric
« Antwort #6 am: 01.04.07 - 16:02:01 »
Wie das? Übersehe ich da seit Jahren etwas (was sehr gut sein kann!)?

Bernhard

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: Problem mit IsNumeric
« Antwort #7 am: 01.04.07 - 17:04:27 »
besser wäre, im Frontend gleich mit Javascript dafür zu sorgen, dass nur nummerische Eingaben möglich sind.
Wieso erst Falscheingaben zulassen, um sie dann später wieder zu verbieten?
Weil man sich auf JavaScript im Client nicht verlassen darf/soll/kann.

Siehe dazu etwa die WAI Guidelines Punkt 6.3:
Zitat
Sorgen Sie dafür, dass Seiten verwendbar sind, wenn Scripts, Applets oder andere programmierte Objekte abgeschaltet sind oder nicht unterstützt werden. ...  [Priorität 1]
    Z. B.: Sorgen Sie dafür, dass Links, die Scripts auslösen, funktionieren, wenn Scripts abgeschaltet sind oder nicht unterstützt werden (Verwenden Sie z. B. nicht "javascript:" als Ziel eines Links).
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 flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem mit IsNumeric
« Antwort #8 am: 01.04.07 - 21:09:41 »
Weil man sich auf JavaScript im Client nicht verlassen darf/soll/kann.
Das gilt für den Web-Browser, weil dort JavaScript abgestellt werden kann.
Aber kann eigentlich im Notes Client JavaScript abgestellt werden?
Wenn nicht, dann gilt diese Empfehlung für JavaScript im Notes Client nämlich nicht.

Mit JavaScript kann man prima auf Nummern prüfen. Ansonsten ist es einfach eine Skript Sprache, die ihren Ursprung als in Webbrowsern implementierte Skript Sprache hat und aus historisch-marketingmässigen Gründen namensmässig an eine Programmiersprache von Sun Microsystems angelehnt ist.
 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

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: Problem mit IsNumeric
« Antwort #9 am: 01.04.07 - 21:13:47 »
Weil man sich auf JavaScript im Client nicht verlassen darf/soll/kann.
Das gilt für den Web-Browser, weil dort JavaScript abgestellt werden kann.
Jup, und da wir die Zielplattform nicht kennen ...
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 koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit IsNumeric
« Antwort #10 am: 01.04.07 - 22:02:22 »
Ich tippe mal, die Zielplattform ist der Notes-Client. Wie gesagt: Nur ein Tipp. Und selbstverständlich kann man auch dort JavaScript unterbinden (an den Stellen, an denen es denn überhaupt wirkt - daher ja auch meine - ernstgemeinte - Frage an Mark).

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem mit IsNumeric
« Antwort #11 am: 01.04.07 - 22:10:32 »
Und selbstverständlich kann man auch dort JavaScript unterbinden
Wo  ??? Und ich seh auch keinen Sinn drin. Das Problem im Browser ist ja nicht JavaScript, sondern das offene Internet. In einer abgeschlossenen Notes Umgebung, in der sogar Code explizit signiert wird, sehe ich da genauso viel Gefahrenpotential für Mißbrauch wie für LotusScript.
« Letzte Änderung: 01.04.07 - 22:17:10 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit IsNumeric
« Antwort #12 am: 01.04.07 - 22:16:52 »
Datei - Vorgaben - Allgemein - JavaScript aktivieren (und das eben abwählen). And you're done ..

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem mit IsNumeric
« Antwort #13 am: 01.04.07 - 22:19:23 »
Das stimmt auffallend.  ;) (habs ausprobiert)
« Letzte Änderung: 01.04.07 - 22:23:07 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit IsNumeric
« Antwort #14 am: 01.04.07 - 22:21:49 »
Axel, ich bin mir aber zugegebenermassen nicht hundertprozentig sicher, ob das JS auch komplett im Client abklemmt. Ich würde sagen: Mark weiss da offensichtlich mehr, und da schau'n mer ma'.

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem mit IsNumeric
« Antwort #15 am: 01.04.07 - 22:27:04 »
Scheint so zu sein. Ich hab hinter einen Button ein alert("hallo") gelegt und das funktioniert nicht mehr, wenn JavaScript deaktiviert ist und wenn es aktiviert ist, dann geht es. Die technischen Gründe, dass man die selbst implementierte Skriptsprache a (LotusScript) nicht deaktivieren kann aber die selbst implementierte Skriptsprache b (JavaScript) schon, sind mir ehrlichgesagt nach wie vor nicht ganz klar.
JavaScript gibts ja nicht zum kaufen. Es gibt eine ECMAScript-Spezifikation (ECMAScript ist ein technisch korrekterer Name für JavaScript) und die hat Lotus für den Lotus Notes Client implementiert (vermutlich in C oder teilweise vielleicht auch in LotusScript).
« Letzte Änderung: 01.04.07 - 22:35:24 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

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: Problem mit IsNumeric
« Antwort #16 am: 01.04.07 - 22:31:55 »
Und selbstverständlich kann man auch dort JavaScript unterbinden
Wo  ??? Und ich seh auch keinen Sinn drin. Das Problem im Browser ist ja nicht JavaScript, sondern das offene Internet. In einer abgeschlossenen Notes Umgebung, in der sogar Code explizit signiert wird, sehe ich da genauso viel Gefahrenpotential für Mißbrauch wie für LotusScript.
Und wenn Du etwa einen Blinden in Deinem Unternehmen hast, dessen Screen-Reader JavaScript nicht unterstützt? ;)
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 flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem mit IsNumeric
« Antwort #17 am: 01.04.07 - 22:36:25 »
Und welcher Screen-Reader unterstützt LotusScript?  ;D
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem mit IsNumeric
« Antwort #18 am: 01.04.07 - 22:47:11 »
Ich tippe das war so:

Ed Brill: Bob, wo kann ich JavaScript abstellen?

Bob Balaban: In Mozilla oder im Internet Explorer?

Ed Brill: Nein. Ich meine in Lotus Notes Gold Release 6.

Bob Balaban: Na gar nicht. Das ist eine einfach eine Skriptsprache über die unsere Entwickler genau so viel Kontrolle haben wie über LotusScript.

Ed Brill: Diese Details interessieren meine Gesprächspartner nicht. Ich seh das schon kommen. Die wollen dann auf spitzfindig machen wie manche gestörte Vollhorste unter den Kommentatoren auf meinem Blog. Und dann geht das los: 'Im Browser kann man aber JavaScript abstellen. Plärr. Heul rum'. Vermutlich das einzige technische Detail, das die kennen, obwohl sie es im Browser natürlich niemals abstellen würden. Deshalb ist das WICHTIG.
« Letzte Änderung: 01.04.07 - 22:57:45 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

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: Problem mit IsNumeric
« Antwort #19 am: 01.04.07 - 23:04:27 »
 ;D Du bist ein pöser Pursche. ;)

Ad LotusScript: Das ist wurscht, weil das rennt (bei einer Webanwendung) eh am Server. Da kriegt der Screenreader dann auch wieder eine brauchbare HTMl-Page zurück. :)

Aber ohne Ewalds Kommentar/Antwort werden wir uns hier im Kreis drehen, denke ich.
« Letzte Änderung: 01.04.07 - 23:07:05 von m3 »
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz