Reportviewer — запрашивает параметры в локальном режиме?

#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.»

Источник:

http://webcache.googleusercontent.com/search ?q=cache:c2GuADZEUSYJ:www.devx.com/dotnet/Article/30424/0/page/4 reportviewer display parameter prompt areaamp;cd=11amp;hl=enamp;ct=clnkamp;gl=usamp;source=www.google.com

Комментарии:

1. спасибо, жаль, что это не поддерживается стандартно, но эй, у нас не может быть всего!