[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2003
    Beiträge
    195

    Question Datenstruktur negative Werte

    Hallo allerseits,

    ich hätte da wieder einmal eine Frage an euch. In einem Programm verwende ich 2 Datenstrukturen die ident aufgebaut sind

    Code:
     *                                                                
    D S0S#            DS                                              
    D S0Sum#                        60S 0                             
    D  S0OBMG                       10S 2 Overlay(S0Sum#:1)           
    D  S0BSAK                       10S 2 Overlay(S0Sum#:*Next)       
    D  S0RVMG                       10S 2 Overlay(S0Sum#:*Next)       
    D  S0DISPO                      10S 2 Overlay(S0Sum#:*Next)       
    D  S0SAPGLMG                    10S 2 Overlay(S0Sum#:*Next)       
    D  S0LAGER                      10S 2 Overlay(S0Sum#:*Next)       
    
    D F0S#            DS                                       
    D F0Sum#                        60S 0                      
    D  F0OBMG                       10S 2 Overlay(F0Sum#:1)    
    D  F0BSAK                       10S 2 Overlay(F0Sum#:*Next)
    D  F0RVMG                       10S 2 Overlay(F0Sum#:*Next)
    D  F0DISPO                      10S 2 Overlay(F0Sum#:*Next)
    D  F0SAPGLMG                    10S 2 Overlay(F0Sum#:*Next)
    D  F0LAGER                      10S 2 Overlay(F0Sum#:*Next)
    In der Datenstruktur S0S# sind die Werte wie folgt befüllt:

    S0OBMG = 0
    S0BSAK = -4536
    S0RVMG = 0
    S0DISPO = -4536
    S0SAPGLMG = 0
    S0LAGER = -4536

    verwende ich jetzt das Statement
    Code:
     C                   Add       S0Sum#        F0Sum#
    so steht in der Datenstruktur F0S# in den korrespondierenden Feldern

    F0BSAK = 4536
    F0DISPO = 4536
    F0LAGER = -4536

    Warum steht in den Feldern nicht der richtige Wert? Kann in einer DS das Minuskennzeichen nicht richtig interpretiert werden?

    Danke schon mal für etwaiige Infos.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.378
    Ich wundere mich da eher, dass du nicht auf einen MCH-Fehler läufst.

    Du arbeitest mit einem 60-Stelligen numerischen Feld, dass nur ganz rechts ein Vorzeichen hat.
    Vorzeichen zwischendrin werden wohl eher ignoriert anstatt einen Dezimalfehler wegen ungültiger Daten auszulösen.

    Wenn du die einzelnen Felder addieren willst, so musst du schon für jedes Feld einzeln einen Add codieren.
    Einen Gruppen-ADD (bei qualified DS gibts ja noch den eval-corr) gibt es in RPG nicht.

    PS:
    Einen Tabellen-Add gibt es allerdings:

    d s0Sum 10S 2 dim(6) overlay(s0sum#)

    d f0Sum 10S 2 dim(6) overlay(f0sum#)

    f0sum += s0sum; // wird vom Compiler in eine Schleife aufgelöst
    oder
    add s0sum f0sum


    PPS:
    Was den Dezimalfehler angeht, so erfolgt bei Zoned-Feldern ja lediglich eine Prüfung, ob in der rechten Tedrade ein Wert 0-9 steht. Die linke Terade wird lediglich im letzten Byte bzgl. des Vorzeichens ausgewertet.
    Daher ist das Rechnen mit Buchstaben durchaus möglich .
    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

Similar Threads

  1. Negative Zahlen mit EDTWRD
    By Allrounder in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 22-11-06, 12:10
  2. Datenstruktur mit Mehrfachvorkommen
    By JP in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 09-08-06, 08:35
  3. Datenstruktur
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 24-07-06, 13:25
  4. negative Rückmeldung mit Prüfdaten beim Drucken
    By horni in forum NEWSboard Drucker
    Antworten: 8
    Letzter Beitrag: 29-05-06, 11:32
  5. select 10 größte Werte je Ordnungsbegriff
    By holly in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 16-05-06, 12:45

Berechtigungen

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