Muoland.Reporting
1.1.6
dotnet add package Muoland.Reporting --version 1.1.6
NuGet\Install-Package Muoland.Reporting -Version 1.1.6
<PackageReference Include="Muoland.Reporting" Version="1.1.6" />
<PackageVersion Include="Muoland.Reporting" Version="1.1.6" />
<PackageReference Include="Muoland.Reporting" />
paket add Muoland.Reporting --version 1.1.6
#r "nuget: Muoland.Reporting, 1.1.6"
#:package Muoland.Reporting@1.1.6
#addin nuget:?package=Muoland.Reporting&version=1.1.6
#tool nuget:?package=Muoland.Reporting&version=1.1.6
Muoland.Reporting
The present library enables advanced reporting and data analysis featuring data tensors (data cubes), pivot tables, and interactive comments, slices, and filters.
Features
- Data Tensor (Data Cube): Multi-dimensional data modeling for complex analytical scenarios.
- Pivot Tables: Dynamic pivot table generation for summarizing and exploring data.
- Interactive Comments: Add, edit, and view comments directly within reports for enhanced collaboration.
- Slices & Filters: Intuitive slicing and filtering capabilities to drill down into data subsets.
- Extensible & Flexible: Designed for easy integration and customization in your .NET applications.
Installation
Install via NuGet Package Manager:
dotnet add package Muoland.Reporting
Getting Started
Following is an example of Blazor page:
@page "/Playground"
@rendermode InteractiveServer
@inject IJSRuntime JS
@using DataModelMock
@using Enterprise.DataTensor
@using Enterprise.Reporting
<h2 style="font-size:200%"> Playground <p style="font-size:50%"> (in-memory setup for testing purpose) </p> </h2>
@if (PivotTable is null || Table is null || DataWithStringPivotTable is null || DataWithArrayPivotTable is null)
{
<p><em>Loading...</em></p>
}
else
{
@Report.GetCSSStyle(this)
<div style="font-size:11px;">
<h5> Transactional Data (Pivot Table) </h5>
<table>
<tr>
<td> @PivotTable.GetViewWidgetFragment(this) </td>
<td> @PivotTable.GetCommentWidgetFragment(this) </td>
<td> @PivotTable.GetSliceWidgetFragment(this) </td>
<td> @PivotTable.GetFilterWidgetFragment(this) </td>
</tr>
</table>
<br>
@PivotTable.GetFragment(this)
@PivotTable.GetDialogsFragment(this)
</div>
}
@code {
public PivotTable<TransactionalData>? PivotTable { get; set; }
public DataTensor<TransactionalData>? TransactionalDataTensor { get; set; }
protected override async Task OnInitializedAsync()
{
await Task.CompletedTask;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await Task.CompletedTask;
if (firstRender)
{
var data = TemplateData.GetTransactionalData();
var views = TemplateData.GetViews();
var comments = TemplateData.GetComments();
TransactionalDataTensor = DataTensorBuilder.WithData(data)
.WithDimensionData(TemplateDimensions.GetLineOfBusinesses())
.WithDimensionData(TemplateDimensions.GetAmountTypes())
.WithDimensionData(TemplateDimensions.GetScenarios())
.WithViews(views, async (view) => await Task.CompletedTask)
.WithComments(comments, async (comment) => await Task.CompletedTask)
.Create();
PivotTable = ReportBuilder.FromTensor(TransactionalDataTensor)
.WithUpdateAction(() => InvokeAsync(StateHasChanged))
.Create().ToPivotTable()
.SliceColumnsBy(nameof(LineOfBusiness))
.SliceRowsBy(nameof(AmountType));
StateHasChanged();
}
await JS.InvokeVoidAsync("eval", Report.JSScripts);
}
}
Contributing
For info please contact Andrea Muolo on LinkedIn or via email: and.muolo@gmail.com
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.AspNetCore.Components (>= 8.0.10)
- Microsoft.AspNetCore.Components.Web (>= 8.0.10)
- Microsoft.Extensions.Primitives (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Release Note v1.1.6
- Decoupled reusable UI logic from Blazor framework
- Table and PivotTable now expose UI Tree class that can be used by any framework to render the UI
- Report binds each event to a string UID to handle user actions securely and efficiently
- Support JSON encoded data
- Improved CSS for compatibility to other frameworks
- Bug fixes and performance improvements