Telerik Reporting HTML5 передать параметры

Я пробовал помощник MVC и стандартный просмотрщик HTML5. Мне интересно, удалось ли кому-нибудь успешно загрузить отчет, содержащий параметры, с использованием новых средств просмотра. Я не могу получить никакой обратной связи от Telerik.

@{
    var report = new UriReportSource() { Uri = "TestReport.trdx" };
    report.Parameters.Add(new Telerik.Reporting.Parameter() { Name="UserId", Value=1234 });
    report.Parameters.Add(new Telerik.Reporting.Parameter() { Name = "UserName", Value = "Test User" });
}
@(Html.TelerikReporting().ReportViewer()
           .Id("reportViewer1")
           .ServiceUrl("/api/reports/")
           .TemplateUrl("/ReportViewer/templates/telerikReportViewerTemplate.html")
               .ReportSource(report)
           .ViewMode(ViewModes.INTERACTIVE)
           .ScaleMode(ScaleModes.SPECIFIC)
           .Scale(1.0)
           .PersistSession(false)
        )

4 ответа

Если все параметры были установлены, скорее всего, проблема заключается в Newtonsoft.Json.dll. Ваш проблемный проект, скорее всего, ссылается на версию GAC от Newtonsoft. Чтобы исправить это, проверьте, установлен ли Newtonsoft в GAC, и удалите его, если так. Для быстрого исправления просто удалите ссылку Newtonsoft из своего проекта и добавьте ее, используя nuget.

Хотите знать, если вы уже тестировали How To: передавать значения в параметры отчета в документах Telerik Reporting или нет.

Вам необходимо объявить источник данных отчета отдельно, а затем передать его, например,

@{
       var dataSource = new UriReportSource() { Uri = "rptUncashedCheckLetter.trdx" };
        dataSource.Parameters.Add(new Telerik.Reporting.Parameter() { Name = "CheckNumber", Value = "2315527" });

    }

    @(Html.TelerikReporting().ReportViewer()
           .Id("reportViewer1")
           .ServiceUrl("/api/reports/")
           .TemplateUrl("/Reports/telerikReportViewerTemplate.html")
           .ReportSource(dataSource)
           .ViewMode(ViewModes.INTERACTIVE)
           .ScaleMode(ScaleModes.FIT_PAGE_WIDTH)
           .Scale(1.0)
           .PersistSession(false)
           )

Кажется, нет способа сделать это напрямую при использовании версии MVC.

В.cshtml в качестве заголовка у вас есть @model yourModel

Затем для создания отчета у вас есть:

     UriReportSource urs = new UriReportSource (){
        Uri = "Report1.trdx" 
    };
    urs.Parameters.Add("id", Model.id.ToString());
    urs.Parameters.Add("start", Model.Start.ToString());
    urs.Parameters.Add("end", Model.Stop.ToString());

    @(Html.TelerikReporting().ReportViewer()
           .Id("reportViewer1")
           .ServiceUrl("/api/reports/")
           .TemplateUrl("/ReportViewer/templates/telerikReportViewerTemplate.html")
           .ReportSource(urs)
           .ViewMode(ViewModes.INTERACTIVE)
           .ScaleMode(ScaleModes.SPECIFIC)
           .Scale(1.0)
           .PersistSession(false))

И файл Model.cs:

 public class yourModel
{
    public Guid id{ get; set; }

    public DateTime Start { get; set; }

    public DateTime Stop { get; set; }}

Я так и сделал, надеюсь, это поможет:)

Другие вопросы по тегам