Hallo Sebastian,
der einfachste Weg wäre, die Zeitspannen als Date Range zu behandeln und daraus Textlisten zu erstellen. Diese setzt man dann als Gesamtliste zusammen und wendet dann ein @Unique darauf an. Das Ergebnis ist eine Liste aller eindeutigen Datumswerte, welche man mit @Elements dann durchzählen lassen kann.
_dateRange1 := @TextToTime("[" + @Text(Datum1von) + " - " + @Text(Datum1bis)+ "]");
_dateRange2 := @TextToTime("[" + @Text(Datum2von) + " - " + @Text(Datum2bis)+ "]");
_result := @Elements(@Unique(@Explode(_dateRange1 : _dateRange2)));
Dokumentation hierzu gibt es hier: https://help.hcltechsw.com/dom_designer/11.0.1/basic/H_EXPLODE.html
Alternativ gibt es noch diese @Formula:
https://help.hcltechsw.com/dom_designer/11.0.1/basic/H_BUSINESSDAYS_FUNCTION.html
Grundsätzlich ist es immer besser, solche aufwändigen Berechungen im Dokument durchzuführen. Dann läuft der Aufbau der Ansicht auch schneller, weil lediglich ein Feldinhalt angezeigt werden muss.
In der Spalte soll nur die Summe stehen. Wenn es die Spannen überschneiden, dann brauche ich die Gesamtanzahl.
Dann sollte das doch einfach sein?
Dann geht der Zeitraum
- vom Minimum von Datum1von und Datum2von:
@Min(Datum1von; Datum2von)
- bis zum Maximum von Datum1bis und Datum2bis:
@Max(Datum1bis; Datum2bis)
-Werner
So würde ich das jetzt umsetzen und noch @Businessdays verwenden.
_dateRange1 := @TextToTime("[" + @Text(Datum1von) + " - " + @Text(Datum1bis)+ "]");
_dateRange2 := @TextToTime("[" + @Text(Datum2von) + " - " + @Text(Datum2bis)+ "]");
_result := @Unique(@Explode(_dateRange1 : _dateRange2));
_result :=@Sort(_result);
_resultbd := @Transform(_result ;"var";@BusinessDays(@TextToTime(var) ; @TextToTime(var) ; 1:7) );
@Text(@Sum(_resultbd))
Eventuell baue ich dann noch Feiertage mit ein.