variable una pasar parametros otra net funcion telerik reporting reportviewer asp.net-web-api telerik-reporting

telerik - una - pasar parametros reportviewer vb net



¿Cómo puedo pasar los parámetros a ReportSource que en el servicio de API de la web (1)

Supongo que hay una mejor manera de hacerlo, pero lo que hago es poner todos los parámetros en el parámetro reportSource.report creando un objeto JSON serializado. Luego, en el método CustomerReportResolver() deserializo el objeto utilizando la biblioteca Newtonsoft.Json. Entonces algo como lo siguiente:

var json = {}; json.reportType = "BeeSp.ReportLibrary.Stok.RprStokPaket, BeeSp.ReportLibrary"; json.rows = 10; $("#reportViewer1") .telerik_ReportViewer({ serviceUrl: "http://localhost:2404/api/StokPaketList/", templateUrl: ''../ReportViewer/templates/telerikReportViewerTemplate.html'', reportSource: { report: JSON.stringify(json), parameters: { CultureID: "en" } } });

y luego en el lado del servidor:

public ReportSource CustomReportResolver(string report) { JToken token = JObject.Parse(report); int rows = (int)token["rows"]; string reportType = (string)token["reportType"]; }

Luego, en el objeto de origen de datos puede agregar el parámetro de filas como lo haría con cualquier otro parámetro.

Informes: biblioteca de informes

RepoerViewer: Html5

ReportService: Web Api

en servicios de API web, dataSource trae 32,000 filas de datos. pero solo 10 filas de datos utilizadas en el informe. De esta forma, informes muy lentos. ¿Cómo puedo pasar los parámetros al servicio de API web?

ReportViewer:

<div id="reportViewer1" class="k-widget"> loading... </div> <script type="text/javascript"> $("#reportViewer1") .telerik_ReportViewer({ serviceUrl: "http://localhost:2404/api/StokPaketList/", templateUrl: ''../ReportViewer/templates/telerikReportViewerTemplate.html'', reportSource: { report: "BeeSp.ReportLibrary.Stok.RprStokPaket, BeeSp.ReportLibrary", parameters: { CultureID: "en" } } }); </script>

Informar sobre el Servicio Web Api:

class CustomReportResolverWithFallBack : IReportResolver { readonly IReportResolver _parentResolver; private IStokPaketService _stokPaketService; public CustomReportResolverWithFallBack(IReportResolver parentResolver, IStokPaketService stokPaketService) { this._parentResolver = parentResolver; _stokPaketService = stokPaketService; } public ReportSource Resolve(string report) { var reportDocument = this.CustomReportResolver(report); if (null == reportDocument && null != this._parentResolver) { reportDocument = this._parentResolver.Resolve(report); } return reportDocument; } public ReportSource CustomReportResolver(string report) { var type = Type.GetType(report); var reportInstance = (Report)Activator.CreateInstance(type); //in this case, report data source brings 32,000 rows of data var reportData = _stokPaketService.GetCStokPakets("GOLF").ToList(); var objectDataSouce = new ObjectDataSource { DataSource = reportData }; reportInstance.DataSource = objectDataSouce; return reportInstance; } }