Sry, was es da aktuell ev. für Bücher gibt die empfehlenswert wären weiß ich nicht.
zum zeitleisten problem
pack dann einfach zeitleisteBeginn, zeitleisteEnde und zeitleisteMaxBereich runter in das for each.
Im for each dann so das es mit als erstes verarbeitet wird.
Und kleiner Tipp noch es könnte ja sein das durch die SQL dein MinDatum zum Beispiel der 07.10.2021 ist.
Einfach weil da die erste gültige Buchung ist.
Bei sowas wäre zu überlegen ob du nicht prüfst:
Visual Basic:
Dim MinDatum As DateTime = CType(Row.Item("min_begin"), DateTime) ' ZeitleisteStart als DateTime
Dim checkMinDatum As DateTime = New DateTime(MinDatum.Year, 1, 1) ' Hilfsvariable für den 01.01 des Jahres
If MinDatum > checkMinDatum Then MinDatum = checkMinDatum ' Wenn MinDatum höher als der 01.01 dann MinDatum auf den 01.01 setzen, damit anhand 01.01 die Zeitleiste aufgebaut wird
Dim ZeitleisteStart As Integer = (((MinDatum.Year * 100) + MinDatum.Month) * 100) + MinDatum.Day ' ZeitleisteStart als Zahl umgerechnet
So sollte deine Zeitleiste in den meisten Fällen die Abstände immer richtig zeichen (ansonsten wird ev. alles zu sehr zusammengestaucht gezeichnet)
so änhlich dann ev. für MaxDatum prüfen, nur das da zum 31.12 hin geprüft wird und auf den 31.12 gesetzt wird wenn MaxDatum kleiner ist