Проблема заключается в том, что @InitVars находится в заголовке страницы, а не в заголовке отчета. Он переустанавливает переменную на 0 в верхней части каждой страницы.
Перемещение @InitVars в заголовок отчета исправило его, поэтому в подзадаче в Details az появляется правильный номер.
Я по-прежнему вижу некоторое нечетное поведение, когда включаю переменную в основной отчет, но поскольку это было только для отладки, а не для главной цели, мне все равно.
Вы должны просто выбрать результаты для каждой страницы / номера строки и просто рассчитать, какие результаты вам нужны, например:
SELECT *
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
FROM Orders
WHERE OrderDate >= '1980-01-01'
) AS RowConstrainedResult
WHERE RowNum >= 1
AND RowNum < 20
ORDER BY RowNum
Этот SQL является копией ответа mdb для разбивки на страницы, что вам нужно: Как лучше всего разбивать результаты на страницы в SQL Server