HILFE!!! Datum berechnen
let myDATE := date(2020,10,20);
myDATE := myDATE + 7;
myDATE
Ergebnis:
26.10.2020
Wer kann da helfen?
26.10.2020
13 Antworten
-
Hi, frederic. Dein Code ist korrekt. Zwischen dem 19.10 und 25.10 besteht ein Bug. Mirko
-
Hallo, versuch's mal so:
date(year(Datum), month(Datum), day(Datum) + 7)
-
@Copytexter. Oh, danke für den korrekten Code. Da war ich wohl ein wenig voreilig. Bisher hatte Datum+x bei mir also nur zufällig überwiegend richtige Ergebnisse gebracht. Wieder etwas gelernt. Mirko
-
Na ja, garantieren kann ich auch für nichts, aber bisher hat das als Workaround immer funktioniert.
-
hallo Copytexter
der schein trügt. Versuch mit dem Redultat ein Appointment zu berechen ...
appointment((Ergebnis,Zeit1),(Ergebnis,Z2))
einmal vor Winterzeit dann anfangs Winterzeit.
Ergebnis = 22.10.2020 und dann +7
-
Hallo Virginia, man muss das Datum, zu dem man X Tage addieren will, wie beschrieben in seine Bestandteile zerlegen und die Addition bei day() vornehmen. Das müsste mit allen Feldern funktionieren, die ein Datum beinhalten, also auch Terminen und Zeitstempeln. Wenn man also einen Termin für den 20.10.2020 plus 7 Tage berechnen will, dann sollte das bspw. so korrekt funktionieren (mit Variable, weil übersischtlicher):
let myDate := date(year(Termin), month(Termin), day(Termin) + 7);
appointment(myDate + time(14, 0), myDate + time(15, 0))Das Ergebis lautet: 27.10.2020, 14:00 - 15:00 Uhr
-
hallo Copytexter
in einer Schlaufe gegen sind
Startdatum, Startzeit, Endzeit,Enddatum in Tabelle1.
In Tabelle2 sollen diese Werte übernommen werden und zusätzlich aus Startdatum, Startzeit, Endzeit,Enddatum ein Termin generiert eerden
-
Hallo Virgina,
ist es ein Problem oder eine Aufgabestellung? Es sollte so laufen:
---for i in select Tabelle1 do
let new:=create Tabelle2;
new.(Startdatum=i.Startdatum;
Startzeit:=i.Startzeit;
Enddatum:=i.Enddatum;
Endzeit:=i.Endzeit;
TERMINFELD:=appointment(datetime(i.Startdatum,i.Startzeit),datetime(i.Enddatum,i.Endzeit)))
end
---
Leo
-
hallo Leo
hier den Code, den ich verwende:
let myFerienVon := Objekte.UnterbruchFerien.von; "/// hier,it sollen Ferien berücksichtigt werden";
let myFerienBis := Objekte.UnterbruchFerien.bis;
let myFerien := myFerienVon + " bis " + myFerienBis;
let mySTEP := Anzahl;
let mySTART := abDatum;
let Frage := dialog("ACHTUNG", "Planung generieren
für Objekt : " + Objekte.'Obj-ID' + "
Adresse : " + Objekte.ObjAdresse + "
ab Datum : " + mySTART + if myFerienVon != null then
"
Ferien : " + myFerien
end + "
" + "Step : " + mySTEP, ["ok", "zurück"]);
if Frage = "ok" then
do as server
let myDATE := date(2020, 10, 25); "/// Beginn Winterzeit - da keine Zeit zwischen 00:00 und 04:00 Zeit nicht berücksichtigt)";
let my1LAUF := 0;
let myNEXTDATE := abDatum; "/// Parameter von Tabelle 1: 1 Record enthält Abdatum, Frequenz, Wochentage und Weekendtage die berücksichtigt werden soll";
let mySTART := abDatum;
let myUSERSTART := abDatum;
let me := Objekte;
let myBEZ := Beschrieb;
let my := this;
let myEND := date(2021, 1, 14);
let myVON := WoVon;
let myBIS := WoBis;
let myWON := WeVon;
let myWBI := WeBis;
if myWON != null then myVON := myWON end;
if myWBI != null then myBIS := myWBI end;
"// User Schlaufe RK M:N TAbelle, die User enthält, die für den Termin eingesetzt werden ";
for i in select dummyPersonal where LKObjekt = my do
let myUSER := i.Kontakte.Benutzer;
mySTART := myUSERSTART;
"// Objekt";
"/// Job generieren";
let myTEST := 0;
while mySTART <= myEND do
let myJOB := (create Jobs);
myJOB.(Objekte := me);
myJOB.(LTF := me.LTF);
myJOB.(Bezeichnung := myBEZ);
myJOB.(Beschreibung = null);
myJOB.(Firmen := me.Firmen);
myJOB.(Kontakte := me.Kontakte);
myJOB.(Art := 1);
myJOB.(Startdatum := mySTART);
myJOB.(Startzeit := myVON);
myJOB.(Endzeit := myBIS);
"/// ohne diesen Zusatz sind die Termin ab 25.10.2020 falsch";
if myTEST = 0 then
myJOB.(Termin := appointment(datetime(mySTART, myVON), datetime(mySTART, myBIS)))
else
let myVONW := number(myVON) + 3600000;
let myBISW := number(myBIS) + 3600000;
myJOB.(Termin := appointment(datetime(mySTART - 1, myVONW), datetime(mySTART - 1, myBISW)))
end;
"/// Unterbruch / Ferien checken";
if myFerienVon != null and myFerienBis != null then
if myFerienVon <= mySTART and myFerienBis >= mySTART then
myJOB.(Status := 17)
else
myJOB.(Status := 1);
if mySTART < today() then myJOB.(Status := 6) end
end;
"///";
myJOB.(Benutzer := myUSER);
closeRecord();
mySTART := mySTART + mySTEP;
if mySTART >= myDATE and myTEST = 0 then
mySTART := mySTART + 1;
myTEST := 1
else
mySTART := mySTART
end
end
endend;
if my1LAUF := 0 then
myNEXTDATE := mySTART + 7;
my1LAUF := 1
end;
abDatum := mySTART
end
endLG
-
und nun habe ich ein weiteres Problem: Wenn ich die Daten öffne ist die Kalendansicht nur teilweise farblich und inhaltlich dargestellt. Muss dann auf Monat und dann wieder auf Woche switchen, um die richtige Darstellung zu haben (zweiter Bild).
Auch wenn ich andere Tabellen verwende und dann den Kalender aufrufe, muss ich switchen.
In der Kalendar Übersicht werden die Termine farblich nicht richtig angezeigt bzw garnicht ausgefüllt. Da muss ich
-
Content aside
- vor 6 MonatenZuletzt aktiv
- 13Antworten
- 2391Ansichten
-
2
Folge bereits