View Full Version : Datumsprobleme
Hallo zusammen! ;-)
Vieleicht weiss jemand Rat!
D TageS DS
D Tag1 d DatFmt(*ISO) Inz(d'2000-01-01')
D Tag2 d DatFmt(*ISO) Inz(d'2000-01-06')
D Tag3 d DatFmt(*ISO) Inz(d'2000-04-21')
D TageXX d Dim(16) Overlay(TageS)
D BaseDate S d Inz(d'2004-01-02')
D Today S d DatFmt(*EUR)
D Jahr S 4S 0
jetzt würde ich gerne in der "DS" oder aber in die Feldgruppe "TageXX" mit der Jahreszahl aus "BaseDate" (=2004) bzw. der Jahreszahl(=2004) aus "Today" überschreiben!
Die Monate und Tage sollen in der "DS" bzw. der Feldgruppe
so wie sie sind erhalten bleiben!
D JahrXX 4 overlay(Tagexx)
Du erhältst ein Array von JahrXX(1) bis JahrXX(16), also nicht noch mal DIM(n).
Ich würde allerdings nicht zwischen *ISO und *EUR wechseln.
vielen Dank für die schnell Antwort!
mir ist aber immer noch nicht ganz klar, wie ich jetzt das
Datum in der "JahrXX" mit 2004 überschreiben kann?
geht das dann nur mit "MoveL" oder auch mit "Eval" bzw. mit BIF's?
Ist es auch möglich, für z.B. "Text2" das Monat und den Tag zu ändern?
Hallo,
automatisch kann man das Datum nicht ersetzen, da sind schon ein paar Statements notwendig
Hier ein Beispiel:
D DSTage DS
D Tag1 D DatFmt(*ISO) inz(D'2000-01-01')
D Tag2 D DatFmt(*ISO) inz(D'2000-01-06')
D Tag3 D DatFmt(*ISO) inz(D'2000-04-21')
D ArrayTag D overlay(DsTage) dim(3)
D Today S D inz(*sys)
D BaseDate S D inz(D'2003-01-01')
D Year S 5U 0
D ArrYear S 5U 0 Dim(%elem(ArrayTag))
/Free
Year = %SubDt(Tag1: *Y);
Tag1 = Tag1 + %Years(%SubDt(Today: *Y)) - %Years(year);
ArrYear = %SubDt(ArrayTag: *Y);
ArrayTag = ArrayTag + %Years(%Subdt(Today: *Y)) - %Years(ArrYear);
/End-Free
hab gleich dazu nochmal eine Frage:
D TageS DS
D Tag1 d DatFmt(*ISO) Inz(d'2000-01-01')
D Tag2 d DatFmt(*ISO) Inz(d'2000-01-06')
D Tag3 d DatFmt(*ISO) Inz(d'2000-04-21')
D TageXX d Dim(16) Overlay(TageS)
D JahrXX 4 overlay(TageXX)
D BaseDate S d Inz(d'2004-01-02')
D Today S d DatFmt(*EUR)
D Jahr S 4S 0
D DS Inz
D WorkDate 1 10d DatFmt(*ISO)
D WorkDay 9 10 0
Ich möchte jetzt mit dem Feld "WorkDate" über %Lookup prüfen, ob das Datum in der Feldgruppe "TageXX" vorhanden ist!
C If %Lookup(WorkDate:TageXX) = *null
:
C EndIf
Leider bekomme ich jetzt immer beim Umwandeln des Programm's folgende Fehlermeldung:
1 Operanden sind mit der Art des Operators nicht kompatibel
wie muß das SuchArgument "WorkDate" aufgebaut sein, über %lookup in der Feldgruppe zu suchen?
Die Built-in-Function %Lookup() liefert bei nicht gefunden *Zeros und nicht *NULL zurück!
Birgitta
Für Monat und Tag kannst du auch entsprechende Overlays definieren:
d MonatX 2 overlay(TageXX:6)
d TagX 2 overlay(TageXX:9)
die Felder können dann ganz normal referiert und gesetzt werden (eval, move).
Vielen dank für eure schnell Hilfe!
mfg