MeshWeaver.Reporting 2.0.3

dotnet add package MeshWeaver.Reporting --version 2.0.3
                    
NuGet\Install-Package MeshWeaver.Reporting -Version 2.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MeshWeaver.Reporting" Version="2.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MeshWeaver.Reporting" Version="2.0.3" />
                    
Directory.Packages.props
<PackageReference Include="MeshWeaver.Reporting" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MeshWeaver.Reporting --version 2.0.3
                    
#r "nuget: MeshWeaver.Reporting, 2.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=MeshWeaver.Reporting&version=2.0.3
                    
Install MeshWeaver.Reporting as a Cake Addin
#tool nuget:?package=MeshWeaver.Reporting&version=2.0.3
                    
Install MeshWeaver.Reporting as a Cake Tool

MeshWeaver.Reporting

Overview

MeshWeaver.Reporting is a specialized component of the MeshWeaver ecosystem that provides advanced table reporting and formatting capabilities. Built on top of MeshWeaver.Pivot, it extends the core data manipulation features with presentation-layer functionality for creating rich, formatted reports and visualizations.

Features

  • Advanced table reporting with flexible row and column grouping
  • Chart generation and visualization capabilities
  • Rich formatting options for cells, rows, and columns
  • Customizable display names and highlighting
  • Aggregation control and visibility management
  • Integration with MeshWeaver's data cube system
  • Support for hierarchical data structures

Core Concepts

Data Flow

Raw Data → PivotBuilder → ReportBuilder → Output (Tables/Charts)

Components

  • PivotBuilder: Handles data transformation and grouping (from MeshWeaver.Pivot)
  • ReportBuilder: Adds formatting and presentation capabilities
  • DataCubeReportBuilder: Specialized support for data cube operations

Output Types

Tables
  • Pivot tables with multi-dimensional grouping
  • Formatted data grids
  • Hierarchical data views
Charts
  • Data visualizations based on pivot results
  • Support for various chart types
  • Customizable chart formatting

Relationship with MeshWeaver.Pivot

MeshWeaver.Reporting builds on top of MeshWeaver.Pivot's core functionality:

  • Pivot: Provides data transformation, grouping, and aggregation (see MeshWeaver.Pivot documentation)
    • Data source management
    • Dimension handling
    • Aggregation logic
  • Reporting: Adds presentation and visualization layer
    • Formatting and styling
    • Table and chart generation
    • Visual customization

Usage Examples

Here are actual examples from our test suite:

Table Creation

// Basic grouping example
var report = pivotBuilder
    .GroupColumnsBy(y => y.LineOfBusiness)
    .GroupRowsBy(y => y.AmountType)
    .ToTable();

Advanced Formatting

// Example with column and row formatting
var report = pivotBuilder
    .GroupColumnsBy(y => y.LineOfBusiness)
    .GroupRowsBy(y => y.AmountType)
    .ToTable()
    .WithOptions(rm => rm
        .WithColumns(cols =>
            cols.Modify(
                "Value",
                c => c.WithDisplayName("Amount").Highlighted()
            )
        )
        .WithRows(rows =>
            rows.Modify(
                r => r.RowGroup.DisplayName == "Premium",
                r => r.WithDisplayName("Total Premium").AsTotal()
            )
        )
    );

Aggregation Control

// Example of hiding aggregations for specific dimensions
var report = pivotBuilder
    .GroupColumnsBy(y => y.Split)
    .GroupRowsBy(y => y.AmountType)
    .GroupRowsBy(y => y.LineOfBusiness)
    .ToTable()
    .WithOptions(rm => rm.HideRowValuesForDimension("AmountType"));

Supported Data Types

The reporting system works with various domain entities including:

  • LineOfBusiness
  • Country
  • AmountType
  • Scenario
  • Split
  • Currency
  • CashflowElement

Key Features

Grouping (via Pivot)

  • Multi-level row and column grouping
  • Flexible grouping criteria
  • Support for hierarchical data structures

Formatting

  • Custom display names
  • Cell highlighting
  • Total row formatting
  • Column customization
  • Conditional formatting

Aggregation (via Pivot)

  • Configurable aggregation functions
  • Selective aggregation visibility
  • Multi-level aggregation support

Visualization

  • Table generation
  • Chart creation
  • Custom formatting options
  • Interactive elements

Integration with MeshWeaver Ecosystem

Data Cubes

  • Seamless integration with MeshWeaver's data cube system
  • Support for multi-dimensional data analysis
  • Efficient handling of large datasets

Domain Concepts

Built-in support for common business dimensions:

  • Line of Business
  • Amount Types
  • Currencies
  • Scenarios
  • Splits
  • Custom dimensions

Best Practices

  1. Use appropriate grouping levels for clarity
  2. Apply consistent formatting patterns
  3. Consider performance with large datasets
  4. Leverage built-in aggregation controls
  5. Use meaningful display names
  6. Choose appropriate visualization types for your data
  • MeshWeaver.Pivot: Core data transformation engine
  • MeshWeaver.DataCubes: Multi-dimensional data storage
  • MeshWeaver.Core: Base functionality and utilities

See Also

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.3 458 9 days ago
2.0.2 438 9 days ago
2.0.1 86 12 days ago
2.0.0 124 13 days ago
2.0.0-preview3 76 a month ago
2.0.0-Preview2 85 2 months ago
2.0.0-preview1 76 3 months ago
1.0.1 115 6 months ago
1.0.0 98 6 months ago