EndUser reports, ASTA, Firebird
I finally got the Enduser reports to compile and run with ASTA 3.5 and
RB 7.03. I got the field names changed to match Interbase's (I had
already done this in an IBO Enduser reports but am converting to ASTA
now). Now I'm running it and created a simple report. I can preview
the report. But when I close the report it gives an error:
Could not convert a variant of type (null) into type (integer).
Any ideas?
Also, it will not read any of the pre-existing reports I created with
the IBO version. It says "Invalid template format".
Delphi 6.
Thanks.
--
_________________________________________
Don Gollahon
dlgllhn@InHisStepsSoftware.com
ICQ#: 115831669
MSN Msgr: dlgllhn@theinter.com
"What in Eternity does it matter?"
_________________________________________
RB 7.03. I got the field names changed to match Interbase's (I had
already done this in an IBO Enduser reports but am converting to ASTA
now). Now I'm running it and created a simple report. I can preview
the report. But when I close the report it gives an error:
Could not convert a variant of type (null) into type (integer).
Any ideas?
Also, it will not read any of the pre-existing reports I created with
the IBO version. It says "Invalid template format".
Delphi 6.
Thanks.
--
_________________________________________
Don Gollahon
dlgllhn@InHisStepsSoftware.com
ICQ#: 115831669
MSN Msgr: dlgllhn@theinter.com
"What in Eternity does it matter?"
_________________________________________
This discussion has been closed.
Comments
- The rbItems and rbFolders tables use auto increment fields to generate the
itemId and folderId field values. That might be the cause of the issue,
because typically those values will be generated by the database server and
the Delphi dataset has to be refreshed to get the values. When you add a
middle tier, then the middle tier needs to be configured to handle that type
of situation as well. I would contact ASTA tech support about that.
- We have an example of using the Borland DataSnap/Midas middle tier - might
be helpful for comparison purposes.
www.digital-metaphors.com/tips/RBEndUserWithDataSnap.zip
- Each DADE plug-in defines a QueryDataView class descendant. If you want to
convert reports from to a new type of DADE plug-in, the templates need to be
edited as tech, to change the class names. The following article discusses
how to do this...
-------------------------------------------------
Tech Tip: Convert BDE Template Dataviews To ADO
-------------------------------------------------
Currently when DADE is used to create dataviews, the DatabaseName is stored
as part of the query definition. (This is consistent with Delphi's approach
to specifying a database connection for a Query object).
When you created the reports originally, the daDBBDE.pas BDE DADE plugin was
used. Now you want to use ADO. You've already changed the
Designer.Datasettings but this had no effect on the old reports. They still
try to use the BDE connection. Changing the Designer.DAtaSettings only works
for new dataviews that are created, because the new query dataviews are
using the daADO.pas ADO DADE plugin.
In order to convert the templates from BDE to ADO, at the minimum you have
to change the database name and the DADE plugin class names that are stored
in the templates. When a BDE dataview is created, its class type is a
TdaBDEQueryDataview. When an ADO dataview is created, its class type is
TdaADOQueryDataview. These class types are stored in the template. These
have to be changed before the template is loaded into a report.
First, compare a BDE report template to an ADO report template which both
connect to the same database table. Save a BDE and an ADO based report
template to separate ASCII text files. Now compare the dataview definitions.
Change the TdaBDEQueryDataview class name to TdaADOQueryDataview in the BDE
template. Change the BDE alias to your ADOConnection object. Then compare
the table name and field names of the BDE template to the ADO template and
change them accordingly, removing the .db extension on the table name is
necessary. Now load the converted BDE template in your ADO end user
application.
The first step is to make a backup of all your templates before continuing
with a programatic approach. You can convert the templates programatically
by loading the ASCII template files to a TStringList object. Then loop
through the lines of the list and change the text programatically. You can
loop through the files in a directory using ppFileUtils.pas calling the
GetFileNamesForDirectory procedure to load the file names.
If you have binary report templates, you'll also be able to convert these
with an extra couple of steps. You can load the binary template file into
ASCII format, modify it, and then save it back to binary as shown in the
example links below. Keep in mind the conversion is performed without
loading the report template into a TppReport.
This example shows how to load reports stored to the ReportExplorer database
tables and convert them to ascii text.
http://www.digital-metaphors.com/tips/EditTemplatesAsText.zip
This example shows how to convert an .rtm file to asii text
http://www.digital-metaphors.com/tips/ConvertBinaryTemplateToASCII.zip
--
Tech Support mailto:support@digital-metaphors.com
Digital Metaphors http://www.digital-metaphors.com
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com