[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2006
    Beiträge
    348

    Question Cobol: Alpha Feld in Numerisch

    Hallo Leute,

    ich habe in einem ILE Cobol Programm (V4R5 - V5R4) eine PIC X(22) Variable, welche einen 22 stelligen numerischen Wert enthält z.B. "1231082301102028301229". Wenn ich diese alpha Variable nun eine PIC 9(22) Variable schiebe und mir anschließend den Wert der numerischen Variable anschaue, bekomme ich den Wert 0000082301102028301229. Es werden also anscheinend nur 17 Ziffern übernommen, obwohl es 22 sind.

    Beispiel Cobol Code:
    Code:
     01 STRING-WRK     PIC X(22).              
     01 ZAHL-WRK       PIC 9(22).              
    *------------------------------------------
     LINKAGE SECTION.                          
    *------------------------------------------
    *------------------------------------------
     PROCEDURE DIVISION.                       
    *------------------------------------------
     STEUER SECTION.                           
     ANFANG.                                   
                                               
         MOVE     "1231082301102028301229"  TO 
                  STRING-WRK.                  
         MOVE     STRING-WRK       TO ZAHL-WRK.
    Mit RPG klappt das ganze:
    Code:
    D  zeichen        S             22                              
    D  numerisch      S             22  0                           
    C                   Eval      zeichen = '1231082301102028301229'
    C                   MOVE      Zeichen       numerisch           
    C                   Eval      *INLR=*On
    Wo liegt hier das Problem?

    Gruß
    Matthias

  2. #2
    Registriert seit
    Feb 2002
    Beiträge
    152
    Hallo,

    lt. Handbuch kann Cobol in einem numerischen Feld 18 Stellen verarbeiten.

    Gruss
    akorb

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Läßt sich das Programm so wirklich wandeln? Ich erhalte hier die Nachricht LSC1210 im SEU und LBL1210 beim Wandeln.

    DSPMSGD RANGE(LSC1210) MSGF(QDEVTOOLS/QLSCMSG)
    DSPMSGD RANGE(LBL1210) MSGF(QDEVTOOLS/QLBLMSG)

    LBL1210:

    Nachricht . . . : PICTURE-Zeichenfolge überschreitet maximal zulässige Länge von 18 Ziffern. Klausel PICTURE ignoriert.
    Fehlerbeseitigung: Die Klausel PICTURE darf - einschließlich der für das Zeichen P und für gleitende Einfügungszeichen reservierten Ziffernpositionen - eine Länge von 18 Ziffern nicht überschreiten.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Gib beim Umwandeln die Option
    CRTBNDCBL ... ARITHMETIC(*EXTEND31)
    an, dann müssste es klappen.

    Laut ANSI darf COBOL nur 18 signifikante Ziffern verarbeiten.
    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 2003
    Beiträge
    2.307
    Achso. Als ILE COBOL läßt es sich wandeln.

    Und so klappt das auch 22stellig:

    01 STRING-WRK PIC X(22).
    01 ZAHL-WRK-R REDEFINES STRING-WRK.
    05 ZAHL-WRK-2 PIC 9(22).

  6. #6
    Registriert seit
    Jun 2006
    Beiträge
    348
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Gib beim Umwandeln die Option
    CRTBNDCBL ... ARITHMETIC(*EXTEND31)
    an, dann müssste es klappen.

    Laut ANSI darf COBOL nur 18 signifikante Ziffern verarbeiten.
    Mit ARITHMETIC(*EXTEND31) hat es geklappt.

    Danke.

Similar Threads

  1. Alpha Feld -> Alpha Feld ohne führende Nullen
    By llschuh in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 18-03-13, 06:11
  2. Datenkonvertierung numerisch gepackt nach character
    By chrhe in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 01-11-06, 14:55
  3. OPNQRYF im MAPFLD umsetzung numerisch zu Alpha (Digits)
    By labm in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 23-03-06, 11:17
  4. DDS alpha in numerisch
    By Tobse77 in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 23-06-05, 10:20
  5. DDS - LF - numerisch in alpha
    By Tobse77 in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 22-06-05, 09:02

Berechtigungen

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