Contribute - majorsilence/Reporting GitHub Wiki

Contributions welcome.

Majorsilence Reporting is a Free Open Source reporting solution for SQL data (most databases), where reports are defined in XML text files to a variation of RDL. It requires net8.0 or newer to run the supplied executables. A report designer allows you to generate reports and save them in .RDL format and a report viewer can be called or embedded into your application.

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.

Setup

  • Minimum requirements is either visual studio 2022 or rider 2025.1
    • newer is better
  • Create github account if you already do not have one
  • Create a fork of My-FyiReporting master branch
  • Do your changes
  • Commit your changes to your fork
  • Send a pull request and it will merged or given feed back

Layout:

  • DataProviders
  • RdlAsp.Mvc
    • asp.net core mvc controllers
  • RdlCMD
    • Command line tools
  • RdlCri
    • Custom Report Controls
  • RdlDesign
    • Windows only
    • 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
    • Windows only
    • Viewer executable
  • RdlViewer
    • Windows only
    • View controls
    • Disabled COM interop
  • RdlMapFile
    • Windows only
    • Map viewer
  • RdlCreator
    • Code first report creation and generation

Legacy libgdiplus Developments

Goal: the skiasharp backend by default.

libgdiplus

Useful for winforms projects on windows but otherwise avoid this.

Avoid libgdiplus 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

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.