Kryvich’s Delphi Reporter

Open-source reporting tool for Embarcadero's (CodeGear, Borland) Delphi IDE

Downloads

The latest public version of the Kryvich's Delphi Reporter can be download here:

https://github.com/Kryuski/kryvich-delphi-reporter

Previous releases are available on this page:

Kryvich's Delphi Reporter 3.0 (September 13, 2013)

[+] Support for templates and reports in XML format. For ex. Excel 2003 XML format.

[*] While saving to HTML & XML formats, a tag value is converted to UTF-8 format.

Includes source code and demo project with RTF & HTML templates.

Newest version: 3.1

November 16, 2018


History

Kryvich's Delphi Reporter 2.0 (January 7, 2012)

[+] Support for Delphi XE2.

Kryvich's Delphi Reporter 1.0.2 (January 24, 2009)

[+] Support for the aggregate fields.

Kryvich's Delphi Reporter 1.0.1 (June 11, 2008)

[+] Support for the memo fields (TMemoField, TWideMemoField).

Kryvich's Delphi Reporter 1.0 (August 14, 2007)

Templates

The reporter creates reports based on templates.

The template is a common RTF, HTML or XML file that consists tags.

The tag is a command for the reporter. For a RTF template the tags have to be enclosed in curly brackets “{}”. For a HTML & XML template the tags have to be parenthesized with “\{” and “\}”.

Main features:

  • Uses RTF, HTML and XML templates

  • Creates reports in RTF, HTML and XML formats (for ex. Excel 2003 XML format)

  • Direct access to RTF files (MS Word not required)

  • Direct access to Excel 2003 XML files (MS Excel not required)

  • Gets data from any TDataSet descendant (the cycles used to pass datasets)

  • Nested cycles (datasets) supported

  • Free, open source software, licensed under the GNU Lesser General Public License v3 or later (see lgpl-3.0.html)

  • Tested with Delphi 2007 - 10.2.3. Supports all editions including the Community Edition

Tags recognized by Reporter

It’s a list of tags of a template that can be recognized and evaluated by Kryvich’s Delphi Reporter:

Any other tag in a template that can’t be evaluated by Reporter itself has to be populated in the OnGetCustomTagValue event handler.

Demo Project

There is the demo project included in the distribution kit which shows work of the reporter. To demonstrate various techniques as data sources I’ve used several TDataSet descendants:

  • TClientDataSet, which load data from XML files.

  • Several TClientDataSet objects linked with master-detail relationships.

  • TADOQuery, linked to the MS Access database file (.mdb).

Source text of this demo project is included too.

Demo reports are created on the basis of DBDEMOS database, which distributed with Delphi. Here is the list of generated reports (in order of increasing complexity):

  • Simple Customer List Report.

  • Invoice Report.

  • Order History Report.

  • Part Sales Report.

Questions & Answers

Please ask. My e-mail can be founded in File_Id.diz included in the distribution kit.

Plans

Plan for the future versions of Kryvich’s Delphi Report includes but not limits to these features:

  • Simple arithmetic operations in tags. For ex. {Items.Qty*Parts.ListPrice*(100-Items.Discount)/100}.

  • Named tags: Tags with names assigned that can be used in other tags, just like database fields. For ex. Named tag {AnnualSales=Sum(PartSales.Amount)}, which further can be used in tag {Max(AnnualSales)} (see following feature – aggregates for custom tags).

  • Add aggregates for custom tags, populated via OnGetCustomTagValue. For ex. we will can write {Sum(PartTotal)}, see “Invoice Report Demo”.

  • …Any suggestions?

Contact us / Feedback

Further questions, suggestions, comments, feature requests, error reports, source fragments and modifications are very welcomed! You can find my e-mail in File_Id.diz included in distribution kit.

Sample report in RTF
Sample report in HTML
Sample report in RTF