Завидую своим англоговорящим коллегам, им не приходится изобретать велосипед, у них все в одной раскладке, и никто не обращается к другому человеку по имени-отчеству, что очень важно в наших официальных письмах.

Вот простая задача – нужен актуальный телефонный справочник организации, который можно распечатать, который содержал бы ФИО на русском и отображаемое имя на английском (как в почтовой адресной книге) и имел основные контактные телефоны. Но редко в какой организации встретишь нормальное решение.

Всем знакома ситуация, когда сотрудник рецепшн отправляет по почте криво заполненный Word файл при каждом кадровом изменении или смене сотрудником сотового телефона? Думаю, многие улыбнулись…

Делюсь решением как подключить каталог Active Directory к SQL Reporting Server.

Если у Вас порядок в AD, пропускайте этот шаг, для остальных привожу пример заполнения полей пользователя в AD.

image

image

Плюсы такого заполнения: можно искать человека в других справочниках на русском.
Минусы: по фамилии на латинице пользователи не найдутся.

Другой вариант, можно использовать дополнительные атрибуты AD например: middleName или Display-Name-Printable для хранения ФИО или отчества на русском.

Скачиваем и запускаем Report Builder

Выбираем Matrix Wizard -> Create a dataset
Имя нового подключения – AD
Тип подключения – OLE DB
В закладке Credentials выбираем полномочия текущего пользователя
Нажимаем кнопку «Build»
Ole DB Provider выбираем: OLE DB Provider for Microsoft Directory Services

В имени сервера заполняем любой доступный домен контроллер, должно получиться так:

image

Далее в строку подключения вносим:

SELECT givenName, SN, telephoneNumber,department, displayName,title, mail, mobile FROM 'LDAP://OU=Users,OU=HOLDING,DC=domain,DC=kz'WHERE objectCategory='user'

Поменяйте на свой LDAP путь к OU где у Вас расположены пользователи

Протестируем подключение:

image

Далее перетащим все нужные поля в «значения» отчета:

image

Всё. Дальше форматируем отчет как Вам угодно. Я, например, сгруппировал отчет по департаменту и подогнал под А4 размер.

Сортировать и фильтровать данные можно в запросе, добавив оператор: ORDER BY column1, column2,… ASC|DESC; или в свойстве Tablix

image

Осталось только разместить отчет на Reporting Server и опубликовать его, добавив к концу URL
ключи ?rs:embed=true

Вот такой у меня получился отчет:

image

Скачать его можно здесь

Преимущества такого решения:

Справочник можно разместить на SQL Reporting Server, сейчас он полностью бесплатный, скачивается отдельно может работать c Express версией, или разместить отчет rdl на любой aspx станице в интранете.

Дополнительно вы получаете информацию о пользователях AD и правильности заполнения департаментов. Все актуально и красиво, главное, вовремя перемещать уволенных пользователей в любую другую OU.

Кстати, номер департамента у пользователя указан для правильного построения иерархии, если Вам нужна строгая сортировка по должностям, можно использовать любой дополнительный атрибут AD.

Поля можно динамически объединять, например «Имя» и «Фамилия» в поле «ФИО», и быстро подгонять справочник под корпоративные цвета.

С уважением, Сергей

Комментарии (4)


  1. rd_nino
    05.02.2019 17:59

    Для иерархии должностей можно использовать атрибут Manager


    1. Aickis Автор
      06.02.2019 05:23

      Это вряд ли, у директоров нет менеджеров. Но заполнение поля менеджера очень облегчает жизнь при написании бизнес процессов, и например, отрисовки Org Chart в Офис 365.


  1. Vvka
    06.02.2019 05:20

    Поиск только по Ctrl+f? Или есть встроенное решение?


    1. Aickis Автор
      06.02.2019 17:35

      есть, на последней картинке поисковая строка. также експорт в различные форматы