PDA

View Full Version : DSPF - numerisches Feld mit Vorzeichen links



Tobse77
11-02-08, 10:56
Hallo zusammen,

ich habe eine Display-File in welcher ein numerisches Feld sowohl mit negativen, als auch mit positiven Werten gefüllt werden kann.

Wenn ich allerdings -13 eintippe, so verarbeitet RPG diesen Wert als +13.
Nur wenn ich 13- eingebe, so verwertet RPG diesen Wert als -13 ?!?

Woran liegt das??

Ich möchte den Usern nicht zumuten zuerst die Ziffer und dann das entsprechende Vorzeichen - falls negativ - eingeben zu müssen, zumal dies nach mathematischer Allgemeinbildung ja auch falsch wäre.

Wer weiß, wie ich dies beheben kann?

Fuerchau
11-02-08, 11:19
Das ist so normal !
Der User braucht das Minus nicht eingeben, sondern kann den Wert mit der Minus-Taste bestätigen.

Ansonsten musst du das Feld als Alpha deklarieren, das Eingabeformat selber prüfen sowie bei der Ausgabe auch selber formatieren.

Tobse77
11-02-08, 11:24
Hallo Fuerchau,

das Problem liegt darin, dass das Programm auf einem mobilen Handheld laufen muss und ich dort keine "Minus-Taste" wie auf der Tastatur habe.
Somit bin ich auf das normale Minuszeichen/Bindestrich angewiesen.

Fuerchau
11-02-08, 11:30
Dann muss der User das Minuszeichen eben hinterher eingeben.
Wo ist denn da das Problem ?

Manchmal wird hier aus einer Mücke ein Elefant gemacht.

Tobse77
11-02-08, 11:37
Das Problem sitzt zumeist vor dem Bildschirm, resp. vor dem Handheld.
Und da es sich hierbei um Materialbuchungen handelt, möchte ich jede absehbare Fehlerquelle ausschließen.
Denn 90% der Benutzer werden aus der Gewohnheit heraus zuerst das Minus setzen und danach den Wert, so, wie sie es eben gewohnt sind.
Und schon haben sie ohne es zu wissen 360Stück auf das Lager gebucht, von dem sie eigentlich entnommen haben.

Von daher hat dies nichts mit Mücken zu tun, sondern im Endeffekt mit mächtig vielen "Mäusen" ;-)

Fuerchau
11-02-08, 12:06
Dann bleibt dir halt nichts anderes übrig, als obigen Vorschlag aufzunehmen und eine numerische Eingabe selber zu prüfen.

In ILERPG kannst du per %dec(: MyChar: 11: 2) in numerisch umwandeln.
Dabei wird ein Minus am Anfang oder Ende akzeptiert.

Je nach Dezimal-Punkt (H-Zeile) wird auch dieser akzeptiert.

Enthalten die Daten nicht numerische Zeichen, wird ein MCH-Fehler ausgegeben, so dass du die Umwandlung in eine Monitor-Group packen solltet.

Mit %CHAR kannst du dann wieder in Alpha zurückwandeln, wobei hier ein Minus vorangestellt wird.

Tobse77
11-02-08, 12:33
So habe ich es jetzt auch gemacht. Hab' in der DSPF noch die Ziffern und das "-" als gültige Einträge hinterlegt, um nicht numerische Werte abblocken zu können.
Schade, ich dachte es gäbe ne simple Lösung, die ich bis dato übersehen hatte.

Vielen Dank trotzdem.