Seite 1 von 1

Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 11:52
von herb61
Hallo,

ich möchte gerne folgende Anforderung im CC lösen.
Es soll die Anzahl der Wochentage (Montag - Freitag) zwischen zwei Daten ermittelt werden.
Hat jemand eine Ahnung wie das funktioniert?

Grüße
Herbert

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 12:15
von Natalie
Du durchläufst jeden einzelnen Tag, indem du zu deinem Startdatum immer +1 addierst, bis du beim Enddatum ankommst.
Pro Tag prüfst du den Wochentag DATE2DWY (siehe Onlinehilfe).

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 12:16
von McClane
Schau dir doch mal die Tabelle Date an :)

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 12:20
von Natalie
Ach ja, ich denke wieder zu programmiererisch :mrgreen:

@Herbert
Beide Ansätze liefern dir das richtige Ergebnis. Wenn du lieber mit Filtern und COUNT arbeitest, ist McClanes Ansatz sicherlich der schönere für dich.

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 12:36
von herb61
Hallo Natalie, halle McClane,

vielen Dank für die Lösungsansätze.
Werde mich mal daran probieren.
Leider finde ich in unserem System aber keine Tabelle mit Namen "Date"

Grüße
Herbert

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 12:38
von Natalie
herb61 hat geschrieben:Leider finde ich in unserem System aber keine Tabelle mit Namen "Date"

Es ist eine virtuelle Tabelle: Du siehst sie nicht im Object Designer, kannst sie aber für Record-Variablen verwenden und dir ihren Inhalt ansehen, indem du mit dem Wizard eine neue Form auf Basis von ihr erstellst. Alle Felder hinzufügen --> Vorschau --> Fertig.

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 12:52
von herb61
Hallo Natalie,

ah... Danke!
Das mit der neuen Form auf die virtuelle Tabelle "Date" hat funktioniert.
Dann werde ich mich mal dranmachen.

Gruß
Herbert

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 13:00
von winfy
Genau Tabelle 2000000007 verwenden und dann

Period Type filtern auf Period Type:Date
Period Start = dein Anfangsdatum..dein Enddatum
Period No. = 1..5

dann ein Count

mfg,
winfy

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 13:18
von McClane
Mir gefällt Natalies Vorschlag besser. Ist weniger Aufwand.

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 14:05
von Natalie
McClane hat geschrieben:Ist weniger Aufwand.
Hm, finde ich gar nicht.
Du brauchst ne Datumsvariable, eine Zählvariable, und ein paar Zeilen code.

Bei der Record-Lösung reicht die Recordvariable, weniger Zeilen, und das Ergebnis des COUNTs.

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 14:06
von winfy
McClane hat geschrieben:Mir gefällt Natalies Vorschlag besser. Ist weniger Aufwand.


McClane mir gefällt dein Vorschlag besser. :wink:

mfg,
winfy

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 14:13
von McClane
Das sind doch höchstens drei Zeilen ... also eine weniger. Naaa gut: tut sich nicht so viel :-? :wink:

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 14:40
von winfy
Wenn du im DataItem nun die Filter für Period Type und Period No. fest hinterlegt hast, dann ist es sogar nur ein 2 Zeiler.

Akzeptiere doch das du einen guten Vorschlag gemacht hast. :mrgreen:

mfg,
winfy

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 14:44
von McClane
Ich kann's auch in einer Zeile schreiben :twisted:

Gelöst: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 15:53
von herb61
Viele Dank an alle die mir geantwortet haben!!
Ich habs jetzt so gelöst


IF "Archiving Date" > "Task Date" THEN BEGIN
Kalender.SETRANGE("Period Type",0);
Kalender.SETRANGE("Period Start","Task Date","Archiving Date");
Kalender.SETRANGE("Period No.", 1,5);

IF Kalender.FIND('-') THEN BEGIN
REPEAT
NettoDauer := NettoDauer +1;
UNTIL Kalender.NEXT =0;
END;
END;

Man kann es sicher noch viele eleganter Lösung, aber ich bin kein Profi :-)))

Grüße
Herbert

Re: Anzahl der Wochentage berechnen

Verfasst: 21. Mai 2015 16:02
von winfy
Code ist Code das ist richtig, aber den unteren Teil mit FIND und REPEAT UNTIL würde ich mir an deiner Stelle trotzdem sparen.
Genau das macht COUNT für dich. :-)

Nachdem du die Filter gesetzt hast einfach nur :

Code:
NettoDauer := Kalender.COUNT;


mfg,
winfy