Завидую своим англоговорящим коллегам, им не приходится изобретать велосипед, у них все в одной раскладке, и никто не обращается к другому человеку по имени-отчеству, что очень важно в наших официальных письмах.
Вот простая задача – нужен актуальный телефонный справочник организации, который можно распечатать, который содержал бы ФИО на русском и отображаемое имя на английском (как в почтовой адресной книге) и имел основные контактные телефоны. Но редко в какой организации встретишь нормальное решение.
Всем знакома ситуация, когда сотрудник рецепшн отправляет по почте криво заполненный Word файл при каждом кадровом изменении или смене сотрудником сотового телефона? Думаю, многие улыбнулись…
Делюсь решением как подключить каталог Active Directory к SQL Reporting Server.
Если у Вас порядок в AD, пропускайте этот шаг, для остальных привожу пример заполнения полей пользователя в AD.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/e1b/882/947/e1b8829470159c18a903162f4a5dfdd7.png)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/3ca/bd1/0b7/3cabd10b7ea20402cebd1e9de068f95a.png)
Плюсы такого заполнения: можно искать человека в других справочниках на русском.
Минусы: по фамилии на латинице пользователи не найдутся.
Другой вариант, можно использовать дополнительные атрибуты 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](https://habrastorage.org/r/w1560/getpro/habr/post_images/6bb/dc3/559/6bbdc355902d2ce4b7fb9ed24a0c4066.png)
Далее в строку подключения вносим:
Поменяйте на свой LDAP путь к OU где у Вас расположены пользователи
Протестируем подключение:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/8e0/c7c/f67/8e0c7cf67b458473b2998199e2e172c1.png)
Далее перетащим все нужные поля в «значения» отчета:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/336/e6f/1ca/336e6f1ca48146d80d8304d3f07c17fa.png)
Всё. Дальше форматируем отчет как Вам угодно. Я, например, сгруппировал отчет по департаменту и подогнал под А4 размер.
Сортировать и фильтровать данные можно в запросе, добавив оператор: ORDER BY column1, column2,… ASC|DESC; или в свойстве Tablix
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/9b6/876/d45/9b6876d4581eae53aaaec491e208e33d.png)
Осталось только разместить отчет на Reporting Server и опубликовать его, добавив к концу URL
ключи ?rs:embed=true
Вот такой у меня получился отчет:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/424/bbe/e8c/424bbee8cda062cf94831b4be8f62091.png)
Скачать его можно здесь
Преимущества такого решения:
Справочник можно разместить на SQL Reporting Server, сейчас он полностью бесплатный, скачивается отдельно может работать c Express версией, или разместить отчет rdl на любой aspx станице в интранете.
Дополнительно вы получаете информацию о пользователях AD и правильности заполнения департаментов. Все актуально и красиво, главное, вовремя перемещать уволенных пользователей в любую другую OU.
Кстати, номер департамента у пользователя указан для правильного построения иерархии, если Вам нужна строгая сортировка по должностям, можно использовать любой дополнительный атрибут AD.
Поля можно динамически объединять, например «Имя» и «Фамилия» в поле «ФИО», и быстро подгонять справочник под корпоративные цвета.
С уважением, Сергей
Вот простая задача – нужен актуальный телефонный справочник организации, который можно распечатать, который содержал бы ФИО на русском и отображаемое имя на английском (как в почтовой адресной книге) и имел основные контактные телефоны. Но редко в какой организации встретишь нормальное решение.
Всем знакома ситуация, когда сотрудник рецепшн отправляет по почте криво заполненный Word файл при каждом кадровом изменении или смене сотрудником сотового телефона? Думаю, многие улыбнулись…
Делюсь решением как подключить каталог Active Directory к SQL Reporting Server.
Если у Вас порядок в AD, пропускайте этот шаг, для остальных привожу пример заполнения полей пользователя в AD.
![image](https://habrastorage.org/getpro/habr/post_images/e1b/882/947/e1b8829470159c18a903162f4a5dfdd7.png)
![image](https://habrastorage.org/getpro/habr/post_images/3ca/bd1/0b7/3cabd10b7ea20402cebd1e9de068f95a.png)
Плюсы такого заполнения: можно искать человека в других справочниках на русском.
Минусы: по фамилии на латинице пользователи не найдутся.
Другой вариант, можно использовать дополнительные атрибуты 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](https://habrastorage.org/getpro/habr/post_images/6bb/dc3/559/6bbdc355902d2ce4b7fb9ed24a0c4066.png)
Далее в строку подключения вносим:
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](https://habrastorage.org/getpro/habr/post_images/8e0/c7c/f67/8e0c7cf67b458473b2998199e2e172c1.png)
Далее перетащим все нужные поля в «значения» отчета:
![image](https://habrastorage.org/getpro/habr/post_images/336/e6f/1ca/336e6f1ca48146d80d8304d3f07c17fa.png)
Всё. Дальше форматируем отчет как Вам угодно. Я, например, сгруппировал отчет по департаменту и подогнал под А4 размер.
Сортировать и фильтровать данные можно в запросе, добавив оператор: ORDER BY column1, column2,… ASC|DESC; или в свойстве Tablix
![image](https://habrastorage.org/getpro/habr/post_images/9b6/876/d45/9b6876d4581eae53aaaec491e208e33d.png)
Осталось только разместить отчет на Reporting Server и опубликовать его, добавив к концу URL
ключи ?rs:embed=true
Вот такой у меня получился отчет:
![image](https://habrastorage.org/getpro/habr/post_images/424/bbe/e8c/424bbee8cda062cf94831b4be8f62091.png)
Скачать его можно здесь
Преимущества такого решения:
Справочник можно разместить на SQL Reporting Server, сейчас он полностью бесплатный, скачивается отдельно может работать c Express версией, или разместить отчет rdl на любой aspx станице в интранете.
Дополнительно вы получаете информацию о пользователях AD и правильности заполнения департаментов. Все актуально и красиво, главное, вовремя перемещать уволенных пользователей в любую другую OU.
Кстати, номер департамента у пользователя указан для правильного построения иерархии, если Вам нужна строгая сортировка по должностям, можно использовать любой дополнительный атрибут AD.
Поля можно динамически объединять, например «Имя» и «Фамилия» в поле «ФИО», и быстро подгонять справочник под корпоративные цвета.
С уважением, Сергей