Иерархический отчет
Сделаем отчет, который отображает в иерархическом виде структуру подчинения пользователей CRM:
- Откройте VS 2008 и создайте проект отчета;
- Добавьте в отчет новый DataSet с таким SQL запросом:
SELECT fsu.systemuserid 'GUID', fsu.fullname 'Полное имя', fsu.parentsystemuserid 'Родительский GUID' FROM FilteredSystemUser fsu WHERE fsu.fullname NOT IN ('INTEGRATION', 'SYSTEM')
Это простой запрос, который вытаскивает всех Пользователей т их руководителей;
- Добавьте в отчет таблицу с двумя столбцами. В первый столбец поместите поле «Полное имя», а во второй (с именем «Уровень») поместите выражение:
=Level()
Это выражение будет считать вложенность уровня для каждого Пользователя;
- Выделите строку и щелкните по ней правой кнопкой мыши – Row Group – Group Properties. В окне свойств группы сделайте следующие настройки (на соответствующих вкладках):
- General: щелкните Add и укажите в качестве поля группировки GUID;
- Visibility: поставьте по умолчанию отметку Hide, а также галку Display can be toggled… и выберите в качестве, у которого будет отображаться переключатель, Полное имя;
- Advanced: в поле Recursive parent укажите Родительский GUID.
- Откройте свойства поля Полное имя (щелкните по нему правой кнопкой мыши) и на вкладке Alignment, в поле Left задайте следующие выражение:
=CStr(2+(Level()*50))+"pt"
Это выражение делает отступ в поле в зависимости от уровня вложенности (чем ниже спускаемся тем больше отступ).
Готово. Выгружайте RDL и создавайте из нее отчет в CRM.