[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Thema: Dezimalfeld

  1. #1
    Registriert seit
    Nov 2007
    Beiträge
    371

    Dezimalfeld

    Hallo miteinander,


    ich habe in meiner Bildschirmmaske ein nummerisches Feld 9,2 definiert.



    wenn ich jetzt 155 in das Feld eingebe

    ist der Inhalt des Feldes 155,00.

    wenn ich 155,22 eingebe

    ist der Inhalt des Feldes 155,22.


    So jetzt wollen unsere Superhelden das ganze ohne Komma eingeben

    also 15522 wird zu 155,22 im Bildschirmfeld.

    und 15500 wird zu 155,00


    Gibt es da irgendeine Lösung per Check oder??


    Ich kann das Feld nicht ändern und es muß auch 9,2 bleiben

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Du musst das Feld dann als 9,0 definieren und mit EDTWRD eine Maske hinterlegen.
    Im Programm ist entsprechend an Stelle von MOVE eben MULT bzw. DIV zu verwenden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Nov 2007
    Beiträge
    371
    Ja aber genau das will ich ja nicht machen. Gibt es da nichts das mir den eingegebenen Wert automatisch so aufbereitet??

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wenn ein Dezimalfeld mit NK definiert ist, so muss ein Komma eingegeben werden um die Ausrichtung zu gewährleisten.

    Wenn das Komma nicht eingegeben werden soll, sondern automatisch "angenommen" werden soll, so musst du das Feld ohne NK definieren, da sonst alle Ziffern vor dem Komma angenommen werden.

    Mittels EDTWRD an Stelle von EDTCDE kannst du dann das Komma an beliebiger Stelle platzieren, da es nicht als Dezimalkomma interpretiert wird.

    Im Programm musst du dann halt per MULT/DIV kommagerecht ausrichten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Nov 2007
    Beiträge
    371
    ich versteh jetzt nicht was NK heisst .
    Wo definier ich das??

    ja das mit dem EDTWRD da kenn ich mich aus.


    Ja das problem is ja eigentlich dass das Feld intern beschrieben ist ,
    in einer Datenstruktur vorhanden ist und gleichzeitig als Bildschirmfeld definiert ist.
    Also alles derselbe Name.
    Muß ein altes RPG36
    Programm umschreiben .

    (Damit keine Fragen auftauchen ich muß das intern Beschriebene so lassen )


    Wenn ich jetzt mit mult div usw anfange darf ich das halbe Programm mit mult und div zuknallen da es mindestens 20 solcher Eingabefelder gibt und alle den gleichen Aufbau aufweisen wie oben beschrieben.
    Ausserdem würde das dann in einem schlimmen hin und hergemovel /move enden

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    NK = NachKomma

    Dann kannst du die Anforderung leider nicht erfüllen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Nov 2007
    Beiträge
    371
    Oh Gott. Jetzt wo ich mir des nochmal durchlese .

    NK.


    Naja heut is nicht mein Tag .

    Naja dann muß ich wohl in den sauren Apfel beissen .

    Danke für die Hilfe.

  8. #8
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Wie ist das Feld in der Bildschirmdatei denn genau definiert?

    Probier's mal als "Default (Blank)", wie hier beschrieben am Beispiel SIGN2.

  9. #9
    Registriert seit
    Nov 2007
    Beiträge
    371
    Das Feld ist so definiert.

    A BEZBET 9Y 2B 5 23CHECK(RB)
    A DSPATR(CS)
    A N54 DSPATR(PC)
    A EDTCDE(K)

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Definiere das Feld einmal ohne das Y und ohne den EDTCDE(K).

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das Y schränkt nur die Zeichen selber bereits auf numerisch ein.

    Folgende Aussage reicht doch bereits:

    To type digits to the right of the decimal, positions 36 and 37 must be greater than zero and you must type the decimal character.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  12. #12
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Im bereits genannten DDS-Dokument von IBM steht:
    Code:
    01000A            SIGN2          5  2B  5 30
    Und als Beispiele für die Eingabe eines so definierten Feldes:

    SIGN2 (Signed Numeric)

    1. _ _ _ _ _ _
    2. 1 2 3 4 _ _
    3. 1 2 _ _ _ _
    4. 1 2 _ _ _ _ (Field - key)

    0 0 0 0 0
    0 1 2 3 4
    0 0 0 1 2
    0 0 0 1 K (X'F0F0F0F1D2')
    Wäre das nicht genau das, was gesucht wird?

    Allerdings geht das nur ohne einen EDTCDE(...), denn sonst ist es laut Dokumentation wie ein mit Y definiertes Feld, und das verhält sich anders in bezug auf Nachkommastellen (siehe Feld NBR2 in den Beispielen der genannten DDS-Dokumentation).

Similar Threads

  1. Alphafeld in Dezimalfeld RPG
    By mgraskamp in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 22-09-05, 15:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •