PDA

View Full Version : Verknüpfte built-in-functions ??



Gimli
09-04-03, 09:55
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

rolf
09-04-03, 10:01
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.

Gimli
09-04-03, 10:32
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

malzusrex
09-04-03, 11:12
hallo marc,

muss es unbedingt in einer formel sein ??
sonst hier ein beispiel


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

Gimli
09-04-03, 11:44
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

B.Hauser
09-04-03, 11:53
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

malzusrex
09-04-03, 12:01
Hallo Birgitta,

wenn wir Dich nicht hätten...

Grüße
Ronald

Gimli
09-04-03, 12:06
D A N K E Birgitta,

D A N K E an Alle :-)