domingo, 14 de julio de 2013

FastReport is Back !!!! Hand in hand with Xailer !!!!!


FastReport step into the (x)Harbour world through Sergey Spirin, a brilliant russian programmer, who wrote a complete (x)Harbour interface based on FastResport's OLE support, available for the most of the programming languages.

When you purchased FastReport for (x)Harbour to Sergey, he gave you a class for (x)Harbour along with its source code, a .CH header file, and a DLL generated by himself (You can buy the FastReport's source code, so you can rebuild the DLL as many times as you want). The DLL had all the FastReport report designer self-contained (curious fact: ALL FastReport, including the Visual Report Designer, Preview module and the 11 export engines, are contained in a single DLL of only 4 Mbytes size, no installation procedure or registration is needed to use the report designer, just copy the DLL where your EXE is, and you are done), with the stuff given by Sergey you were ready to use all the power of the report designer in your (x)Harbour programs, including applications written for console mode, or with the most popular GUIs for (x)Harbour such Xailer itself, FiveWin and Harbour MiniGUI.

Sergey may got tired of selling copies and copies of FastReport for (x)Harbour, we at CiberTec, translated the Sergey's manual into Spanish, and we sold several copies of the product. Unfortunally and because such is life, about one year ago, without a notice, Sergey passed the way, leaving a widow and a lot of orphan programmers with no support, and with the hope of new, more powerful versions of the report designer and the promise of been able to use other products of the FastReport family with (x)Harbour.

FastReport has had such a big impact in the (x)Harbour comunity, specially in the Xailer comunity (the most of the Xailer programmers I know use FastReport, only a few don't) and that is why the Xailer Team decided to go into the Sergey's project, giving a new life to this great product that some of us thought it was dead for the (x)Harbour world. So, Xailer signed a patnership contract with FastReport to develop an interface for (x)Harbour, and retake Sergey's project, giving to it new power, Xailer now is "FastReport's associated developer"

Once signed the agreement with Alexander Tzyganenko, FastReport's CTO, the Xailer Team went into the job, first reviewing Sergey's work, as mentioned before it was based on the OLE connection, and even doing so, the thign works and works well, is not a good idea to make it this way, because you are adding and extra layer of communication that the program doesn't really need. Due to this the Xailer Team decided make direct calls to the functions contained in the DLL, getting more speed accesing the reports.


An additional advantage of making direct calls to the DLL instead of doing by OLE, is that you have full access to other functions not accesible via OLE because they are not "published" to be used by this technology, this allowed the Xailer Team to get access to ALL the power of FastReport, features that only were available through other languages such Delphi, because the FastReport version used with (x)Harbour is the same used by Delphi as a VCL (Visual Control Library) in Ignacio Ortiz de Zuñiga own words.... "we went deep into the FastReport internals and now we are able to make incredible things with the report generator"

The new release of FastReport for (x)Harbour, improved the data access, specially in master / detail / subdetail / sub-sub detail operations and as Ignacio told me once ...."it all seems that Sergey didn't know how to use the SET RELATION command, he made a mess to set up a master/detail report" with the new version of FastReport adapted by Xailer Team is easier the access to DBF data files, but also, and knowing that every day less programmers use DBF tables and use SQL databases, the new release of FastReport for (x)Harbour includes full support for Xailer's DataSets.

It's well known that many (x)Harbour developers use FastReport for the daily reporting basics, so in this new release, the Xailer Team have tried to keep compatibility with all the work made by Sergey, because it would be a pitty to change the working methodology that all of us have been using until now to get access to FastReport features, but also many functions have been enhaced to improve the access to the report designer internals from Xailer, special attention was put in calling your own functions in your Xailer EXE from FastReports, Sergey used a function called CallHBFunc(), in the new release you can call directly the function contained inside the EXE, not need to use other stuff.

One "complain" or "concernt" of the programmer, is that Sergey's project stoped his work in FastReport's version 4.7.92.  The new version developed by the Xailer team works perfectly with the most recent release,  version 4.14.3  this is a warranty that your future applications will work with the most recent version of the VCL of FastReport.
But.... It's correct to call this version "FastReport for (x)Harbour" ?, may be not, because the Xailer Team has made a great job making FastReport to work in first place with Xailer's IDE, in fact, FastReport will only work with version 3.1 of Xailer (we will talk about this new exciting Xailer release in a future article). A new tab has been included in the Xailer IDE to support FastReport, the same way it is made in Delphi and in .NET.



This new release has special attention in DataSets support, for DBF, ADS, SQL and Array datasets. I have included a little sample of FasReport for Xailer (the right name), you will notice that this sample is dentical to the one used in Delphi, but this is full written in Xailer 3.1, it uses all kinds of DataSets, includes source code, 60 different reports in FR3 format and a version demo of the DLL of FastReport:


One of my favourite features in this new release of Xailer and FastReport is that you don't need to have an external .XML file with the translation of the report generator messages, now you can include inside a Xailer EXE the file with the messages, another great feature of Xailer 3.1 (soon to be reviewed) is tha hability to include inside the EXE also all the reports in .FR3 format, so you don't need to use individual files for your reports.

Ok, it's clear, there is a new FastReport for Xailer version, and works pretty good, but.... What if I don't use Xailer ?, What if I use FiveWin, MiniGUI, Visual xHarbour or (x)Harbour in console mode ?, well BY THE MOMENT you won't be able to use this new version because has been designed to work only with Xailer and even if you have Xailer you can only use it with Xailer 3.1, however I have talked with Ignacio and he has told me for sure that will be a "generic" version to be used with (x)Habour and all its GUIs but "in the future", by now, there's no a date to release this generic version, but, thinking it better, and after all, the Xailer Team has been done the dirty work: To make FastReport compatible with Xailer and of course, with (x)Harbour.
 
So far, so good, and now you probably be thinking.... How much is going to cost this new version of FastReport ?, well, as far as I know, the agreement signed between Xailer and FastReport forces Xailer to distribute a legal copy of FastReport with any version of FastRepot for Xailer sold, however, this will not increase the price of the product for the programmer, FastReport for Xailer sells for 300 Euro, same price Sergey used to take, for this money you get an original licence of FastReport distributed directly from the vendor company, and the component for Xailer (or for [x]Harbour when released) will be obtained from Xailer.

Yet another question.... What if I bought my FastReport for (x)Harbour with Sergey ? Will I have right to upgrade or something like that to use this new version ?, I don't really know, I have been told that current FastReport for (x)Harbour users would qualify for a 100 Euro rebate from the original price with a proof of purchase or any other way of validation of a FastReport licence. There are A LOT of illegal copies of FastReport around and there's no way to know if you purchased a copy with Sergey since there's no registration of these operations.

Anyway, FastReport is the right choice for reporting with (x)Harbour, the report generator is GREAT, personally I have been playing with the FastReport HTML exportation module and Xailer, I've recompiled this old sample with the new Xailer 3.1 and here is how it looks:

Using Xailer and FastReport for web reporting

Does it worth the wait ?,  you bet on it ! This new release of FastReport has many bug fixes from the version used by Sergey and the implementation made by the Xailer Team let you to make things that were complicated or imposible to do, so worth the wait this new release.