Вы можете создать скрытый параметр datetime в основном отчете и установить его значение по умолчанию на текущее время: =Now()
.Давайте назовем этот параметр @MainReportRuntime
.
Создайте этот же скрытый параметр в ваших подчиненных отчетах и передайте @MainReportRuntime
через вложенные отчеты.
Измените SQL подотчета, чтобы он возвращал данные только в том случае, если дата находится в пределах получаса основного времени выполнения отчета, и добавляете сообщение об истечении срока действия отчета, если оно больше получаса:
SELECT SomeField
FROM SomeTable
WHERE @MainReportRuntime >= DateAdd(mi, -30, Current_Timestamp)
UNION ALL
SELECT 'Report has expired - please rerun report to get current data'
WHERE @MainReportRuntime < DateAdd(mi, -30, Current_Timestamp)