Здравствуйте.
Посмотрите эту короткую статью в руководстве по отчетам (https://simple-scada.com/help/report/periodicsourcework.html). На картинке показан принцип разбивки по интервалам, а в описании принцип работы источника. Последний интервал не равен предыдущим, т.к. ему не хватило "места". Т.е. время начала и конца отчета - это всегда неизменная величина. Скада просто берёт данные от времени начала до времени конца и пытается разбить их на равные интервалы, если это возможно. Если нет, то последний интервал будет неполным.
Поэтому Вам нужно сделать так чтобы время начала и время конца совпадали по часам, минутам, секундам. Для этого достаточно перед построением отчета скопировать часы/минуты/секунды и времени начала во время конца. Пример:
var
aBegin: TDateTime;
begin
aBegin := vrBegin.AsDateTime;
vrEnd.Value := RecodeTime(vrEnd.AsDateTime, HourOf(aBegin), MinuteOf(aBegin), SecondOf(aBegin), 0);
// далее строим отчет
end.
, где vrBegin и vrEnd - переменные начала и конца. Теперь выбираем время начала = "10.12.2019 07:40:00", время конца = "15.12.2019 00:00:00". Строим отчет. Перед построением отчета время конца станет равным "15.12.2019 07:40:00" и отчет будет построен.