Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Majorsilence Reporting, .NET report designer, viewer, and pdf creation.

License

NotificationsYou must be signed in to change notification settings

majorsilence/Reporting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,424 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

If you have any question about Majorsilence Reporting or do you want to contribute a discussion group for Majorsilence Reporting is available here:

https://groups.google.com/d/forum/myfyireporting

LinuxMacWinWin(AppeyVeyor)
Masterlinuxmac.github/workflows/windows.ymlBuild status appveyor

Documentation

See theprojects wiki.

Download

See thedownloads page.

Alternatively if you want keep up with the latest version you can always use Git

git clone https://github.com/majorsilence/My-FyiReporting.git

Introduction

Majorsilence Reporting is a powerful, open-source .NET reporting framework designed for developers who need to create, design, and deliver rich, reports. Supporting modern .NET versions (8.0), it provides a flexible and extensible platform for building reports from a variety of data sources. With a drag-and-drop designer, multiple viewer options, and cross-platform support, Majorsilence Reporting is ideal for both desktop and web applications. Whether you need to generate reports programmatically or empower users with a visual designer (windows only), this project offers the tools and documentation to get you started quickly.

The core of Majorsilence Reporting supports Linux and macOS for server-side application report generation. Only the WinForms-based designer and viewer are Windows-only.

Quick start

Add these nuget packages to your project.

dotnet add package Majorsilence.Reporting.RdlCreator.SkiaSharpdotnet add package Majorsilence.Reporting.RdlEngine.SkiaSharpdotnet add package Majorsilence.Reporting.RdlCri.SkiaSharp

If running on linux install therequired fonts.

sudo apt install ttf-mscorefonts-installer

You are now ready to create and generate reports.

c# example, create report, connected to an sql database

SeeDatabase Providers.

usingMajorsilence.Reporting.RdlCreator;// One time per app instanceRdlEngineConfig.RdlEngineConfigInit();stringdataProvider="[PLACEHOLDER/Json/Microsoft.Data.SqlClient/MySQL.NET/Firebird.NET 2.0/Microsoft.Data.Sqlite/PostgreSQL";varcreate=newMajorsilence.Reporting.RdlCreator.Create();usingvarreport=awaitcreate.GenerateRdl(dataProvider,connectionString,"SELECT CategoryID, CategoryName, Description FROM Categories",pageHeaderText:"DataProviderTest TestMethod1");stringfilepath=System.IO.Path.Combine(Environment.CurrentDirectory,"PLACEHOLDER.pdf");usingvarofs=newMajorsilence.Reporting.Rdl.OneFileStreamGen(filepath,true);awaitreport.RunGetData(null);awaitreport.RunRender(ofs,Majorsilence.Reporting.Rdl.OutputPresentationType.PDF);

c# example, create a pdf document

usingMajorsilence.Reporting.RdlCreator;// One time per app instanceRdlEngineConfig.RdlEngineConfigInit();vardocument=newMajorsilence.Reporting.RdlCreator.Document(){Description="Sample report",Author="John Doe",PageHeight="11in",PageWidth="8.5in",//Width = "7.5in",TopMargin=".25in",LeftMargin=".25in",RightMargin=".25in",BottomMargin=".25in"}.WithPage((page)=>{page.WithHeight("10in").WithWidth("7.5in").WithText(newText{Name="TheSimplePageText",Top=".1in",Left=".1in",Width="6in",Height=".25in",Value=newValue{Text="Text Area 1"},Style=newStyle{FontSize="12pt",FontWeight="Bold"}});});usingvarfileStream=newFileStream("PLACEHOLDER.pdf",FileMode.Create,FileAccess.Write);awaitdocument.Create(fileStream);

c# load an existing rdl report via RdlEngine

note: Notice the namespace and type difference of Majorsilence.Reporting.RdlCreator.Report for creating new rdl reports versus Majorsilence.Reporting.Rdl.Report for running a report.

usingMajorsilence.Reporting.Rdl;// One time per app instanceRdlEngineConfig.RdlEngineConfigInit();varrdlp=newRDLParser(System.IO.File.ReadAllText(@"C:\path\to\report\file.rdl"));usingvarreport=awaitrdlp.Parse();stringfilepath=System.IO.Path.Combine(Environment.CurrentDirectory,"PLACEHOLDER.pdf");usingvarofs=newMajorsilence.Reporting.Rdl.OneFileStreamGen(filepath,true);awaitreport.RunGetData(null);awaitreport.RunRender(ofs,Majorsilence.Reporting.Rdl.OutputPresentationType.PDF);

Development

Majorsilence Reporting is developed with the following workflow:

  • Nothing happens for weeks or months
  • Someone needs it to do something it doesn't already do
  • That person implements that something and submits a pull request
  • Repeat

If it doesn't have a feature that you want it to have, add it. If it has a bug you need fixed, fix it.

SeeContribute.

Benchmarks

one

BenchmarkDotNet v0.15.2, macOS 26.0.1 (25A362) [Darwin 25.0.0]Apple M2, 1 CPU, 8 logical and 8 physical cores.NET SDK 9.0.200[Host] : .NET 8.0.13 (8.0.1325.6609), Arm64 RyuJIT AdvSIMDJob-AKATUD : .NET 8.0.13 (8.0.1325.6609), Arm64 RyuJIT AdvSIMD

BuildConfiguration=Release-DrawingCompat RunStrategy=Throughput

MethodMeanErrorStdDevRatioRatioSDGen0Gen1AllocatedAlloc Ratio
NestedJson5.401 ms0.0560 ms0.0935 ms0.990.03390.6250125.00003.12 MB1.00
ThreadsDurationSourceCalls/SecTotal CallsErrors
130JsonDataProviderBenchmark1624,8730
2030JsonDataProviderBenchmark36210,8650
2030JsonDataProviderBenchmark36310,8940
3030JsonDataProviderBenchmark33410,0430
4030JsonDataProviderBenchmark3169,4970
5030JsonDataProviderBenchmark2968,9050

two

BenchmarkDotNet v0.15.2, Windows 11 (10.0.26100.6584/24H2/2024Update/HudsonValley)Intel Core i5-8350U CPU 1.70GHz (Max: 1.90GHz) (Kaby Lake R), 1 CPU, 8 logical and 4 physical cores.NET SDK 8.0.414[Host] : .NET 8.0.20 (8.0.2025.41914), X64 RyuJIT AVX2Job-AKATUD : .NET 8.0.20 (8.0.2025.41914), X64 RyuJIT AVX2

BuildConfiguration=Release-DrawingCompat RunStrategy=Throughput

MethodMeanErrorStdDevMedianRatioRatioSDGen0Gen1AllocatedAlloc Ratio
NestedJson16.67 ms0.796 ms2.140 ms15.84 ms1.010.17727.2727272.72733.24 MB1.00
ThreadsDurationSourceCalls/SecTotal CallsErrors
130JsonDataProviderBenchmark341,0090
2030JsonDataProviderBenchmark641,9200
2030JsonDataProviderBenchmark631,8930
3030JsonDataProviderBenchmark581,7390
4030JsonDataProviderBenchmark491,4970
5030JsonDataProviderBenchmark511,5460

three

BenchmarkDotNet v0.15.2, Linux Ubuntu 24.04.3 LTS (Noble Numbat)AMD Ryzen 5 3600 4.21GHz, 1 CPU, 12 logical and 6 physical cores.NET SDK 8.0.120[Host] : .NET 8.0.20 (8.0.2025.41914), X64 RyuJIT AVX2Job-AKATUD : .NET 8.0.20 (8.0.2025.41914), X64 RyuJIT AVX2

BuildConfiguration=Release-DrawingCompat RunStrategy=Throughput

MethodMeanErrorStdDevRatioRatioSDGen0Gen1AllocatedAlloc Ratio
NestedJson5.542 ms0.1100 ms0.2011 ms1.000.05359.3750125.00002.94 MB1.00
ThreadsDurationSourceCalls/SecTotal CallsErrors
130JsonDataProviderBenchmark1524,5710
2030JsonDataProviderBenchmark40312,1150
2030JsonDataProviderBenchmark40612,1960
3030JsonDataProviderBenchmark35810,7570
4030JsonDataProviderBenchmark3159,4600
5030JsonDataProviderBenchmark2908,7200

About

Majorsilence Reporting, .NET report designer, viewer, and pdf creation.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors32


[8]ページ先頭

©2009-2026 Movatter.jp