SharpDevelop Community

Get your problems solved!
Welcome to SharpDevelop Community Sign in | Join | Help
in Search

SharpDevelop Reports

  • Progress of XML Forms Conversion in SharpDevelop 4.3

    One of the goals for SharpDevelop 5 is to convert legacy XML Forms (xfrms) to WPF, and drop support for XML Forms entirely. Now, you might be asking "Did I miss a Microsoft UI technology?" No, you didn't. XML Forms is a SharpDevelop-internal mechanism for declarative form design (for Windows Forms) that predates WPF by a couple of years - and it shows its age especially when it comes to more design-centric issues (I already mentioned: it is Windows Forms).

    To have some of the benefits today, I started the conversion on SharpDevelop 4.3 (it will also be easier to merge between the branches this way). In order for you to know where those conversions happened - and why some behavior might have changed (bugs: please let us know!) - this blog post shows a full list of the changed addin and panels.

    Fully Converted Addins

    Any and all forms in those addins have been converted:

    • CppBinding
    • CSharpBinding
    • VBNetBinding
    • ICSharpCode.CodeAnalysis (FxCop)
    • ICSharpCode.SourceAnalysis - (MattEverson.SourceAnalysis) (StyleCop)
    • ICSharpCode.CodeCoverage

    Converted Option Panels (Options Dialog)

    The panels have been converted, and they now derive from ICSharpCode.SharpDevelop.Gui.OptionPanels.ProjectOptionPanel (important for those of you interested in building new addins):

    • CSharpBinding.OptionPanels.BuildOptions
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.BuildEvents
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.Signing
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.ReferencePaths
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.ApplicationSettings
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.DebugOptions
    • ICSharpCode.CppBinding.Project.ApplicationOptions
    • ICSharpCode.CppBinding.Project.PreprocessorOptions
    • ICSharpCode.CppBinding.Project.LinkerOptions
    • ICSharpCode.VBNetBinding.OptionPanels.ProjectImports
    • ICSharpCode.VBNetBinding.OptionPanels.BuildOptions
    • ICSharpCode.AspNet.Mvc.WebProjectOptionsPanel
    • ICSharpCode.SourceAnalysis.AnalysisProjectOptionsPanel
    • ICSharpCode.CodeAnalysis.AnalysisProjectOptionsPanel
    • ICSharpCode.CodeCoverage.CodeCoverageProjectOptionsPanel
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.ServiceReference.ServiceReferenceOptionsPanel
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.ProjectCustomToolOptionsPanel
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.TaskListXaml
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.SelectStylePanel
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.SelectCulturePanel
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.ProjectAndSolutionOptions
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.LoadSaveOptions
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.EditStandardHeaderPanel
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.CodeGenerationPanel
    • ICSharpCode.SharpDevelop.Gui.OptionPanels.ExternalToolPanel
    • ICSharpCode.SharpDevelop.Editor.CodeCompletion.CodeCompletionPanel
    • ICSharpCode.Profiler.AddIn.OptionPanels.General
    • CSharpCode.PythonBinding.PythonOptionsPanel
    • ICSharpCode.XamlBinding.Options.CodeCompletion
    • Debugger.AddIn.Options.DebuggingOptionsPanel
    • ICSharpCode.PackageManagement.RegisteredProjectTemplatePackageSourcesView
    • ICSharpCode.PackageManagement.PackageManagementOptionsView
    • MSHelpSystem.Help3OptionsPanel
    • ICSharpCode.UsageDataCollector.OptionPage
    • ICSharpCode.FormsDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel
    • ICSharpCode.FormsDesigner.Gui.OptionPanels.GridOptionsPanel
    • ICSharpCode.FormsDesigner.Gui.OptionPanels.GeneralOptionsPanel
    • ICSharpCode.XmlEditor.XmlEditorOptionsPanel
    • ICSharpCode.AvalonEdit.AddIn.Options.TextViewOptions
    • ICSharpCode.AvalonEdit.AddIn.Options.HighlightingOptions
    • ICSharpCode.AvalonEdit.AddIn.Options.GeneralEditorOptions
    • ICSharpCode.AvalonEdit.AddIn.Options.BehaviorOptions
    • HexEditor.View.HexEditOptionsPanel
    • ICSharpCode.CodeAnalysis.AnalysisIdeOptionsPanel
    • ICSharpCode.CodeCoverage.CodeCoverageOptionsPanel
    • ICSharpCode.SourceAnalysis.AnalysisIdeOptionsPanel

    The work for 4.3 in this area is now done, the conversion will be completed in SharpDevelop 5.

  • News in SharpDevelop Reports For 4.1 Beta

    New Features

    • RightToLeft Printing RTL can be set by column - testers are welcome because this feature is very hard for me to test
    • WPF-View (FixedDocument): this UserControl and the related ViewModel can be used without the ReportViewer

    • New API (ExportRunner.cs): This class is used  to have a single and easy to use façade to SDR. Most of the older API will be obsoleted step by step (change to ‘internal’)


    • Multiple rows in sections with better formatting for CanGrow

  • Faster Expression evaluation
  • Breaking Change in SharpDevelop Reports

    For naming consistency reasons, the "BaseGroupedRow" field was changed to "GroupHeader". This change ,however, affects your existing reports - please open your .srd files in a text editor and replace the element <BaseGroupedRow> with <GroupHeader> (don't forget to change the closings tags as well!)

    One small feature change also happened for RC: if you use grouping, the wizard will add an empty GroupFooter to the section. This is intended for aggregate functions such as count, sum et ceterea.


  • Final Features in SDR for Beta 4

    In my last blog post I was alluding to upcoming features. The following ones made it into 4.0 Beta 4:

    • Automatic page break after group. This feature can help for clear arrangement.
    • Grouping support in Table Layouts
    • Sum() across group, Sum() for entire report. Those can be used in the group header and page footer respectively. However, the functions are limited to source values from the data source.

    One pre-announced feature didn't make it: simple static SubReports. This had to be cut because of time constraints.

    Upcoming features for SharpDevelop "vNext" (4.1):

    • Aggregates for calculated fields
  • Grouping in SharpDevelop Reports

    Beta 3 of SharpDevelop 4.0 ships with a new feature in SharpDevelop Reports - Grouping. Currently, the only way to create a report that supports grouping is via the Report Wizard; you have to check Grouping (List Layout is the only layout supported at this time!) and then select the column to group by:

    This will create a report for you and display it in the designer. Here is an example:


    Please note the GroupedHeaderRow (shown in light gray back color): you can insert controls to your liking here. In this example (left to right): TextItem, DataItem (GroupColumn, which is the "group by" field), TextItem (a calculated field in this sample).

    Below is the standard DetailsRow, which also sports a calculated field. The finished reports looks like this in the built-in Report Viewer:


    As you can see, a pretty neat feature!

    Speaking about neat features - there is one more I'd like to point out: smart tags.

    Now you can set the data type and format string for TextItems not only via the property grid, but also via smart tags. (Format strings can be set only for valid data types)

    Finally, a few words on the road(map) to SharpDevelop 4.0 final:

    • Automatic page break after group
    • Grouping support in table layouts
    • Sum() across group, Sum() for entire report
    • Simple static subreports (think "static" recurring information, eg company stationary, that can be reused across multiple reports). Limited to report header.
  • News in SharpDevelop Reports

    As you can read in another blog post, Philipp Maihart wrote the new Data addin for SharpDevelop 4.0. Using this addin, I can remove the very old SharpQuery addin. Result: we have no ComInterop reference anymore. Currently only SQLServer is supported, but you are invited to write providers for other databases (template in the blog of Philipp).

    Features I am working on at the moment:


    • Adjust Designer to create Grouped Reports
    • Grouping
    • Better formatting of expression results.


    • Filtering
  • Near-Future Plans for SharpDevelop Reports

    House-keeping first: source code can be found in the /Reports branch (a branch of version 4.0 of SharpDevelop), an integration build is available on the build server under the heading "Mirador Reports Branch".

    Back to the scheduled programming - in the near future I will work on the following tasks:

    The Exporter

    It is used by the ReportViewer as well as for creating PDFs (et cetera) - and it will be rewritten. The reason for this is:

    For each BaseReportItem I have to maintain 3 classes. First the Base…Item in Reports.Core, then, one in Reports.Addin to use in the Designer and third I have to convert the BaseReportItem in a new class derived from BaseExportColumn. I will remove the third part and use only classes derived from BaseReportItem. This will bring me to a codebase that is used in the standard printroutine as well.


    • Less code to support
    • Same codebase as in the standard printing (preview)
    • Less conversation

    So, to make things easy I will rewrite the Exporter.

    Sub Reports

    Next, I will start working on subreports to support grouping. This will touch the ReportWizard, the Designer and the DataManager. I will use the already existing TableLayout as a base for SubReports.

  • Getting Started With SDR

    For those of you that haven't followed the development of SDR in the past, a quick introduction on how to get started.

    There is a Wiki dedicated to SDR: (please note that it hasn't been updated yet for the fact that SDR is now back in the fold with SharpDevelop)

    It contains a feature tour (with screenshots) to give you an idea how to get up and running quickly. I'd also recommend reading the what's new blog post from the SDR beta, as it contains information on the newly added functionality (such as expression support).

    Speaking of support: there is a dedicated forum for SDR on our community site, please let me know about problems, ideas, fixes et al there!

  • SharpDevelop Reports Re-Integrated Into SharpDevelop

    As of today, SharpDevelop Reports (SDR) is once again an integral part of SharpDevelop!

    It will be shipped with SharpDevelop 3.2 (~spring 2010), but it is already available on the build server as part of the SharpDevelop integration builds. Please note that the standalone designer build is no longer available on the build server.

    Sample reports can be found in the source download of SharpDevelop in the folder Samples\SharpDevelopReports.

    Upcoming changes before the CTP of SharpDevelop 3.2: iTextSharp will be updated to version 5.0, and we no longer include the source code for it in the repository (only as a zip in the vendor directory, which is not part of the source download).

    Next tasks: more samples, more documentation, bug fixing.

  • What’s New in SharpDevelop Reports 3 Beta


    • The Designer is using the infrastructure from Windows.Forms.Designer
    • Run Expressions inside a Report; based on the work of  Irony and Simpleexpressionevaluator
    • UnitTests for many  (increasing number) of Classes

    The Designer in Action:

     TextEditor, useful to enter some text and/or expressions:

    A very simple report in List layout with PageNumber in the PageFooter section and Aggregate function count() in ReportFooter:

    Some more functions:
    Line 1 (middle):   nothing to evaluate – (right) concat two fields
    Line2 (middle and right):  Userfunctions
    Line 3 (middle and right) : Globalfunctions
    Line 4 :     show parameters inside report, useful for queries
    Line 5:     simple calculation
    Line 6:     etc, some more functions

     The Result:

  • Roadmap For SharpDevelop Reports

    SharpDevelop Reports is currently only available from our build server, it isn't yet reverse integrated with SharpDevelop 3.0. This post reports on its status as of version 

    Strike-through means "done".

    Working Features:

    • The Report Designer is a real Windows Forms Designer
    • Creating reports using *.XSD files
    • SharpQuery is back

    Coming Soon:

    • Create PushModel Reports
    • Polish the Report Wizard

    To Do (Planned Improvements):

    • More exact printing in PDF
    • TableControl (list with calculated fields)
    • Parameters for user-defined values
    • Calculated fields, for example   '={Fields["aa"] * 1.19}'  - translates to: multiply the value in field "aa" by 1.19 ( the German VAT)
    • Modify the ReportWizard to create reports from collections
Powered by Community Server (Commercial Edition), by Telligent Systems
Don't contact us via this ( email address.