Как отфильтровать данные в отчете RDLC? - PullRequest
0 голосов
/ 25 марта 2012

Я новичок в отчетах RDLC в Visual Studio 2010.Я работаю на веб-сайте, в этом я использовал функцию отчета VS2010.Я использую ReportViewer, чтобы показать Report1.rdlc.Это показывает это прекрасно.Теперь мое требование - фильтровать данные в отчете во время выполнения.Я прошёл этот вопрос, но не смог понять его ответ.Потому что Report1.rdlc не доступно в коде позади.

Теперь, как я могу отфильтровать данные отчета во время выполнения?

Ответы [ 2 ]

0 голосов
/ 17 июня 2016

Конечно, вы назначаете набор данных в отчет rdlc, и на странице вашего средства просмотра отчетов вы будете использовать источник данных объекта (и, следовательно, набор данных XSD с таблицами данных), который инкапсулирует запрос.

В запросе, естественно, есть предложение , где , в которое вы вставляете свои параметры для фильтрации данных, например:

WHERE (Table.Field = @Param OR @Param = A_Default_Value)

Теперь добавьте элементы управления, которые вам нравятся, до вызова отчета (раскрывающиеся списки, текстовые поля и т. Д.), Эти элементы управления фильтруют источник данных Object, который сопоставляется с набором данных в отчете rdlc, и, таким образом, отчет будет отфильтрован при нажатии на определенную кнопку, например Показать отчет , чтобы обновить источники данных объекта (связать их с данными) и повторно отобразить отчет в средстве просмотра отчетов.

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

Parameters!ParameterName.Value

Надеюсь, это поможет вам.

0 голосов
/ 25 марта 2012

Как вы получаете данные с сервера и т. Д. Привязываете ли вы результат с данными? Если это так, вы можете просто применить свой запрос к фильтру при извлечении данных, чтобы вам не пришлось делать ничего особенного в реальном отчете.

Согласно вашим отзывам, если вы получаете DataTable, применение фильтра должно быть простым, как

DataTable oDT = YourSQLCommandToGetData();
oDT.DefaultView.RowFilter = "SomeColumn = x and OtherColumn = y";

А затем запустите свой отчет. Если вы хотите перейти на другой уровень и УБЕДИТЬСЯ, что у вас нет ненужных записей, вы можете даже сделать что-то вроде

DataTable oNewFilteredResult = oDT.DefaultView.ToTable();

Затем вы можете назначить НОВУЮ таблицу для вызова RDLC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...