Лучший отвечающий
Создание отчётов, rdlc

Вопрос
-
Снова здравствуйте). На этот раз вопрос связан с созданием отчёта.
Я смог создать примитивный отчёт, на который выводится столбец с какой-то таблицы. Но как сделать так, чтобы выводилась информация конкретного юзера, который сейчас авторизирован? Ну вот, например, я хочу чтобы на отчёте было выведено имя пользователя, а не весь столбец с именами юзеров. Надеюсь, я хорошо изложил вопрос свой. Заранее спасибо.6 февраля 2012 г. 15:55
Ответы
-
Вам нужно не про отчеты читать, а про авторизацию и передачу параметров в запрос
1. Авторизуйте пользователя под идом
2. В сессии храните экземпляр данных пользователя (доставать если авторизован && !null)
3. При любом запросе, имеющем отношение к текущему пользователю, передавайте параметр для фильтрации, пример:
SELECT [UserId], [HomeTown], [HomepageUrl], [Signature] FROM [UserProfiles] WHERE UserID = @UserID
- Предложено в качестве ответа Abolmasov DmitryModerator 8 февраля 2012 г. 8:27
- Помечено в качестве ответа Abolmasov DmitryModerator 16 февраля 2012 г. 6:33
7 февраля 2012 г. 12:01 -
Параметры в отчет можно передаться с помощью класса ReportParameter - Setting Parameter values in an .RDLC report
А сами данные отчета получать динамически кодом, например как здесь - Working with RDLC and passing parameter to subreport in Report Viewer control, в функции GetEmployeeData создается подключение к БД, выборка нужных данных и заполнение DataSet, который потом используется в отчете.
Для связи [mail]
- Помечено в качестве ответа Abolmasov DmitryModerator 16 февраля 2012 г. 6:33
8 февраля 2012 г. 8:27Модератор
Все ответы
-
7 февраля 2012 г. 7:34
-
1. Судя по этой статье, я смогу достать только имя пользователя, а как другие данные? Ну вот есть у меня БД и в ней таблица с какими-то данными пользователя, который он вводит при регистрации (или после), в любой момент он может зайти по ссылке, где будет какой-то там отчёт и в правильных местах стояли его данные. Отчёты внешне будут постоянно разные (бланки, типа). Вот это я хочу сделать).
Как делаю я: создаю набор данных .xsd, туда добавляю TableAdapter и код
SELECT [UserId], [HomeTown], [HomepageUrl], [Signature] FROM [UserProfiles]
Добавляю это в .rdlc файл, который потом вставляю в ReportViewer и у меня отображается вся таблица. А как именно сделать, чтобы конкретного авторизированного юзера?2. Я читал эту книгу, там вообще ничего не сказано про отчёты.
7 февраля 2012 г. 10:34 -
Вам нужно не про отчеты читать, а про авторизацию и передачу параметров в запрос
1. Авторизуйте пользователя под идом
2. В сессии храните экземпляр данных пользователя (доставать если авторизован && !null)
3. При любом запросе, имеющем отношение к текущему пользователю, передавайте параметр для фильтрации, пример:
SELECT [UserId], [HomeTown], [HomepageUrl], [Signature] FROM [UserProfiles] WHERE UserID = @UserID
- Предложено в качестве ответа Abolmasov DmitryModerator 8 февраля 2012 г. 8:27
- Помечено в качестве ответа Abolmasov DmitryModerator 16 февраля 2012 г. 6:33
7 февраля 2012 г. 12:01 -
Параметры в отчет можно передаться с помощью класса ReportParameter - Setting Parameter values in an .RDLC report
А сами данные отчета получать динамически кодом, например как здесь - Working with RDLC and passing parameter to subreport in Report Viewer control, в функции GetEmployeeData создается подключение к БД, выборка нужных данных и заполнение DataSet, который потом используется в отчете.
Для связи [mail]
- Помечено в качестве ответа Abolmasov DmitryModerator 16 февраля 2012 г. 6:33
8 февраля 2012 г. 8:27Модератор -
Спасибо за информацию! Буду разбираться.8 февраля 2012 г. 10:14