Допустим, требуется формировать отчёт за прошедшие сутки каждый день в 08:00, без вмешательства пользователя. И если в предыдущих примерах интервал времени для отчёта пользователь выбирал самостоятельно, то теперь интервал должен выставляться автоматически. Будем считать, что переменные начала и конца интервала времени называются как и в предыдущих примерах "vrTimeBegin" и "vrTimeEnd".
Создадим скрипт-таймер. Для этого перейдём в редактор скриптов, нажмём кнопку "Создать новый скрипт", введём имя скрипта, например "ReportTimer". Тип события выберем "Начало часа". В скрипте напишем следующий код:
var
aReport: TM_Report;
begin
// если сейчас не 8 часов, то прерываем выполнение скрипта
if HourOf(Now) <> 8 then Exit;
// берём текущее время и дату и сбрасываем минуты, секунды и
// миллисекунды в 0, т.к. нам важны только часы. Записываем
// полученное значение в переменную vrTimeEnd
vrTimeEnd.Value := RecodeTime(Now, HourOf(Now), 0, 0, 0);
// от значения vrTimeEnd отнимаем 24 часа и записываем
// полученное значение в vrTimeBegin
vrTimeBegin.Value := IncHour(vrTimeEnd.AsDateTime, -24);
// Формируем отчет с именем "Отчет_1" и открываем его для просмотра
// на всех клиентах с именем "Client_1"
aReport := ReportBuild('Отчет_1');
aReport.View('Client_1');
end.