Отчет с параметрами в MVC Viewer

Обсуждение Stimulsoft Reports.WEB
Ответить
ovseikin
Сообщения: 12
Зарегистрирован: 12 июл 2013, 15:56

Отчет с параметрами в MVC Viewer

Сообщение ovseikin »

Здравствуйте!
При построение отчетов с параметрами, при нажатии кнопку приминить возможно ли передать на сервере в отчет дополнительные параметры ?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Отчет с параметрами в MVC Viewer

Сообщение Aleksey »

Здравствуйте,

Не могли бы более подробно описать свою задачи. Какие параметры вы хотите передавать на сервер?

Спасибо.
ovseikin
Сообщения: 12
Зарегистрирован: 12 июл 2013, 15:56

Re: Отчет с параметрами в MVC Viewer

Сообщение ovseikin »

У меня отчет с параметрами, при нажатии кнопку "применить" формируется отчет на сервере вызывается метод public ActionResult Interaction(){}, вот мне в этом методе нужно в сам отчет в Variables передать дополнительные параметры
Аватара пользователя
Vladimir
Сообщения: 415
Зарегистрирован: 06 авг 2008, 09:48
Откуда: Earth

Re: Отчет с параметрами в MVC Viewer

Сообщение Vladimir »

Здравствуйте,

Для передачи параметров в сам отчёт вы можете использовать следующий код в указанном действии:

Код: Выделить всё

            StiReport report = StiMvcViewer.GetReportObject(this.HttpContext);
            report["ParameterName"] = 123;

            return StiMvcViewer.InteractionResult(this.HttpContext, report);
Спасибо.
ovseikin
Сообщения: 12
Зарегистрирован: 12 июл 2013, 15:56

Re: Отчет с параметрами в MVC Viewer

Сообщение ovseikin »

В некоторых случаях метод StiMvcViewer.GetReportObject(this.HttpContext) возвращает пустое значение, с чем это может быть связанно ?
Аватара пользователя
Vladimir
Сообщения: 415
Зарегистрирован: 06 авг 2008, 09:48
Откуда: Earth

Re: Отчет с параметрами в MVC Viewer

Сообщение Vladimir »

Здравствуйте,

Это может быть связано с тем, что отчёт уже удалён из кэша сервера. Для решения проблемы либо увеличьте время хранения (свойство ServerTimeout), либо загружать отчёт заново.

Спасибо.
levkin77
Сообщения: 30
Зарегистрирован: 12 апр 2013, 10:57
Откуда: Украина, Донецк
Контактная информация:

Re: Отчет с параметрами в MVC Viewer

Сообщение levkin77 »

Vladimir писал(а): Это может быть связано с тем, что отчёт уже удалён из кэша сервера. Для решения проблемы либо увеличьте время хранения (свойство ServerTimeout), либо загружать отчёт заново.
Как правильно решить проявление ситуации с

Код: Выделить всё

public ActionResult Interaction()
{
     StiReport report = StiMvcViewer.GetReportObject(this.HttpContext);
     if (report == null) // [b]-- ДА report = NULL[/b]
     {
             ??????
            см ниже LOAD...
     }
     return StiMvcViewer.InteractionResult(HttpContext, report);
}
LOAD - правильный порядок действий???
1. RouteValueDictionary routeValues = StiMvcViewer.GetRouteValues(this.HttpContext); - необходимо знать что мы строили
2. report = new StiReport(); + загрузка самого отчета по данным routeValues
3. report.Compile();
4. Установка параметров
if (report.Dictionary.Variables.Contains("ReportId"))
{
report["ReportId"] = 1234567654;
}
if (report.CompiledReport.DataSources.Contains("DataSourceMain"))
{
if (report.CompiledReport.DataSources["DataSourceMain"].Parameters.Contains("@Id"))
report.CompiledReport.DataSources["DataSourceMain"].Parameters["@Id"].ParameterValue = documentId;
}
5. return StiMvcViewer.InteractionResult(HttpContext, report);

Если все действия и их порядок правильны - то фактически это тот же код, что и для метода GetReportSnapshot()? - если нет ->> просьба правильный порядок действий?
Лёвкин Д.А.
http://www.moedelo.in.ua
Аватара пользователя
Vladimir
Сообщения: 415
Зарегистрирован: 06 авг 2008, 09:48
Откуда: Earth

Re: Отчет с параметрами в MVC Viewer

Сообщение Vladimir »

Здравствуйте,

Да, ваш код должен работать корректно.
При отсутствии отчёта в кэше (или сессии) сервера, MvcViewer запрашивает его заново в действии GetReportSnapshot.
Если Вы загрузили отчёт в действии InteractionResult, то применение параметров отчёта и его построение должно произойти автоматически.
Если Вы используете свои параметры, то их нужно применить к отчёту до построения (как указано в Вашем коде).

Для удобства можно вынести код загрузки отчёта, регистрацию данных и применение параметров в отдельный метод.

Спасибо.
levkin77
Сообщения: 30
Зарегистрирован: 12 апр 2013, 10:57
Откуда: Украина, Донецк
Контактная информация:

Re: Отчет с параметрами в MVC Viewer

Сообщение levkin77 »

Спасибо.
Лёвкин Д.А.
http://www.moedelo.in.ua
Andrew
Сообщения: 586
Зарегистрирован: 09 июн 2006, 12:22

Re: Отчет с параметрами в MVC Viewer

Сообщение Andrew »

Здравствуйте,

Всегда рады помочь!
Ответить