Ticomix.TelerikReporting 2025.6.9.2
Ticomix.TelerikReporting
Purpose Statement
A .NET library that provides comprehensive Telerik Reporting integration for web applications, enabling report design, viewing, and management capabilities with support for both Angular and MVC frameworks. Built on Telerik Reporting 18.1.24.709 with enhanced features for enterprise reporting solutions.
Technical Context
- Built on Telerik Reporting Suite version 18.1.24.709
- Supports .NET 6.0 and .NET 8.0 frameworks
- Integrates with Entity Framework Core for data management
- Includes distributed caching and session management
- Compatible with both Angular SPA and MVC applications
- Uses SQL Server for distributed locking and caching
Key Capabilities
- Report Designer Integration: Web-based report designer with full Telerik functionality
- Report Viewer: Responsive report viewing with export capabilities
- Report Management: Complete lifecycle management including versioning, subscriptions, and scheduling
- Multi-Framework Support: Works with both Angular and MVC web applications
- Database-Driven Reports: Entity Framework Core integration for dynamic report generation
- Subscription System: Automated report delivery and parameter management
- Export Formats: Support for PDF, Excel, Word, CSV, and other formats via OpenXML rendering
- Distributed Architecture: Built-in support for distributed caching and locking mechanisms
Integration Points
- Seamlessly integrates with Ticomix.EFCore for database operations
- Works with Ticomix.AspNetCore.Mvc.Kendo for enhanced MVC functionality
- Compatible with Ticomix.AspNetCore.Web for web application features
- Integrates with SQL Server distributed cache and session management
- Supports custom authentication and authorization workflows
Use Case Scenarios
- Enterprise applications requiring advanced reporting capabilities
- Multi-tenant applications with report isolation and management
- Applications needing scheduled report delivery and subscriptions
- Systems requiring report versioning and audit trails
- Organizations migrating from legacy reporting solutions to modern web-based platforms
- Applications requiring both interactive report design and consumption
Database Models Used
The package requires the following database models to be added to your application:
- ReportFile: Stores report definition files and metadata
- ReportFolder: Hierarchical organization of reports
- ReportHeader: Main report metadata and configuration
- ReportSubscriptionParameter: Parameter definitions for scheduled reports
- ReportSubscriptionTelerik: Telerik-specific subscription settings
- ReportSubscriptionRun: Execution history and status tracking
- ReportVersion: Version control for report definitions
- SysJobStatus: Background job status tracking
- ErrorLog: Comprehensive error logging and monitoring
Additional context files required:
ApplicationDbContextErrorLog.csApplicationDbContextTelerikReporting.cs
Classes and Functions
Core Controllers
- TelerikReportDesignerController: Handles report designer web service requests
- TelerikReportViewerController: Manages report viewer functionality
- ReportDesignerController: Custom report designer operations
- ReportViewerController: Custom report viewing operations
Helper Classes
- ReportHelper: Utility functions for report operations and management
ViewModels
- ReportHeaderViewModel: Data transfer object for report metadata
Installation Instructions
Prerequisites
Ensure your application has the following NuGet packages installed:
Ticomix.TelerikReportingTicomix.AspNetCore.Mvc.KnedoTicomix.AspNetCore.WebTicomix.CommonTicomix.EFCore
Database Setup
- Add the required database models and migrations to your project
- Include the context files in your
\Datafolder - Run database migrations to create the necessary tables
ASP.NET Core Configuration
Startup.cs / Program.cs Changes
- Configure Swagger (exclude Telerik controllers):
services.AddSwaggerGen(c =>
{
c.DocInclusionPredicate((docName, apiDesc) =>
{
if (apiDesc.ActionDescriptor is ControllerActionDescriptor desc &&
desc.ControllerTypeInfo.Assembly.FullName.StartsWith("Telerik"))
{
return false;
}
return apiDesc.GroupName == null || apiDesc.GroupName == docName;
});
c.SchemaFilter<NullableSchemaFilter>();
});
- Configure Globalization:
Globals.SupportedCultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
Globals.DefaultCulture = new CultureInfo("en-US");
- Add User Roles:
UserRoleHelper.CreateUserRole("Telerik Report View",
Description: "Ability to view Telerik Reports");
UserRoleHelper.CreateUserRole("Telerik Report Edit",
Description: "Ability to create and edit Telerik Reports through the web report designer.");
- Configure Services:
// Distributed Cache
services.AddDistributedSqlServerCache(options =>
{
options.ConnectionString = Configuration.GetConnectionString("DefaultConnection");
options.SchemaName = "dbo";
options.TableName = "DistributedCacheTable";
});
// Session Management
services.AddSession();
// Distributed Locking
services.AddSingleton<IDistributedLockProvider>((services) =>
new SqlDistributedSynchronizationProvider(Configuration.GetConnectionString("DefaultConnection")));
// Logging
services.AddScoped<ILogger, Ticomix.Common.Helpers.Logger<int>>();
services.AddScoped<Microsoft.Extensions.Logging.ILogger>((sp) => sp.GetRequiredService<ILogger>());
// Cancellation Token
services.AddScoped(typeof(CancellationToken), serviceProvider =>
{
IHttpContextAccessor httpContext = serviceProvider.GetRequiredService<IHttpContextAccessor>();
return httpContext.HttpContext?.RequestAborted ?? CancellationToken.None;
});
// Telerik Reporting Configuration
services.Configure<Ticomix.TelerikReporting.TelerikReportingOptions>(options =>
{
Configuration.Bind("TelerikReporting", options);
});
services.AddTelerikReporting<int>();
- Configure JSON Serialization:
services.AddControllers(c =>
{
c.Conventions.Add(new ApiExplorerGroupPerVersionConvention());
}).AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = null;
}).AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
- Configure Middleware:
app.UseSession();
wwwroot Setup
- Create a
wwwrootfolder in your server project root - Create a
Reportssubfolder - Copy
Blank Report.trdpinto the Reports folder for new report creation
Angular Integration
For Angular applications, you'll need the companion NPM package:
NPM Package: @ticomix/telerik-reporting
Angular Files Required
src/typings.d.tssrc/app/telerik-reporting/folder with componentssrc/app/standalone.service.tssrc/app/standalone-routes.ts- Update
app.component.htmlfor standalone page logic
Additional Dependencies
- Copy
kendo.all.min.jstopublic/jsfolder
URL Rewriting (web.config)
For proper routing when designer/viewer opens in new tabs:
<system.webServer>
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url="^(designer|viewer)(/.*)?$" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
MVC Integration
For MVC applications, the same server-side configuration applies. Additional MVC-specific views and controllers can be copied from Demo as needed.
Dependencies
Core Dependencies
- Telerik.Reporting (18.1.24.709)
- Telerik.Reporting.Services.AspNetCore (18.1.24.709)
- Telerik.WebReportDesigner.Services (18.1.24.709)
- Telerik.Reporting.OpenXmlRendering (18.1.24.709)
- Telerik.Reporting.WebServiceDataSource (18.1.24.709)
Utility Dependencies
- CsvHelper (33.0.1)
- Reinforced.Typings (1.6.3.21)
- DistributedLock.SqlServer (1.0.5)
Ticomix Dependencies
- Ticomix.EFCore (via project reference)
Support and Documentation
For Angular UI components and additional documentation, visit:
Version Compatibility
- .NET 6.0+
- .NET 8.0+
- Entity Framework Core 6.0+
- SQL Server 2016+
- Angular 12+
Showing the top 20 packages that depend on Ticomix.TelerikReporting.
| Packages | Downloads |
|---|---|
|
Ticomix.Accounting
Package Description
|
164 |
|
Ticomix.Accounting
Package Description
|
99 |
|
Ticomix.Printing.Server
Package Description
|
98 |
|
Ticomix.Accounting
Package Description
|
87 |
|
Ticomix.Printing.Server
Package Description
|
81 |
|
Ticomix.Accounting
Package Description
|
76 |
|
Ticomix.Printing.Server
Package Description
|
75 |
|
Ticomix.Accounting
Package Description
|
74 |
|
Ticomix.Accounting
Package Description
|
72 |
|
Ticomix.Printing.Server
Package Description
|
70 |
|
Ticomix.Accounting
Package Description
|
69 |
|
Ticomix.Accounting
Package Description
|
59 |
|
Ticomix.Printing.Server
Package Description
|
59 |
|
Ticomix.Accounting
Package Description
|
55 |
|
Ticomix.Accounting
Package Description
|
47 |
|
Ticomix.Printing.Server
Package Description
|
45 |
|
Ticomix.Accounting
Package Description
|
44 |
.NET 6.0
- Ticomix.EFCore (>= 2025.6.9.2)
- CsvHelper (>= 33.0.1)
- DistributedLock.SqlServer (>= 1.0.5)
- Reinforced.Typings (>= 1.6.3.21)
- Telerik.Reporting (>= 18.1.24.709)
- Telerik.Reporting.OpenXmlRendering (>= 18.1.24.709)
- Telerik.Reporting.Services.AspNetCore (>= 18.1.24.709)
- Telerik.Reporting.WebServiceDataSource (>= 18.1.24.709)
- Telerik.WebReportDesigner.Services (>= 18.1.24.709)
.NET 8.0
- Ticomix.EFCore (>= 2025.6.9.2)
- CsvHelper (>= 33.0.1)
- DistributedLock.SqlServer (>= 1.0.5)
- Reinforced.Typings (>= 1.6.3.21)
- Telerik.Reporting (>= 18.1.24.709)
- Telerik.Reporting.OpenXmlRendering (>= 18.1.24.709)
- Telerik.Reporting.Services.AspNetCore (>= 18.1.24.709)
- Telerik.Reporting.WebServiceDataSource (>= 18.1.24.709)
- Telerik.WebReportDesigner.Services (>= 18.1.24.709)
| Version | Downloads | Last updated |
|---|---|---|
| 2025.12.11.2 | 0 | 12/11/2025 |
| 2025.12.11.1 | 0 | 12/11/2025 |
| 2025.12.10.2 | 0 | 12/10/2025 |
| 2025.12.10.1 | 1 | 12/10/2025 |
| 2025.12.9.3 | 0 | 12/9/2025 |
| 2025.12.9.2 | 1 | 12/9/2025 |
| 2025.12.9.1 | 0 | 12/9/2025 |
| 2025.12.8.2 | 1 | 12/8/2025 |
| 2025.12.7.1 | 1 | 12/7/2025 |
| 2025.12.5.2 | 1 | 12/5/2025 |
| 2025.12.5.1 | 1 | 12/5/2025 |
| 2025.12.3.2 | 1 | 12/3/2025 |
| 2025.12.3.1 | 1 | 12/3/2025 |
| 2025.11.25.1 | 1 | 11/25/2025 |
| 2025.11.24.1 | 12 | 11/24/2025 |
| 2025.11.22.1 | 8 | 11/22/2025 |
| 2025.11.21.2 | 3 | 11/22/2025 |
| 2025.11.21.1 | 2 | 11/21/2025 |
| 2025.11.20.4 | 3 | 11/20/2025 |
| 2025.11.20.3 | 2 | 11/20/2025 |
| 2025.11.20.2 | 2 | 11/20/2025 |
| 2025.11.20.1 | 2 | 11/20/2025 |
| 2025.11.18.2 | 1 | 11/18/2025 |
| 2025.11.18.1 | 4 | 11/18/2025 |
| 2025.11.4.1 | 3 | 11/4/2025 |
| 2025.10.31.1 | 14 | 10/31/2025 |
| 2025.10.29.1 | 25 | 10/29/2025 |
| 2025.10.22.1 | 21 | 10/22/2025 |
| 2025.10.15.1 | 72 | 10/15/2025 |
| 2025.10.9.1 | 14 | 10/10/2025 |
| 2025.10.3.2 | 20 | 10/3/2025 |
| 2025.10.3.1 | 3 | 10/3/2025 |
| 2025.10.1.4 | 24 | 10/1/2025 |
| 2025.10.1.3 | 3 | 10/1/2025 |
| 2025.10.1.2 | 3 | 10/1/2025 |
| 2025.9.24.1 | 33 | 9/24/2025 |
| 2025.9.2.3 | 75 | 9/2/2025 |
| 2025.8.19.3 | 41 | 8/19/2025 |
| 2025.8.19.2 | 5 | 8/19/2025 |
| 2025.7.25.1 | 162 | 7/25/2025 |
| 2025.7.21.3 | 29 | 7/21/2025 |
| 2025.7.19.2 | 8 | 7/19/2025 |
| 2025.7.16.1 | 42 | 7/16/2025 |
| 2025.7.15.1 | 20 | 7/15/2025 |
| 2025.7.11.2 | 25 | 7/11/2025 |
| 2025.6.20.2 | 95 | 6/20/2025 |
| 2025.6.16.5 | 8 | 6/16/2025 |
| 2025.6.11.2 | 49 | 6/11/2025 |
| 2025.6.10.2 | 11 | 6/10/2025 |
| 2025.6.9.2 | 7 | 6/9/2025 |
| 2025.6.4.1 | 82 | 6/4/2025 |
| 2025.6.2.1 | 25 | 6/2/2025 |
| 2025.5.22.1 | 42 | 5/22/2025 |
| 2025.5.2.1 | 27 | 5/2/2025 |
| 2025.5.1.1 | 75 | 5/1/2025 |
| 2025.4.18.12 | 38 | 4/18/2025 |
| 2025.4.15.1 | 75 | 4/15/2025 |
| 2025.4.10.1 | 35 | 4/10/2025 |
| 2025.4.8.4 | 13 | 4/8/2025 |
| 2025.4.4.10 | 9 | 4/4/2025 |
| 2025.3.28.1 | 33 | 3/28/2025 |
| 2025.3.25.2 | 24 | 3/25/2025 |
| 2025.3.20.1 | 28 | 3/20/2025 |
| 2025.3.19.5 | 19 | 3/19/2025 |
| 2025.3.19.3 | 13 | 3/19/2025 |
| 2025.3.18.5 | 18 | 3/18/2025 |
| 2025.3.18.4 | 8 | 3/18/2025 |
| 2025.3.18.3 | 9 | 3/18/2025 |
| 2025.3.18.2 | 9 | 3/18/2025 |
| 2025.3.12.1 | 18 | 3/12/2025 |
| 2025.3.7.1 | 24 | 3/7/2025 |
| 2025.2.17.2 | 8 | 2/17/2025 |
| 2025.2.14.2 | 64 | 2/14/2025 |
| 2025.1.30.1 | 13 | 1/30/2025 |
| 2025.1.29.2 | 11 | 1/29/2025 |
| 2025.1.29.1 | 17 | 1/29/2025 |
| 2025.1.28.1 | 51 | 1/28/2025 |
| 2025.1.27.4 | 16 | 1/27/2025 |
| 2025.1.27.3 | 22 | 1/27/2025 |
| 2025.1.27.2 | 16 | 1/27/2025 |
| 2025.1.27.1 | 12 | 1/27/2025 |
| 2025.1.6.1 | 20 | 1/6/2025 |
| 2024.12.31.2 | 52 | 12/31/2024 |
| 2024.12.31.1 | 18 | 12/31/2024 |
| 2024.12.30.1 | 21 | 12/30/2024 |
| 2024.12.20.2 | 25 | 12/20/2024 |
| 2024.12.17.18 | 26 | 12/17/2024 |
| 2024.12.17.2 | 23 | 12/17/2024 |
| 2024.12.11.3 | 32 | 12/11/2024 |
| 2024.12.10.1 | 18 | 12/10/2024 |
| 2024.12.5.3 | 17 | 12/5/2024 |
| 2024.12.5.2 | 14 | 12/5/2024 |
| 2024.12.4.10 | 12 | 12/4/2024 |
| 2024.12.4.9 | 18 | 12/4/2024 |
| 2024.11.15.4 | 48 | 11/16/2024 |
| 2024.11.15.1 | 12 | 11/15/2024 |
| 2024.11.6.3 | 34 | 11/6/2024 |
| 2024.11.6.1 | 14 | 11/6/2024 |
| 2024.11.5.6 | 18 | 11/5/2024 |
| 2024.11.5.4 | 13 | 11/5/2024 |
| 2024.10.28.3 | 29 | 10/28/2024 |
| 2024.10.28.2 | 15 | 10/28/2024 |
| 2024.10.28.1 | 16 | 10/28/2024 |
| 2024.10.24.1 | 16 | 10/24/2024 |
| 2024.10.23.1 | 16 | 10/23/2024 |
| 2024.10.17.2 | 22 | 10/17/2024 |
| 2024.10.8.1 | 23 | 10/8/2024 |
| 2024.8.20.1 | 72 | 8/20/2024 |
| 2024.8.6.1 | 40 | 8/6/2024 |
| 2024.7.17.1 | 59 | 7/17/2024 |
| 2024.7.15.1 | 20 | 7/15/2024 |
| 2024.7.9.4 | 24 | 7/9/2024 |
| 2024.7.9.3 | 15 | 7/9/2024 |
| 2024.7.9.2 | 16 | 7/9/2024 |
| 2024.7.2.1 | 30 | 7/2/2024 |
| 2024.7.1.4 | 26 | 7/1/2024 |
| 2024.6.14.1 | 24 | 6/14/2024 |
| 2024.6.12.2 | 39 | 6/12/2024 |
| 2024.6.11.1 | 19 | 6/11/2024 |
| 2024.6.10.1 | 18 | 6/10/2024 |
| 2024.5.31.2 | 28 | 5/31/2024 |
| 2024.5.22.2 | 41 | 5/22/2024 |
| 2024.4.25.1 | 41 | 4/25/2024 |
| 2024.4.19.3 | 244 | 4/19/2024 |
| 2024.4.17.1 | 23 | 4/17/2024 |
| 2024.4.12.3 | 18 | 4/12/2024 |
| 2024.4.9.1 | 30 | 4/9/2024 |
| 2024.4.5.3 | 22 | 4/5/2024 |
| 2024.4.4.2 | 26 | 4/4/2024 |
| 2024.4.2.1 | 19 | 4/2/2024 |
| 2024.3.27.2 | 21 | 3/27/2024 |
| 2024.3.19.4 | 27 | 3/19/2024 |
| 2024.3.13.5 | 26 | 3/13/2024 |
| 2024.3.13.2 | 17 | 3/13/2024 |
| 2024.3.8.2 | 28 | 3/8/2024 |
| 2024.3.6.1 | 32 | 3/6/2024 |
| 2024.2.27.1 | 37 | 2/27/2024 |
| 2024.2.19.1 | 28 | 2/19/2024 |