[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2002
    Beiträge
    43

    Question Verknüpfte built-in-functions ??

    Hallo Forum,

    ich habe folgende Formeln verwendet:
    D date s D
    D monthn s 2 0
    D month s 2A
    date = %date(*date);(hier:2003-04-09)
    monthn = %subdt(date:*M);(hier:04)
    month = %editc(monthn:'5');(hier:04)
    month = %editc(%subdt(date:*M):'5');(hier:00)

    Nun meine Frage, warum funktioniert die zusammengesetzte built-in-function nicht, obwohl die einzelnen Fuktionen funktionieren?

    Ich brauche vom aktuellen Tagesdatum den Monat 2-stellig alphanumerisch mit ggf. führender '0'. Gibt es eine einfachere Formel ?

    Danke für Eure Hilfe, Marc

  2. #2
    Registriert seit
    Sep 2001
    Beiträge
    156

    Post

    Ich würde es so versuchen:
    evalR month = %editc(%subdt(date:*M):'5');
    Du weisst ja nicht, wie das System das Resultatsfeld von %subdt definiert.

  3. #3
    Registriert seit
    Jul 2002
    Beiträge
    43

    Post

    Hallo Rolf,
    danke für Deine schnelle Antwort :-)
    soweit hat es funktioniert.
    Ich muss das komplette Tagesdatum in der Form: 'YYYYMMDD' in alphanumerischer Form darstellen. Leider kann ich Deine Formel von eben nicht einfach kombinieren:
    D dat S 8A
    evalr dat = %char(%subdt(date:*Y)) +
    %editc(%subdt(date:*M):'5') +
    %editc(%subdt(date:*D):'5');
    Das Ergebnis ist hier: '00000009' (der Tag)
    Wie würdest Du das Datum in einer Formel zusammensetzen ?

    Grüße, Marc

  4. #4
    Registriert seit
    May 2002
    Beiträge
    1.121

    Post

    hallo marc,

    muss es unbedingt in einer formel sein ??
    sonst hier ein beispiel
    Code:
    d                 ds                                                                   
    d zeit_datum                    12s 0                                                  
    d zeit                    1      6s 0                                                  
    d heute                   7     12s 0                                                  
    d                                                                                      
    d heute_iso       s              8a                                                    
    d heute_iso_num   s              8s 0                                                  
    d                                                                                      
    d dat_tmj6        s               d   datfmt(*dmy)                                     
    d dat_jmt6        s               d   datfmt(*ymd)                                     
    d dat_tmj8        s               d   datfmt(*eur)                                     
    d dat_jmt8        s               d   datfmt(*iso)                                     
                                                                                           
    c                   time                    zeit_datum                                 
    c                                                                                      
    c                   move      heute         dat_tmj6                                   
    c                   eval      dat_jmt8   =  dat_tmj6                                   
    c                   move      dat_jmt8      heute_iso_num                              
    c                   move      heute_iso_num heute_iso                                  
    c                                                         
    c                   eval      *inlr      =  *on
    gruß ronald

  5. #5
    Registriert seit
    Jul 2002
    Beiträge
    43

    Post

    Hallo ronald,

    leider geht "move" in free-rpg nicht mehr, sonst hätte ich den ganzen Salat ja gar nicht :-(
    Es wäre schon schön, wenn es in einer Formel realisierbar wäre.

    Grüße, Marc

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Post

    Hallo Marc,

    mit dem folgenden Statement kannst Du das Tages-Datum (hier 20030409) ohne Datums-Trennzeichen in ein alphanumerisches Feld ausgeben:

    D DateA S 10A inz(*Blanks)

    /Free
    DateA = %Char(%Date(): *Iso0); //Ergebnis '20030409'
    /End-Free

    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

  7. #7
    Registriert seit
    May 2002
    Beiträge
    1.121

    Talking

    Hallo Birgitta,

    wenn wir Dich nicht hätten...

    Grüße
    Ronald

  8. #8
    Registriert seit
    Jul 2002
    Beiträge
    43

    Post


    D A N K E Birgitta,

    D A N K E an Alle :-)

Similar Threads

  1. XML Extender for iSeries
    By mom in forum IBM i Hauptforum
    Antworten: 30
    Letzter Beitrag: 22-01-07, 15:03
  2. Antworten: 3
    Letzter Beitrag: 24-11-06, 07:41
  3. RPG Functions
    By Bratmaxxe in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 08-03-06, 16:17
  4. AS/400 Service Functions
    By MKnoll in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 19-11-02, 15:21
  5. WEEK_ISO in SQL
    By B.Hauser in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 20-02-02, 09:04

Berechtigungen

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