Давно планировал написать какой-нибудь материал на данном сайте, но все никак не доходили руки. То высокая загруженность, то что-то другое, да и учитывая, сколько уже полезной информации имеется на данном сайте, не так просто найти незатронутые темы. Но желание поделиться чем-то с этим ресурсом не пропадало, и вот небольшой рассказ о том, как можно немного преобразовать внешний вид страницы с имеющимися отчетами для пользователей, чтобы это было удобно, ну и выглядело симпатично.
Многим из Вас, наверное, хорошо известна следующая картина того, как стандартно можно отображать имеющиеся отчеты. (Рис. 1)
Рис. 1
А вот, что получилось немного проявив фантазию и терпение. (Рис. 2)
Рис. 2
Все имеющиеся репорты разделены на определенные категории (столбцы). В каждой такой категории размещены блоки с текстом, при нажатии на который происходит переход на соответствующий отчет. (Рис.3) Также в этом же блоке расположена дополнительная информация с описанием самого отчета.
Рис. 3
Также рядом с каждым блоком расположен индикатор который отображает есть ли у пользователя доступ к данному отчету. (Рис. 2) Взависимости от доступа, он подсвечивается или серым или зеленым цветом. Это легко можно реализовать задав условное закрашивание на основании результатов процедуры которая рассчитывает список отчетов доступых для подключенного пользователя. Основа кода выглядит примерно следующим образом.
…
set @sql = '
SELECT
*
FROM [ReportServer].[dbo].[PolicyUserRole] R
JOIN [ReportServer].[dbo].[Users] U on(R.[UserID]=U.[UserID])
JOIN [ReportServer].[dbo].[Catalog] D on(R.[PolicyID]=D.[PolicyID])
WHERE Path LIKE ''/ReportingServerCore/%''
and UserName = '''+@UserID+''''
…
По итогу пользователи видят, к каким отчетам у них есть доступ, но, что еще более важно, они видят отчеты, к которым доступа у них нет, что часто помогает в случаях, когда по какой-то причине этому пользователю ошибочно не предоставлен доступ к определённому отчету.
Вот таким лайфхаком, как можно сделать пользовательский интерфейс не только удобным, но также красивым, я и захотел с Вами поделиться.
Удачных экспериментов!