Hallo,
da war sie wieder die Sache mit dem Brett und dem Kopf:
Ich habe eine Erfassungsmaske gebastelt. Die Felder sind CHAR, damit es einen Unterschied macht, ob der User NICHTS oder NULL eingibt.
Wenn er NICHTS eingibt, erscheint eine Fehlermeldung, gibt er NULL ein, wird dies als Wert aktzeptiert.
Problem:
Mit einigen der Felder rechne ich später und benötige dazu eine Ganzzahl, sprich die Eingabe ,15 (also 0,15) führt natürlich zu einem CONVT_NO_NUMBER Dump. Ebenso sind Buchstaben fehlerrelevant.
Das wird doch wieder ein Standardfall sein, bei dem man den Wald vor Bäumen nicht sieht?!
Ich hätte 2 Lösungsansätze:
- Felder nicht als CHAR, sondern als anderen Datentyp (aber wie unterscheide ich dann zwischen bewusster 0 und "keine Eingabe"?)
- FuBa-Prüfung, etc. der CHAR-Felder
Bedingung ist erfüllt wenn Zahlen bzw. ein ',' (Komma) im Feld ist. Unter Umständen musste noch nen SPACE mitabfragen, damit der sy-subrc nicht falsch anzeigt.
Kommt drauf an wie dein Feld aussieht. Weiß ich ja nicht
um ganz auf Nummer sicher zu gehen, würde ich anschließend noch prüfen, ob das Komma max. 1x vorkommt. Manchmal kann man gar nicht so komisch denken, wie die Anwender ...
Und wenn ","(Komma) erlaubst, dann soltest dieses nachher noch mit Translate zu einem "."(Punkt) machen, da man intern mit einem Punkt als Dezimaltrenner arbeitet.