Skip to content

Commit

Permalink
Merge pull request #2 from fediachov/master
Browse files Browse the repository at this point in the history
Initial Documentation Structure
  • Loading branch information
Detrav authored Oct 25, 2018
2 parents 315ead2 + 5e260ea commit c457c4c
Show file tree
Hide file tree
Showing 33 changed files with 420 additions and 1 deletion.
49 changes: 49 additions & 0 deletions Bands.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Bands

The band is an object which is located directly on the report page and is a container for other objects like "Text", "Picture" and others.

In all, in FastReport there are 13 types of bands. Depending on its type, the band is printed in a certain place in the report.

| Band | How it's printed |
|:-|:-|
| Report Title | It is printed once at the very beginning of the report. You can choose the order of printing - before the "Page Header" band or after it - with the help of the "TitleBeforeHeader" page property. Changing this property can be done with the help of "Properties" window. By default, property is equal to true, that is, report title is printed before page header. |
| Report Summary | It is printed once at the end of the report, after the last data row, but before the "Page Footer" band. |
| Page Header | It is printed on top of every page of the report. |
| Page Footer | It is printed at the bottom of every page of the report. |
| Column Header | This band is used when printing a multi-columned report (when the number of columns indicated in the page setup > 1). It is printed on top of every column after the Page Header band. |
| Column Footer | Printed at the bottom of every column, before the Page Footer band. |
| Data | This band is connected to the data source and is printed as many times as there are rows in the source. |
| Data Header | This band is connected to the "Data" band and is printed before the first data row. |
| Data Footer | This band is connected to the "Data" band and is printed after the last data row. |
| Group Header | It is printed at the beginning of every group, when the value of the group condition changes. |
| Group Footer | It is printed at the end of every group. |
| Child | This band can be connected to any band, including another child band. It is printed immediately after its parent. |
| Overlay | Printed as a background on every report page. |


So, there are several bands placed on the page. How will FastReport compose a prepared report? Let us look at the following example:

![](images/bandsequence.png)

The "Report Title" band will be printed first. The "Page Header" band will be printed immediately after it. Further, the "Data" band will be printed as many times as there are rows in the data source, to which the band is connected. After all the rows of the "Data" band have been printed, the "Report Summary" band is printed and at the bottom of the page - the "Page Footer" band. Printing of the report ends with this. A prepared report will be looking something like this:

![](images/bandsequenceresult.png)

In the process of printing, FastReport checks if there is enough space on the current page of the prepared report, so that the band can be printed. If there isn’t enough space, the following occurs:

- page footer is printed;
- a new page is added;
- page header is printed;
- continues to print the band which did not fit on the previous page.

Every band has several useful properties, which affect the printing process.

| Property | Description |
|:-|:-|
| CanGrow, CanShrink | These properties determine whether a band can grow or shrink depending on the size of the objects contained in the band. If both properties are disabled, the band will always have the size specified in the designer. Read more about this in the "Report Creation" chapter. |
| CanBreak | If the property is enabled, FastReport tries to print a part of the band’s contents on the available space, that is, "break" the band. Read more about this in the "Report Creation" chapter. |
| StartNewPage | Printing a band with such property begins on a new page. This property is usually used when printing groups; that is, every group is printed on a new page. |
| PrintOnBottom | A band with this property is printed at the bottom of the page, before the "Page Footer" band .This can be useful when printing certain documents, where the total sum is supposed to be printed at the bottom of the page. |
| RepeatOnEveryPage | The bands - "Data Header", "Data Footer", "Group Header" and "Group Footer" - have got this property. This type of band will be printed on each new page, when data printing is being done. Read more about this in the "Report Creation" chapter. |

[Next Page](ReportObjects.md)
76 changes: 76 additions & 0 deletions COMPARISON.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# The Feature Comparison Table for FastReport Open Source, FastReport Core, FastReport .Net

| Features | FastReport Open Source | FastReport Core | FastReport .Net |
|:-|:-|:-|:-|
| **Supported Projects** | | | |
| WinForms Applications | | | + |
| Console Applications | + | + | + |
| ASP.NET ASPX (WebForms) Applications | | | + |
| ASP.NET MVC Applications | + | + | + |
| ASP.NET MVC SPA | + | + | + |
| ASP.NET MVC PWA | + | + | + |
| WCF Applications | | | + |
| Web API Applications | + | + | + |
| **Supported Operation Systems** |
| Windows | + | + | + |
| Windows Server | + | + | + |
| Linux | + | + | |
| MacOS | + | + | |
| **Preview** |
| In Application | | | + |
| In Web browser | + | + | + |
| In Viewer Application (for Windows) | + | + | + |
| In FastReport Pages (Android) | + | + | + |
| **Print** |
| Printing on local or network printers with support of tray selection, duplex, scaling, copy names | | | + |
| Print from Web browser | + | + | + |
| Print from Web browser and PDF | | + | + |
| **Output formats and delivery** |
| Export in HTML, BMP, PNG, JPEG, GIF, TIFF, EMF | + | + | + |
| Export in PDF, XLSX, DOCX, PPTX, ODS, ODT, RTF, Text, XPS, XML, XAML, PS, PPML, LaTeX, Json, Dbf, Csv, XLS (Biff8), SVG, ZPL | | + | + |
| Save in prepared report FPX | + | + | + |
| Sending reports by email, FTP | | | + |
| Uploading in the clouds Box, Dropbox, GoogleDrive, OneDrive (SkyDrive) | | | + |
| **Data Sources** |
| XML, CSV, Json, MS SQL, Postgres, SQLite, Couchbase, MySQL, MongoDB, RavenDB, Oracle | + | + | + |
| OLE DB, ODBC, Access | | | + |
| Plugins for DB2, Firebird, NosDB, SharePoint, SqlAnywhere, SqlCe, VistaDB | | | + |
| Application datasets, lists, arrays and business objects | + | + | + |
| **Features and report objects** |
| Internal report script C#, VB.NET | + | + | + |
| Text, Picture, Line, Shape, Subreport, Table, Matrix, PolyLine, Polygon, Barcode, Checkbox, ZipCode, CellularText, LinearGauge, SimpleGauge, RadialGauge, SimpleProgressGauge, Html | + | + | + |
| RichText, Map, SVG | | + | + |
| Chart, Sparkline | | | + |
| Dialogs | | | + |
| Interactive Reports (clicks, hyperlinks, link on report, bookmarks, outline) | + | + | + |
| **Report Designing** |
| Designer Application (WinForms) | | | + |
| Using with the Online Designer | + | + | + |
| Designer in Application (for WinForms) | | | + |
| **Report Templates Import** |
| Crystal Reports | | | + |
| SSRS RDL (RDLC) | | | + |
| List&Label | | | + |
| DevExpress | | | + |
| **Localization** |
| 29 languages | + | + | + |
| **Integration** |
| Visual Studio ToolBox | | | + |
| Active Query Builder | | | + |
| Steema TeeChart | | | + |
| **Distribution** |
| Packages in Nuget.org | + | + | |
| Sources in Github | + | | |
| Installation package | | + | + |
| Sources in installation (Professional and Enterprise editions) | | + | + |

## Remarks about FastReport Core

FastReport Core sources and nupkg files are included in FastReport .Net Professional and Enterprise editions. FastReport Core Demo nupkg files are included in FastReport .Net Trial, Win, Win+Web editions.

## Resources

[FastReport Open Source](https://github.com/FastReports/FastReport)

[FastReport .Net and FastReport Core home page](https://www.fast-report.com/en/product/fast-report-net/)

97 changes: 97 additions & 0 deletions CreatingReportUsingCode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Creating a report by using code

Let us consider how to create a report in code.

```
Report report = new Report();
// register the "Products" table
report.RegisterData(dataSet1.Tables["Products"], "Products");
// enable it to use in a report
report.GetDataSource("Products").Enabled = true;
// create A4 page with all margins set to 1cm
ReportPage page1 = new ReportPage();
page1.Name = "Page1";
report.Pages.Add(page1);
// create ReportTitle band
page1.ReportTitle = new ReportTitleBand();
page1.ReportTitle.Name = "ReportTitle1";
// set its height to 1.5cm
page1.ReportTitle.Height = Units.Centimeters * 1.5f;
// create group header
GroupHeaderBand group1 = new GroupHeaderBand();
group1.Name = "GroupHeader1";
group1.Height = Units.Centimeters * 1;
// set group condition
group1.Condition = "[Products.ProductName].Substring(0, 1)";
// add group to the page.Bands collection
page1.Bands.Add(group1);
// create group footer
group1.GroupFooter = new GroupFooterBand();
group1.GroupFooter.Name = "GroupFooter1";
group1.GroupFooter.Height = Units.Centimeters * 1;
// create DataBand
DataBand data1 = new DataBand();
data1.Name = "Data1";
data1.Height = Units.Centimeters * 0.5f;
// set data source
data1.DataSource = report.GetDataSource("Products");
// connect databand to a group
group1.Data = data1;
// create "Text" objects
// report title
TextObject text1 = new TextObject();
text1.Name = "Text1";
// set bounds
text1.Bounds = new RectangleF(0, 0,
Units.Centimeters * 19, Units.Centimeters * 1);
// set text
text1.Text = "PRODUCTS";
// set appearance
text1.HorzAlign = HorzAlign.Center;
text1.Font = new Font("Tahoma", 14, FontStyle.Bold);
// add it to ReportTitle
page1.ReportTitle.Objects.Add(text1);
// group
TextObject text2 = new TextObject();
text2.Name = "Text2";
text2.Bounds = new RectangleF(0, 0,
Units.Centimeters * 2, Units.Centimeters * 1);
text2.Text = "[[Products.ProductName].Substring(0, 1)]";
text2.Font = new Font("Tahoma", 10, FontStyle.Bold);
// add it to GroupHeader
group1.Objects.Add(text2);
// data band
TextObject text3 = new TextObject();
text3.Name = "Text3";
text3.Bounds = new RectangleF(0, 0,
Units.Centimeters * 10, Units.Centimeters * 0.5f);
text3.Text = "[Products.ProductName]";
text3.Font = new Font("Tahoma", 8);
// add it to DataBand
data1.Objects.Add(text3);
// group footer
TextObject text4 = new TextObject();
text4.Name = "Text4";
text4.Bounds = new RectangleF(0, 0,
Units.Centimeters * 10, Units.Centimeters * 0.5f);
text4.Text = "Count: [CountOfProducts]";
text4.Font = new Font("Tahoma", 8, FontStyle.Bold);
// add it to GroupFooter
group1.GroupFooter.Objects.Add(text4);
// add a total
Total groupTotal = new Total();
groupTotal.Name = "CountOfProducts";
groupTotal.TotalType = TotalType.Count;
groupTotal.Evaluator = data1;
groupTotal.PrintOn = group1.Footer;
// add it to report totals
report.Dictionary.Totals.Add(groupTotal);
// run the report
report.Prepare();
...
```
The prepared report looks as follows:

![](images/CreateReportFromCode.png)

[Next Page](Exporting.md)
4 changes: 4 additions & 0 deletions Data.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Data


[Next Page](Expressions.md)
1 change: 1 addition & 0 deletions Examples.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Examples
4 changes: 4 additions & 0 deletions Exporting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Exporting


[Next Page](WebReports.md)
4 changes: 4 additions & 0 deletions Expressions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Expressions


[Next Page](Script.md)
5 changes: 5 additions & 0 deletions FastReportDesignerCommunityEdition.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# FastReport Designer Community Edition

![FastReport Designer Community Edition](images/FastReportDesignerCE.png)

[Next Page](FastReportOnlineDesigner.md)
3 changes: 3 additions & 0 deletions FastReportOnlineDesigner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# FastReport Online Designer

[Next Page](ReportTemplateFileStructure.md)
5 changes: 5 additions & 0 deletions Fundamentals.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Fundamentals

In this chapter we will learn the principles of working with a report in the FastReport. We will also take a close look at report elements such as report pages, bands, and report objects.

[Next Page](Report.md)
55 changes: 55 additions & 0 deletions Introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
## What is FastReport?

FastReport provides open source report generator for .NET Core 2.x/.Net Framework 4.x. You can use the FastReport in MVC, Web API applications.

[![Image of FastReport](images/FastReport-screenshot2-small.png)](images/FastReport-screenshot2.png)

## Features

FastReport is written in C# and it is compatible with .NET Standard 2.0 and higher. Extendable FastReport architecture allows creating your own objects, export filters, wizards and DB engines.

[![Image of FastReport](images/FastReport-screenshot1-small.png)](images/FastReport-screenshot1.png)

### Report Objects

- FastReport is a band-oriented report generator. There are 13 types of bands available: Report Title, Report Summary, Page Header, Page Footer, Column Header, Column Footer, Data Header, Data, Data Footer, Group Header, Group Footer, Child and Overlay. In addition, sub-reports are fully supported.

- A wide range of band types allows creating any kind of report: list, master-detail, group, multi-column, master-detail-detail and many more.

- Wide range of available report objects : text, picture, line, shape, barcode, matrix, table, checkbox.

- Reports can consist of several design pages, which allows reports to contain a cover, the data and a back cover, all in one file.

- The Table object allows building a tabular report with variable number of rows and/or columns, just like in MS Excel. Aggregate functions are also available.

- Powerful, fully configurable Matrix object that can be used to print pivot tables.

- Report inheritance. For creating many reports with common elements such as titles, logos or footers you can place all the common elements in a base report and inherit all other reports from this base.

### Data Sources

- You can get data from XML, CSV, Json, MS SQL, MySql, Oracle, Postgres, MongoDB, Couchbase, RavenDB, SQLite.

- FastReport has ability to get data from business objects of IEnumerable type.

- Report can contain data sources (tables, queries, DB connections).

- Thus you can not only use application-defined datasets but also connect to any database and use tables and queries directly within the report.

### Internal Scriping

FastReport has a built-in script engine that supports two .NET languages, C# and VB.NET. You can use all of the .NET power in your reports to perform complex data handling and much more.

## Working with report templates

You can make a report template in several ways:

- Creating report from code.

- Developing report template as XML file.

- Using the FastReport Designer Community Edition. It can be downloaded from [Fast Reports home site](https://www.fast-report.com/).

[![Image of FastReport](images/FastReport-screenshot3-small.png)](images/FastReport-screenshot3.png)

[Next Page](Fundamentals.md)
7 changes: 7 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Copyright (c) 2018 Fast Reports Inc

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
47 changes: 46 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,46 @@
"# FastReport.Documentation"
# FastReport Open Source Documentation

## What is FastReport?

FastReport provides open source report generator for .NET Core 2.x/.Net Framework 4.x. You can use the FastReport in MVC, Web API applications. FastReport Open Source is based on the FastReport.Net project.

## About Repository

Here is the FastReport Open Source Documentation.

## Table of Contents

### [Introduction](Introduction.md)

### [Fundamentals](Fundamentals.md)
#### [The Report](Report.md)
#### [Report Pages](ReportPages.md)
#### [Bands](Bands.md)
#### [Report Objects](ReportObjects.md)

### [Data](Data.md)

### [Expressions](Expressions.md)

### [Script](Script.md)

### [Report Creation](ReportCreation.md)
#### [FastReport Designer Community Edition](FastReportDesignerCommunityEdition.md)
#### [FastReport Online Designer](FastReportOnlineDesigner.md)
#### [Report Template File Structure](ReportTemplateFileStructure.md)
#### [Creating a Report by Using Code](CreatingReportUsingCode.md)

### [Exporting](Exporting.md)

### [Web Reports](WebReport.md)

### [APPENDIX I: Examples](Examples.md)
### [APPENDIX II: Class Reference](https://fastreports.github.io/FastReport.Documentation/ClassReference/api/FastReport.html)
### [APPENDIX III: The Feature Comparison Table for FastReport Open Source, FastReport Core, FastReport .Net](COMPARISON.md)

## Links

[FastReport Open Source](https://github.com/FastReports/FastReport "Click for visiting the FastReport Open Source GitHub")
[FastReport .Net User's Manual](https://www.fast-report.com/public_download/html/UserManFrNET-en/index.html)


13 changes: 13 additions & 0 deletions Report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# The Report

The report building process can be represented as follows:

![Report Engine](images/ReportEngine.png)

Report template (later-Report) - this is, what we see in the Designer. Reports are saved in files with an extension .FRX. A Report can be created with the help of Designer or programmatically.

Data can be any: this is data, defined in the program, or data from DBMS, for example, MS SQL. FastReport can also work with business-logic objects (later - business-objects).

Prepared Report - this is what we see in the preview window (for Desktop application) or in web browser. Prepared report can be previewed, printed, saved in one of the supported formats (.png, jpg, .docx, .xlsx, .pdf and others).

[Next Page](ReportPages.md)
4 changes: 4 additions & 0 deletions ReportCreation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Report Creation


[Next Page](FastReportDesignerCommunityEdition.exe)
Loading

0 comments on commit c457c4c

Please sign in to comment.