#parameters #reportviewer
#параметры #reportviewer
Вопрос:
Возможно ли, чтобы элемент управления Microsoft ReportViewer запрашивал параметры в локальном режиме?
Я добавил параметр для фильтрации отчета по, который может иметь несколько значений для одного параметра.
Я установил свойство available Values параметра для чтения списка значений из запроса.
Я надеялся, что если я не задам значения параметров в коде, отчет будет запрашивать их, как это делает crystal reports (я устанавливаю источник данных для доступных значений параметра)
Я провел некоторое исследование по этому вопросу, и, насколько я могу судить, единственный раз, когда отчет запрашивает параметры, — это если отчет выполняется в режиме серверной обработки.
Так ли это? Я пытаюсь избежать необходимости добавлять элементы управления на страницу для выбора параметров для передачи в отчет.
Доступны ли свойства параметров, относящиеся к локальному отчету, или они есть только для обоих?
для полноты картины вот код, который я использую для настройки источника данных для отчета:
//Set the report
Reporting.Common.SetReportEmbeddedResource( this.ReportViewer1, "Reporting.Reports.BudgetEnquiryDrilldown.rdlc" );
//Set the datasources
this.ReportViewer1.LocalReport.DataSources.Add(
new ReportDataSource(
"BudgetEnquiry",
Reporting.Repositories.BudgetEnquiryDrilldown.GetBudgetEnquiryRecords(
base.CurrentSageDatabase,
base.CurrentUser.UserID ) ) );
this.ReportViewer1.LocalReport.DataSources.Add(
new ReportDataSource(
"AccountNumber",
Reporting.Repositories.BudgetEnquiryDrilldown.GetAccountNumbers(
base.CurrentSageDatabase ) ) );
this.ReportViewer1.LocalReport.DataSources.Add(
new ReportDataSource(
"CostCentre",
Reporting.Repositories.BudgetEnquiryDrilldown.GetCostCentres(
base.CurrentSageDatabase ) ) );
//Refresh the report
this.ReportViewer1.LocalReport.Refresh();
Ответ №1:
Я не думаю, что вы можете, скажем, использовать ReportViewer, но легко создать новую форму с необходимыми параметрами и передать их в отчет.
Посмотрите на это :
Затемнить параметры как новый список (Microsoft.Reporting.WinForms.ReportParameter) ' Добавьте параметры типа Microsoft.Reporting.Windows.ReportParameter параметры.Добавить (новый Microsoft.Reporting.WinForms.ReportParameter("Тест", "Что угодно")) RptViewer.LocalReport.setParameters(параметры)
В этом случае параметру test присваивается значение «независимо».
Комментарии:
1. Спасибо, Дэвид, я так и думал, и на сегодняшний день это моя единственная жалоба на ReportViewer 🙂
2. Я с этим не согласен. Мне не очень нравится, как запрашиваются параметры в службах Reporting Services, поэтому мне нравится иметь возможность контролировать, как пользователь их видит.
Ответ №2:
Застрял с тем же вопросом и нашел это после поиска в Google
«В отсутствие сервера отчетов программа просмотра отчетов должна получать свои данные из вашего приложения. В локальном режиме ваше приложение отвечает за предоставление необходимых входных данных для отчета. Вот почему ReportViewer не отображает область запроса параметров с локальными отчетами. Параметры и данные являются внешними по отношению к ReportViewer.»
Источник:
Комментарии:
1. спасибо, жаль, что это не поддерживается стандартно, но эй, у нас не может быть всего!