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

Thema: Dezimaldaten

  1. #1
    Registriert seit
    Nov 2004
    Beiträge
    325

    Dezimaldaten

    Hallo Froum,

    seit neuestem gibt es immer dann einen Abruchfehler, wenn ein Programm Neu kompiliert wird.
    es handelt sich hierbei um eine Datumseingabe ins Bild, wenn die Engabe geprüft ist, dann passiert folgendes:

    Beim Übertragen der Werte kommt es plötzlich zu einem Dezimaldatenfehler bei folgendem Statement;

    Numdat = 08022024 ;
    isodat = %Date ( Numdat : *ISO ) ;

    Dort wird immer abgebrochen.

    Habt Ihr any Ideas?
    mfg DKSPROFI

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das Format des numerischen Feldes muss stimmen:
    TTMMJJJJ = *EUR0
    JJJJMMTT = *ISO0
    Das Zielfeld kann ein anderes Format aufweisen, es wird dann umgerechnet.

    Die 0 steht für "ohne Trennzeichen".

    Wobei Bildschirmfelder inzwischen DATE-Felder korrekt unterstützen.
    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 2004
    Beiträge
    325
    Hallo zusammen,

    Ich habe mir beholfen:

    isodat = %Date ( Numdat : *EUR ) ;
    isodat1 = isidat ;

    Funktioniert, nicht schön, aber selten.
    mfg DKSPROFI

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Wieso musst Du das nochmal umlanden?

    Beim Konvertieren eines numerischen bzw. alphanumerischen Datums wird im 2. Parameter das Format des numerischen oder alphanumerischen Datums übergeben. Fehlt der 2. Parameter wird davon ausgegangen, dass das (alpha)numerische Datum im *ISO-Format übergeben wurde.
    Das Datum selber ist (under the cover) ein fortlaufender Zähler (Scaliger No), der (lt.Documentation) am 01.01.4713 BC (Beginn Julianischer Kalender) aufsetzt. Datums-Formate sind lediglich dazu da, um diese Zahl lesbar zu machen. In RPG wird die Scaliger No in einen alphanumerischen String konvertiert und abh. vom Datums-Format der Variablen (D-Bestimmung/H-Bestimmung) aufbereitet. Unmittelbar vor dem Fortschreiben wird die alphanumerische Aufbereitung des Datums wieder in die Scaliger No konvertiert.
    Deshalb muss auch das Ziel-Format beim Konvertieren mit %Date() nicht angegeben werden.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Nov 2004
    Beiträge
    325
    Hallo Brigitte,

    ich habe das deshalb so gemacht, da sonst nicht funktioniert.
    mfg DKSPROFI

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Ich weiß nach wie vor nicht warum es nicht funktionieren sollte!
    Das folgende Programm wird beim mir ordnungsgemäß kompiliert und auch ausgeführt:

    Code:
     DCL-S  DateEur       Date(*Eur);             
     DCL-S  DateIso       Date(*Iso);             
                                                  
     DCL-S  DateNum       Packed(8) inz(*Zeros);  
    //--------------------------------------------
      DateNum = 14022024;                         
      Dsply DateNum;                              
                                                  
      DateIso = %Date(DateNum: *EUR);             
      Dsply  DateIso;                             
                                                  
      DateEur = %Date(DateNum: *EUR);             
      Dsply  DateEur;                             
                                                  
      DateNum = 20240215;                         
      Dsply DateNum;                              
                                                  
      DateIso = %Date(DateNum);                   
      Dsply  DateIso;                             
                                                  
      DateEUR = %Date(DateNum);                   
      Dsply  DateEur;                             
                                                  
     *INLR       = *On;
    Das Ergebnis sieht wie folgt aus:
    Name:  Screenshot 2024-02-09 182503 - Date.png
Views: 190
Size:  3,2 KB

    Noch eine kleine Anmerkung: ich heiße BIRGITTA und nicht Brigitte oder Britta oder sonst irgendwas. Wenn Du Dir nicht sicher bist, lass ihn weg.
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wie oben bereits gesagt:
    "Das Zielfeld kann ein anderes Format aufweisen, es wird dann umgerechnet."
    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

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von DKSPROFI Beitrag anzeigen
    Hallo Froum,

    seit neuestem gibt es immer dann einen Abruchfehler, wenn ein Programm Neu kompiliert wird.
    es handelt sich hierbei um eine Datumseingabe ins Bild, wenn die Engabe geprüft ist, dann passiert folgendes:

    Beim Übertragen der Werte kommt es plötzlich zu einem Dezimaldatenfehler bei folgendem Statement;

    Numdat = 08022024 ;
    isodat = %Date ( Numdat : *ISO ) ;

    Dort wird immer abgebrochen.

    Habt Ihr any Ideas?
    ... wenn das nach recompile passiert, muss sich was an extern deklarierten Feldern geändert haben. Externe Datenstrukturen, Dateifelder, Displayfiles oder Deklarationen in Copystrecken. Das kann auch durch libl passieren. Da würde ich mal genauer analysieren, bevor ich das mit irgendwelchen Blindreparaturen bearbeite.

    D*B

    PS: Es heißt Forum und nicht Froum, wenn Du nicht sicher bist, lass es lieber weg.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Vielleicht wurde statt Froum eben Frodo gemeint?
    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

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Vielleicht wurde statt Froum eben Frodo gemeint?
    Baldor ist heute zu Scherzen aufgelegt.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Du kleiner Schelm....
    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 2004
    Beiträge
    325
    Hallo Birgitta

    Entschuldige bitte

    @db

    Natürlich, heißt es Forum
    mfg DKSPROFI

Berechtigungen

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