Как определить количество видимых дочерних элементов в иерархическом отчете?
-
16-09-2019 - |
Вопрос
Я использую SQL Server Reporting Services 2008 для создания отчета.В таблице в этом отчете отображаются иерархические данные с использованием полей ID и ParentID в данных.Каждая строка данных имеет поле ID и поле ParentID, где ParentID указывает на идентификатор строки, которая является ее родительской.
Отобразить это иерархически не проблема, но теперь я хочу посчитать количество подэлементов в данной строке.Например:
row A (5) sub A (0) sub B (2) sub-sub A (0) sub-sub B (0) sub C (0)
Я могу вычислить это количество, используя следующее выражение:
=Count(Fields!IDField.Value, "RowDetails", Recursive) - 1
Однако иногда я хочу скрыть определенные строки, например.я хочу спрятаться sub-sub A
.Как я могу изменить приведенное выше выражение так, чтобы оно показывало количество (1)
для sub B
в этом случае?
Решение
Сделать это в отчете довольно сложно (если не невозможно).Вместо этого мы перенесли расчет иерархии и количества дочерних элементов в хранимую процедуру.SP выполняет все необходимые вычисления, в отчете просто отображается то, что он получает от SP, и применяется только простое форматирование (при необходимости) на основе вычисленных значений.