Я новичок в отчетности telerik, и я создал простой отчет в ASP.Net MVC 4, который использует ObjectDataSource. Я создал один модельный класс, как показано ниже.
[DataObject]
public class StockMonitoring
{
[DataObjectMethod(DataObjectMethodType.Select)]
public List<StockDetail> GetExpiredDrugBrand(int SiteID)
{
//returns list by calling stored procedure which takes SiteID
}
}
В контроллере я использую этот код:
using Telerik.Reporting;
..........
............
TypeReportSource Source = new TypeReportSource();
Source.TypeName = typeof(StockMonitoring_Expired).AssemblyQualifiedName;
Source.Parameters.Add(new Parameter("SiteID", SID));
ViewBag.ReportSource = Source;
и С учетом следующего кода:
@(Html.TelerikReporting().ReportViewer()
.Id("reportViewer1")
.ServiceUrl("/api/reports/")
.TemplateUrl("/ReportViewer/templates/telerikReportViewerTemplate-8.1.14.804.html")
.ReportSource((ReportSource) ViewBag.ReportSource)
.ViewMode(ViewModes.INTERACTIVE)
.ScaleMode(ScaleModes.SPECIFIC)
.Scale(1.0)
.PersistSession(false)
)
Когда я прокомментирую эту строку
Source.Parameters.Add(new Parameter("SiteID", SID));
и установить значение времени разработки для SiteID в моем отчете "StockMonitoring_Expired", который создан в VS 2012, мой выше код работает правильно, а точка останова - "GetExpiredDrugBrand" в модели, но когда я раскомментирую выше строки и удаляю значение времени разработки для SiteID, мой код дает ниже ошибки:
An error has occurred while processing Table 'table1': An error has occurred while resolving 'ObjectDataSource' data source: Cannot convert to type System.Int32
Я не могу передать параметр SiteID моему методу "GetExpiredDrugBrand", который, в свою очередь, называется хранимой процедурой для извлечения данных. Я прочитал документацию по телерике, но не смог понять проблему. Что не так в коде?
Заранее спасибо......
Я нашел решение. При разработке отчета я забыл добавить параметр для использования. Я следую этой ссылке для добавления параметра http://www.telerik.com/help/reporting/designing-reports-parameters-adding-parameters.html и моя проблема решена.