Skip to content

majorsilence/My-FyiReporting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Majorsilence Reporting (formerly My-FyiReporting)

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

Linux Win(Deploy)
Release NA Build status appveyor

Documentation

See the projects wiki.

Download

See the downloads 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, interactive 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, this project offers the tools and documentation to get you started quickly.

Also check this projects wiki as information will be slowly added.

Quick start

nuget package

<PackageReference Include="Majorsilence.Reporting.RdlCreator.SkiaSharp" />
<PackageReference Include="Majorsilence.Reporting.RdlCri.SkiaSharp" />

c# example connected to an sql database

using Majorsilence.Reporting.RdlCreator;

var create = new Majorsilence.Reporting.RdlCreator.Create();

var report = await create.GenerateRdl(dataProvider,
    connectionString,
    "SELECT CategoryID, CategoryName, Description FROM Categories",
    pageHeaderText: "DataProviderTest TestMethod1");

string filepath = System.IO.Path.Combine(Environment.CurrentDirectory, "PLACEHOLDER.pdf");
var ofs = new Majorsilence.Reporting.Rdl.OneFileStreamGen(filepath, true);
await report.RunGetData(null);
await report.RunRender(ofs, Majorsilence.Reporting.Rdl.OutputPresentationType.PDF);

c# example, create a pdf document

using Majorsilence.Reporting.RdlCreator;

var document = new Majorsilence.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(new Text
    {
        Name = "TheSimplePageText",
        Top = ".1in",
        Left = ".1in",
        Width = "6in",
        Height = ".25in",
        Value = new Value { Text = "Text Area 1" },
        Style = new Style { FontSize = "12pt", FontWeight = "Bold" }
    });
});

using var fileStream = new FileStream("PLACEHOLDER.pdf", FileMode.Create, FileAccess.Write);
await document.Create(fileStream);

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.

libgdiplus

Useful for winforms projects on windows but otherwise avoid this.

Avoid by using the "Debug-DrawingCompat" or "Release-DrawingCompat" targets to use the skiasharp drawing backend.

Mac - Legacy

Install mono-libgdiplus.

brew install mono-libgdiplus

For report generation to work set the DYLD_LIBRARY_PATH environment variable:

DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/homebrew/lib

Ubuntu - Legacy

Install libgdiplus.

apt install libgdiplus

For report generation to work set the LD_LIBRARY_PATH environment variable:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib

Contribute:

All contributions welcome. I'll try to respond the same day to any emails or pull requests. Or within a few days at the most. Small pull requests are best as they are easier to review.

See the wiki page https://github.com/majorsilence/My-FyiReporting/wiki/Contribute

Core Team

Contributors

A big thanks to all of Majorsilence Reporting contributors.

Layout:

  • DataProviders
  • RdlAsp.Mvc
    • asp.net core mvc controllers
  • RdlCMD
    • Command line tools
  • RdlCri
    • Custom Report Controls
  • RdlDesign
    • Is the main graphical drag and drop designer used to create reports.
  • RdlDesktop
    • Simple server
  • RdlEngine
    • Main engine. Is referenced in many of the other projects
  • RdlGtkViewer
    • A Gtk# 2 (gtk-sharp) viewer
  • RdlGtk3
    • GtkSharp 3 core components
  • RdlGtk3Viewer
    • GtkSharp 3 viewer
  • RdlReader
    • Viewer executable
  • RdlViewer
    • View controls
    • Disabled COM interop
  • RdlMapFile
    • Map viewer
  • RdlTest
    • Tests
  • ReportSever
    • aspx webforms - v4 branch
  • RdlCreator
    • Code first report creation and generation

RDL Compliance

Report file format specifications can be obtained from microsoft. I believe fyiReporting is currently mostly compatible with RDL 2005. If you want to add more features see the specifications.

User interface tutorials

ReportingCloud (another fork) has made some tutorials for using the designer and creating reports. http://sourceforge.net/projects/reportingcloud/files/

About

Majorsilence Reporting, .NET report designer, viewer, and pdf creation. Fork of fyireporting,

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 31

Languages