[NEWSboard IBMi Forum]

Thema: %editw ?

  1. #1
    Registriert seit
    Apr 2003
    Beiträge
    195

    Question %editw ?

    Hallo,

    eine Frage die ihr mir sicherlich beantworten könnt:

    wie schaffe ich es, dass ein numerisches Feld mit dem Wert -000000000.74

    mithilfe von %editw und der Maske ' 0, -' korrekt nach einem %trim als Alphafeld in der Form 0,74- angezeigt wird?

    Wenn ich es so, wie oben gezeigt verwende erhalte ich als Alphawert lediglich ,7

    Danke schon mal für eure Unterstützung

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Die Maske, das ist hier schlecht darstellbar, muss nur einmal "0" und dann Blanks haben:
    '-0_______,__'
    Die Unterstriche entsprechen der Anzahl Ziffern.
    0 = Signifikanz einschalten
    Blank = Dezimalziffer.
    Normalerweise darf die Maske nicht länger als die verfügbare Anzahl Ziffern sein, allerdings ist die "0" als Zusatz erlaubt.
    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
    Apr 2003
    Beiträge
    195
    Hallo Fuerchau,

    danke für die rasche Antwort. Ich habe das auch so ausprobiert, aber erhalten wieder ein falsches Ergebnis.

    Das Feld v10 ist 11S 2 lang, das entsprechende Alphafeld $v10 -> 12A (wegen des Minus)

    die Schablone schaut bei mir so aus $v10 = %editw(ustw(pos#) : '-0xxxxxxxx,xx');
    (die x stehen als Platzhalter für Leerzeichen).

    Das Ergebnis ist dann aber 00000000,7 und nicht wie erhofft 0,74- oder aber -0,74 wie es eigentlich sein sollte.

    Ich benötige lediglich eine Stelle vor dem Komma wenn der Endwert lediglich aus Dezimalen besteht.

    Hoffe dass ich mich jetzt etwas klarer ausgedrückt habe.

    LG
    Franz-Georg

  4. #4
    Registriert seit
    May 2002
    Beiträge
    1.121
    Ich meine das müsste so aus sehen
    PHP-Code:
    $v10 = %editw(ustw(pos#) : '-xxxxxxxx0x,xx'); 
    aber nimm doch %EditC.
    Dein Ergebnissfeld muss dan aber auch 13 lang sein. 9 Vorkomma + 2 Nachkomma + Komma + Vorzeichen
    PHP-Code:
           dcl-s v10 zoned(11:2);     
           
    dcl-s $v10 char(13);       
            
    $v10 = *Blanks;           
            
    v10 = -,74;               
            
    $v10 = %EditCv10'Q'); 
            *
    InLr = *On
    Gruß
    Ronald

  5. #5
    Registriert seit
    Apr 2003
    Beiträge
    195
    Servus Roland,

    recht herzlichen Dank, genau das was ich brauchte!

    LG und noch ein schönes Wochenende

    Franz-Georg

Berechtigungen

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