Page 1 of 1

ReportWorkshop 6.0 - FireMonkey

Posted: Thu Apr 18, 2024 11:11 am
by Sergey Tkachenko
We have released ReportWorkshop 6.0 - rich text reporting components based on our TRichView editor.

This update is free for customers who ordered ReportWorkshop in 2022, 2023, and 2024.

Trial versions can be downloaded here: https://www.trichview.com/download/

TRichView + ReportWorkshop FireMonkey trial became large (more than 500 Mb, and much more when unpacked) because it includes precompiled files for all supported platforms.
So, we decided to provide separate trial downloads for RAD Studio 11 and for RAD Studio 12 additionally.
The trial version for RAD Studio 11 is larger, because more precompiled files are needed to support Community Edition.

Trial limitation in FireMonkey version: no more than 100 records of each data query are displayed.

Main changes after the last update:
  • FireMonkey version (all platforms)
  • report generation in a background thread
Other significant changes after v5.0:
  • Lazarus for Windows version
  • add-on for barcodes and QR codes

Image


See version history: https://www.trichview.com/help-report/v ... istory.htm

Previous version
https://www.trichview.com/forums/viewtopic.php?t=12258

Re: ReportWorkshop 6.0 - FireMonkey

Posted: Thu Apr 18, 2024 11:17 am
by Sergey Tkachenko
FireMonkey

FireMonkey version of ReportWorkshop supports the same platforms as FireMonkey version of TRichView (it includes all platforms in RAD Studio 11 and 12).

What is ported: In other words, everything is ported, except for actions for creating user interface for report editing.
They will be ported later, after porting RichViewActions.
In this version, you can generate reports in code, or create a report editor using VCL (or Lazarus) version of ReportWorkshop, or implement your own user interface for editing report templates.

Note 1: I did not check if other third-party data access components support FireMonkey. If you want using some third-party data access components in FireMonkey, let me know.

Note 2: If you use data visualizers on mobile platforms, I highly recommend using Skia4Delphi.

Here are fragments of screenshots, zoomed x 3 to make difference more noticeable:
ReportWorkshop-Android-Skia-Zoom.png
ReportWorkshop-Android-Skia-Zoom.png (17.42 KiB) Viewed 21127 times

FireMonkey demo projects for ReportWorkshop

Posted: Thu Apr 18, 2024 11:18 am
by Sergey Tkachenko
FireMonkey demo projects

The following demo projects are available for FireMonkey

LiveBindings\AdapterBindSource and LiveBindings\PrototypeBindSource

These projects show how to use LiveBindings to provide data for reports.

MongoDB\Restaurants

The demo uses 'restaurants' collection from 'test' MongoDB database to create a report.
This collection is created by "Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\Restaurants" demo included in RAD Studio.

FireDAC.IB - 7 demos

A set of FireDAC demos that use InterBase.
The demos use "IB" driver in Windows, and "IBLite" in other platforms.
These are analogs of VCL demos (except for ReportEditor" demo, it is not available because requires actions).
Also, in ReportMaker demo, IB/IBLite driver is hard-coded (VCL version uses the FireDAC settings dialog, where the user can select another driver; this dialog is not available in FireMonkey)

FireDAC.SQLite - 7 demos

A set of FireDAC demos that use SQLite.

Analogs of the "IB" demos, but use SQLite tables.
I created SQLite versions of databases (dbdemos and fables), they are included (both in FireMonkey and VCL versions)

Known problem: these demos were created to be compatible with RAD Studio from XE8 to 12. Unfortunately, there are some compatibility problems between versions of RAD Studio. All demos are supposed to link SQLite statically. However, in new versions of Delphi, if you compile and run these demos for the first time, they may say that SQLite dynamic library is not available. Just compile and run them again to fix this problem.

Report generation in a background thread

Posted: Thu Apr 18, 2024 11:18 am
by Sergey Tkachenko
Report generation in a background thread

Generating in the main process

If you need to generate a small report, just call RVReportGenerator.Execute.
But if a report is large, generation may take some time. If you do nothing, your application will be frozen while a report is being generated.
To provide some feedback to the user, or to allow aborting the operation, you can use OnDataQueryProgress event. In this event, you can update a progress bar, and call Application.ProcessMessages to unfreeze the application.

However, Application.ProcessMessages is not cross-platform, so this is a bad solution for FireMonkey. Also, for very large reports, this event may be called not frequently enough, so the application responds to user actions slowly.

Generating in a thread

ReportWorkshop 6 includes a new feature: report generation in a thread.
Call RVReportGenerator.Execute with the parameter UseThread = True (this parameter is optional).
In this mode, this method just starts a report generation thread, and exits.
When the report generation is complete, OnGenerated event is called.
This method has advantages:
  • it is cross-platform
  • user interface is responsive when generating reports (and you can, for example, display some wait animation)
Note: just like with using Application.ProcessMessages, you must hide the target TRichView while a report is being generated, to prevent its redrawing until it is ready.

Changes in demo projects

All VCL ReportEditor demos where changed to generate reports in a background thread.
Some FireMonkey demos (for example, ReportMaker, Mongo, PrototypeBindSource) use a background generation too.

To-do: to update Lazarus report ReportEditor demos too.

Going to rebuild...

Posted: Fri Apr 19, 2024 9:30 am
by Sergey Tkachenko
The trial for Delphi 12 was built using Delphi 12.1.
Recently, Embarcadero released a patch that may affect compatibility of 64-bit files: https://blogs.embarcadero.com/rad-studi ... available/
So, I need to rebuild the trial using the patched version of RAD Studio 12.1... The new version will be available soon.

TRichView 22.3.1

Posted: Sun Apr 21, 2024 4:07 pm
by Sergey Tkachenko
I uploaded a new update.
The trial for Delphi 12 is recompiled using Delphi 12.1 + Patch 1 (it must solve possible problems with 64-bit packages).

Additional changes:
  • loading "REF" fields in DocX as hyperlinks
  • compatibility with Lazarus version of VirtualTree is restored (they renamed TVirtualStringTree to TLazVirtualStringTree)
  • report generation in a background thread for Lazarus ReportEditor demos (like in updated VCL demos)