Я создал службу веб-API Telerik rest.
// Код контроллера отчетов c #
public ReportsController()
{
var appPath = HttpContext.Current.Server.MapPath("~/");
var reportsPath = Path.Combine(appPath, "Reports");
var resolver = new ReportFileResolver(reportsPath)
.AddFallbackResolver(new ReportTypeResolver());
//Setup the ReportServiceConfiguration
configurationInstance = new ReportServiceConfiguration
{
HostAppId = "Html5App",
Storage = new FileStorage(),
ReportResolver = resolver,
// ReportSharingTimeout = 0,
// ClientSessionTimeout = 15,
};
this.ReportServiceConfiguration = configurationInstance;
}
// Код средства просмотра отчетов
$("#reportViewer1")
.telerik_ReportViewer({
serviceUrl: "http://localhost:12345/api/Reports",
reportSource: {
report: "Dashboard.trdx",
parameters: { ReportYear : 2009 }
},
viewMode: telerikReportViewer.ViewModes.INTERACTIVE,
scaleMode: telerikReportViewer.ScaleModes.SPECIFIC,
scale: 1.0,
enableAccessibility: false,
sendEmail: { enabled: true }
});
// trdx Код параметра
<DataSources>
<SqlDataSource ConnectionString="Telerik.Reporting.Examples.CSharp.Properties.Settings.TelerikConnectionString" SelectCommand="SELECT DISTINCT YEAR(OrderDate) AS Year
FROM Sales.SalesOrderHeader
ORDER BY Year" Name="yearDataSource" />
<SqlDataSource ConnectionString="Telerik.Reporting.Examples.CSharp.Properties.Settings.TelerikConnectionString" SelectCommand="SELECT
	P.Name AS ProductName
	, SOD.LineTotal / 1000 AS LineTotal
	, SOH.OrderDate
	, SS.Name AS StoreName
	, C.FirstName + ' ' + COALESCE (C.MiddleName, '') + ' ' + C.LastName AS SalesPersonFullName
FROM
	Production. Product AS P
	INNER JOIN Sales.SalesOrderDetail AS SOD ON P.ProductID = SOD.ProductID
	INNER JOIN Sales.SalesOrderHeader AS SOH ON SOD.SalesOrderID = SOH.SalesOrderID
	INNER JOIN Sales.Store AS SS ON SS.CustomerID = SOH.CustomerID
	INNER JOIN Sales.SalesPerson AS SP ON SP.SalesPersonID = SOH.SalesPersonID
	INNER JOIN HumanResources.Employee AS E ON E.EmployeeID = SP.SalesPersonID
	INNER JOIN Person.Contact AS C ON C.ContactID = E.ContactID
WHERE (YEAR(SOH.OrderDate) = @Year)" Name="mainDataSource">
<Parameters>
<SqlDataSourceParameter DbType="Int32" Name="@Year">
<Value>
<String>=Parameters.ReportYear.Value</String>
</Value>
</SqlDataSourceParameter>
</Parameters>
<DefaultValues>
<SqlDataSourceParameter DbType="Int32" Name="@Year">
<Value>
<String>2001</String>
</Value>
</SqlDataSourceParameter>
</DefaultValues>
</SqlDataSource>
</DataSources>
Передача параметра "ReportYear" и использование файла .trdx.
Я получаю сообщение об ошибке «Отсутствует или неверное значение параметра. Пожалуйста, введите действительные данные для всех параметров.»
Если я не передаю параметр, тоотчет будет работать правильно.
Что еще нужно для получения значения параметра в файле .trdx?
Я действительно застрял в нем.Было бы здорово, если бы кто-то мог помочь в этом.