Hello.
I am using ASP.NET Framework, and in the Telerik.Reporting.Graph section I have a chart that is populated by a stored procedure.
The output of my stored procedure has three columns: DayOfMonth, ProductionType, and Value, and it is structured as follows.
| DayOfMonth | ProductionType | Value |
| 1 | Staple | 1244 |
| 1 | SumAll | 3066.2 |
| 1 | Tow | 1822.2 |
| 2 | Staple | 624.9 |
| 2 | SumAll | 3984.6 |
| 2 | Tow | 3359.7 |
| 3 | Staple | 1865.38 |
| 3 | SumAll | 5126.18 |
| 3 | Tow | 3260.8 |
ProductionType has three values: Tow, Staple, and SumAll.
I need SumAll to be displayed as a line chart, and Tow and Staple to be displayed as bar (column) charts within the same chart.
DayOfMonth should be displayed horizontally on the X-axis and represent the days of the month.
No matter how much I tried, I could not limit the ProductionType values in the line chart using the filters in:
so that only ProductionType = SumAll is shown in the line chart.
The only place where I managed to apply this filter was in:
but that filters the entire dataset, causing the bar chart to be filtered as well.
Please help me with this issue.
A sample of my code is attached.
Thank you.

Hello,
I have a TRDX report where the data comes from SQL stored procedures.
The report works successfully at runtime, and the data is returned correctly by the stored procedures.
However, in the Telerik Report Designer, I get errors like:
Object 'XXX' is not defined in the current context
=Fields.SomeField
=Fields.OtherFieldSo we are in a situation where:
SQL returns the fields correctly
The application renders the report correctly
But the Designer does not recognize the fields
And shows “not defined” errors during design time
What I understand
It looks like the Designer cannot infer the field schema from stored procedures unless they return static metadata.
Question
What is the recommended/best practice way to expose stored procedure output fields to the Designer so we avoid the “Object not defined” errors?
For example:
Should we add dummy
SELECTstatements for metadata?Is there a supported/recommended pattern for TRDX reports using stored procedures?
Is there another way to force the Designer to read schema?
Important Note
I am not asking about runtime behavior (which works).
My issue is purely about design-time schema detection.
Hi everyone,
I’m trying to display compiled Telerik reports (.Designer.cs) in a Photino.Blazor desktop application using the BlazorNative ReportViewer.
Here’s what I have so far:
public class Program
{
[STAThread]
public static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(AppContext.BaseDirectory)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
PhotinoBlazorAppBuilder appBuilder = PhotinoBlazorAppBuilder.CreateDefault(args);
ConfigureServices(appBuilder.Services, configuration);
appBuilder.RootComponents.Add<App>("app");
PhotinoBlazorApp app = appBuilder.Build();
app.MainWindow.SetSize(700, 460)
.SetLogVerbosity(0)
.SetDevToolsEnabled(SystemUtils.IsDevelopment)
.SetContextMenuEnabled(SystemUtils.IsDevelopment)
.SetIconFile(iconPath)
.SetTitle("MyReports");
AppDomain.CurrentDomain.UnhandledException += (sender, error) =>
{
app.MainWindow.ShowMessage("Fatal exception", error.ExceptionObject.ToString());
};
string myAllowedOrigins = "_myAllowedOrigins";
var host = Host.CreateDefaultBuilder()
.ConfigureServices(services =>
{
services.AddScoped<ReportServiceConfiguration, ReportServiceConfig>();
services.AddControllers();
services.AddCors(options =>
{
options.AddPolicy(name: myAllowedOrigins,
policy =>
{
policy.SetIsOriginAllowed(origin => origin.StartsWith("http://localhost"))
.AllowAnyHeader()
.AllowAnyMethod();
});
}
);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel()
.UseUrls("http://localhost:5000")
.Configure(appBuilder =>
{
appBuilder.UseCors(myAllowedOrigins);
appBuilder.UseStaticFiles();
appBuilder.UseRouting();
appBuilder.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
});
})
.Build();
host.Start();
app.Run();
}var reportInstance = Factories.ReportFactory.CreateReport(_selectedReport.ReportCode);
_reportSource = new InstanceReportSource { ReportDocument = reportInstance };
In my Razor page:
<ReportViewer ReportSource="@_reportSource"
ViewMode="@_viewMode"
ScaleMode="@_scaleMode"
Height="600px"
Width="100%" />Problem:
Questions:
This is my declaration in the .cshtml file:
@(Html.TelerikReporting().ReportViewer()
.Id("reportViewer1")
.ServiceUrl(Url.Content("~/api/reports"))
.ReportSource(new TypeReportSource() { TypeName = "ReportLibrary." + Model.FormReportsModel.ReportID.ToString() + ", ReportLibrary" })
.ViewMode(ViewMode.Interactive)
.ScaleMode(ScaleMode.Specific)
.Scale(1.0)
.PersistSession(false)
.PrintMode(PrintMode.AutoSelect)
.EnableAccessibility(true)
.ClientEvents(events => events.RenderingBegin("onRenderingBegin"))
.ClientEvents(events => events.RenderingEnd("onRenderingEnd"))
.ParameterEditors(
editors => editors
.CustomEditors(new CustomParameterEditor
{
MatchFunction = "customMatch",
CreateEditorFunction = "createCustomEditor"
})
)
)
It's been running fine for years without the "ParameterEditors" bit. I added that not because I want to really edit a parameter, only because I realized I could change the initial hint:
function customMatch(p1) {
if (p1.name === "AccountID") p1.Error = "Please choose one";
if (p1.name === "FiscalManyYears") p1.Error = "Please choose at least two";
return false;
}
function createCustomEditor(placeholder, options) {
// This is not needed, because the previous function never returns TRUE.
}which works great on the new report . . . but suddenly all of the other reports are failing, because the [Preview] button never enables, no matter what selections are clicked for the parameters. If I remove the ".ParameterEditors()" clause, the [Preview] button reverts to behaving as expected.
I would be happy if someone could point out a mistake I'm making.
Hi,
below here example page
"...\Telerik Reporting 2025 Q3\Examples\CSharp\.NET 8\BlazorIntegrationDemo\Components\Pages\Home.razor"
changed to have runtime ReportSource setting (in original example it is defined in design-time)
piece below breaks page execution - it doesn't show report
// Business logic - long-running request to db or call of far service
await System.Threading.Tasks.Task.Delay(3000);
not working page:
@page "/"
@rendermode InteractiveServer
@using Telerik.ReportViewer.Blazor
@inject IJSRuntime JsInterop
<link rel="stylesheet" id="TelerikThemeLink" href="https://kendo.cdn.telerik.com/themes/10.2.0/default/default-ocean-blue.css" />
<style>
article.content {
height: 100%;
}
#rv1 {
height: 84vh;
margin-top: 10px;
}
.trv-report-viewer {
width: 100%;
height: 880px;
}
</style>
@* Create the ReportViewerWidget *@
<p>This Blazor Report Viewer instance displays reports hosted locally using the Reporting REST service. For more information, visit the <a target="_blank" href="https://docs.telerik.com/reporting/blazor-report-viewer">Blazor Report Viewer</a> article.</p>
<button type="button"class="btn btn-light btn-sm" @onclick="RefreshReport">Refresh Report</button>
<button type="button"class="btn btn-light btn-sm" @onclick="Print">Print Report</button>
<select @onchange="ChangeTheme" id="theme-switcher">
<option selected value="default-ocean-blue">Default Ocean Blue</option>
<option value="default-main">Default Main</option>
<option value="default-main-dark">Default Main Dark</option>
<option value="default-orange">Default Orange</option>
<option value="default-nordic">Default Nordic</option>
<option value="default-urban">Default Urban</option>
<option value="classic-main">Classic Main</option>
<option value="classic-main-dark">Classic Main Dark</option>
<option value="classic-moonlight">Classic Moonlight</option>
<option value="classic-green">Classic Green</option>
<option value="classic-lavender">Classic Lavender</option>
<option value="classic-silver">Classic Silver</option>
<option value="classic-metro">Classic Metro</option>
<option value="classic-metro-dark">Classic Metro Dark</option>
<option value="bootstrap-main">Bootstrap Main</option>
<option value="bootstrap-vintage">Bootstrap Vintage</option>
<option value="material-sky">Material Sky</option>
<option value="material-aqua-dark">Material Aqua Dark</option>
<option value="material-lime">Material Lime</option>
<option value="material-lime-dark">Material Lime Dark</option>
</select>
<ReportViewer @ref="reportViewer1"
ViewerId="rv1"
ServiceUrl="/api/reports"
ReportSource=@ReportSource
Parameters="@(new ParametersOptions { Editors = new EditorsOptions { SingleSelect = EditorType.ListView , MultiSelect = EditorType.ListView} })"
ScaleMode="@(ScaleMode.Specific)"
Scale="1.0"
SendEmail=@(new SendEmailOptions { Enabled = true })
ClientEvents="@(new ClientEventsOptions() {
ExportBegin = "trvEventHandlers.exportBegin",
ExportEnd = "trvEventHandlers.exportEnd"
})" />
@code {
ReportViewer reportViewer1;
ReportSourceOptions ReportSource { get; set; }
protected override async Task OnInitializedAsync()
{
awaitbase.OnInitializedAsync();
// -----------<ISSUE_HERE>---------------
// Business logic - long-running request to db or call of far service
await System.Threading.Tasks.Task.Delay(3000);
// ------------ </ISSUE_HERE>
this.ReportSource = new ReportSourceOptions
{
Report = "Report Catalog.trdp",
Parameters = new Dictionary<string, object>() // set of predefined parameters
{
{ "ProductCategory", "Clothing" },
{ "ProductSubcategory", new [] { "Caps", "Gloves" } }
}
};
}
async void RefreshReport()
{
await reportViewer1.RefreshReportAsync();
}
async void Print()
{
await reportViewer1.Commands.Print.ExecuteAsync();
}
async Task ChangeTheme(ChangeEventArgs e)
{
// Obtain the Kendo CDN Url values from the dropdown selectionstring? themeIdFull = e.Value asstring;
if (String.IsNullOrEmpty(themeIdFull))
{
return;
}
int firstDashIndex = themeIdFull.IndexOf("-", StringComparison.Ordinal);
string themeIdBase = themeIdFull.Substring(0, firstDashIndex);
// Set the URL to the Kendo theme - it can be a relative URL pointing to a local resource or to a custom themestring newThemeCdnUrl = $"https://kendo.cdn.telerik.com/themes/10.2.0/{themeIdBase}/{themeIdFull}.css";
// call the JS interop that will switch out the <link> elementawait JsInterop.InvokeVoidAsync("changeKendoTheme", new[] { newThemeCdnUrl });
}
}
<ReportViewer @ref="reportViewer1"
ViewerId="rv1"
ServiceUrl="/api/reports"
ReportSource=@ReportSource
Parameters="@(new ParametersOptions { Editors = new EditorsOptions { SingleSelect = EditorType.ListView , MultiSelect = EditorType.ListView} })"
ScaleMode="@(ScaleMode.Specific)"
Scale="1.0"
SendEmail=@(new SendEmailOptions { Enabled = true })
ClientEvents="@(new ClientEventsOptions() {
ExportBegin = "trvEventHandlers.exportBegin",
ExportEnd = "trvEventHandlers.exportEnd"
})" />
@code {
ReportViewer reportViewer1;
ReportSourceOptions ReportSource { get; set; }
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
// Business logic - long-running request to db or call of far service
await System.Threading.Tasks.Task.Delay(3000);
this.ReportSource = new ReportSourceOptions
{
Report = "Report Catalog.trdp",
Parameters = new Dictionary<string, object>() // set of predefined parameters
{
{ "ProductCategory", "Clothing" },
{ "ProductSubcategory", new [] { "Caps", "Gloves" } }
}
};
}
I understand that licensing terms for Telerik Reporting have recently changed.
Does this change affect distribution of the Report Designer? I have not found any reference to that in the documentation. Based on what I had read in your forums, documentation, and blogs in the past, the Report Designer was freely distributable. I would have expected any change to be reflected in your Licensing FAQ.
Thank you for your clarification.
Best regards,
Mark

I have a 2 custom functions but neither seem to work.
I have an Action on a text box control to set Style.Color with these expressions (tried both)
= EIT.EITNumberColourHex( Fields.pnFeesTotal )
I have also tried this
= EIT.EITNumberColour( Fields.pnFeesTotal )
But I get errors saying "Cannot find overload of function ..."
My functions headers are
[Function(Category = "EITFunctions", Namespace = "EIT", Name = "EITNumberColour", Description = "Returns number colours red,blue or black based on parameters", IsVisible = true)]
public static System.Drawing.Color EITNumberColour(decimal number, bool useColour = true)
[Function(Category = "EITFunctions", Namespace = "EIT", Name = "EITNumberColourHex", Description = "Returns number colours red,blue or black based on parameters in hex", IsVisible = true)]
public static string EITNumberColourHex(decimal number, bool useColour = true)
{
Can you anyone advise what am doing incorrectly?
Thanks
John
Hello,
installed a new SDK and got
C:\Users\USER\.nuget\packages\telerik.licensing\1.6.5\build\Telerik.Licensing.targets(29,3): error MSB4216: Could not run the "ResolveTelerikProducts" task because MSBuild could not create or connect to a task host with runtime "NET" and architecture "x64". Please ensure that (1) the requested runtime and/or architecture are available on the machine, and (2) that the required executable "C:\Program Files\dotnet\sdk\9.0.307\MSBuild.dll" exists and can be run.
Works fine with previous SDK 9.0.306.
Any fix?

I'm hoping there's a way to add the additionally supported report export formats such as DOCX, XLSX etc to the Winforms Report Viewer?
I've been able to hide Tiff using the config section, but there seems to be no way (either there or through the Viewer's properties) to allow additional supported formats
Is the only option to hide the export button on the Viewer and implement my own Export?