[NEWSboard IBMi Forum]

Thema: %editc

  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    425

    %editc

    Hi,
    ich suche nach einer Erklährung für folgendes:
    Code:
     H DECEDIT('0,')  DATEDIT(*DMY.)                       
     D S_DLS_DT        S             11                                      
     D P001DLS         S              3      inz('XXX')                                
     D  HEUTEJ         S              4S 0 INZ(2012)                         
     D  HEUTEM         S              2S 0 INZ(05)                           
     D  HEUTET         S              2S 0 INZ(18)                           
     D  STRING         S              8                                      
     C                   EVAL      S_DLS_DT = P001DLS + %EDITC(              
     C                             HEUTEJ*10000+HEUTEM*100+HEUTET:'X')       
     C                   EVAL      STRING = %EDITC(                          
     C                             HEUTEJ*10000+HEUTEM*100+HEUTET:'X')       
     C     S_DLS_DT      DSPLY                                               
     C     STRING        DSPLY                                               
     C                   SETON                                        LR
    Erwartet hätte ich
    XXX20120518 und
    20120518

    bekommen tu ich
    Code:
    DSPLY  XXX00020120
    DSPLY  00020120
    Warum werden da noch 3 Nullen vor gestellt

    Seh ich den Wald vor lauter Bäumen nicht?

    Danke
    Der ILEMax

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Weil der Compiler für die Berechnung von Zwischenergebnissen halt größere Felder anlegt und immer das mögliche Maximum berücksichtigt.
    Wenn dein Ergebnis eine max. Größe nicht überschreitet, kannst du das wieder entsprechend verpacken:

    %dec(Ergebnis:8:0)
    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
    Sep 2005
    Beiträge
    425
    ok, thx.
    mit %editc(%dec(j*10000+m*100+t:8:0):'X')
    geht es.

    hatte es vorher mit %substr(%editc(j*10000+m*100+t:'X'):4) gelöst und hab mich gefragt woher ich in anderen fällen wissen kann wieviele nullen davor gestellt werden.

    aber mit dem %dec geht es

    Danke
    ILEMax

Berechtigungen

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