Reporting Features
The reporting engine is built on top of the FlexCel API, and allows to design your reports directly with Excel, with a minimum of .NET code. This way writing reports becomes fun, and your end users can modify your reports with a tool they already know, Excel.
<#image>
DataSets and LINQ support
You can do reports from .NET dataset or from any Ienumerable/IQueryable object.
<#image>
Replace tags inside cells, comments, sheet names, images, hyperlinks, autoshapes, textart, headers and footers
You can write a <#tag> virtually anywhere on an Excel sheet, and it will be replaced by a value from memory or a database.
<#image>
Support for complex reporting expressions
You can write something like <#if(<#table.field>=1;true;false)> inside a cell, and it will write "true" when table.field is 1, "false" otherwise. Any of the more than 300 Excel formulas supported can be used, along with other FlexCel built in functions like “lookup”.
<#image>
Support for columnar and row report bands
A band can grow horizontally or vertically, allowing for any kind of reports. You can use a column band inside a row band to create a cross reference report.
<#image>
Support for any level of master detail reports
You can nest any number of reports, and FlexCel will automatically read the relationships between the tables to find out how to relate them.
<#image>
Multiple sheet reports
Use as many sheets as you want for a report. You can use them independently one from the other, or make a master-detail report where each sheet holds a different master record.
<#image>
Includes
You can <#include> a report inside another, allowing for the maximum of flexibility and modularity. This way you can use the same parts again and again. For example, you could have a Header.xls file with the header of your reports included in all of them. So when you need to change the header, you can just change Header.xls and all your reports will have the new header.
<#image>
Regular Expressions
You can use (at your choice) full regular expressions inside the reports to manage the text.
<#image>
Formulas with tags
You can use the <#formula> tag to replace a tag inside a formula.
<#image>
Configuration sheet
A sheet where you can define your own tables, reusable expressions and more. For example, you can define <#red> to be <#lockup(.....)> and the use <#red> in the template instead of the whole expression. Everything is done on the template and can be modified by the final user.
<#image>
Generic Reports
For the cases where you want to just dump a dataset, you can use the <#table.*> tag.
<#image>
Direct SQL
You can embed the SQL for your reports directly on the template, allowing for a "zero code" report. Changing anything on the report only implies changing the template.
<#image>
User Tables
If you would not prefer to embed direct SQL but would like to be able to define the queries in the template, you can use an user table event. This allows for a more controlled environment than DirectSQL, while still allowing to change the data layer without modifying the code.
<#image>
User Defined Functions
You can add your own functions on the code to the already big list implemented by FlexCel, and use them as native functions in your report.
<#image>
Virtual Datasets
While by default FlexCel uses Dataset classes for the reports, you can use any Business Object that you want as source for your report. You only need to implement two abstract classes.
<#image>
Debug Mode
A special diagnostic mode allows to "debug" your reports and see what is happening inside complex expressions.
<#image>
FlexCel designer
A standalone application from where you can drag and drop the fields defined on the tables you use directly to Excel without writing them with the keyboard. As with everything else, full source code for FlexCelDesigner is included.
And more…
Please take a look at MainDemo to find out even more functionality.