Multi-tier report generation
Has anyone used RB to create a "Report-server"?
We have a 3-tier application (made with ASTA) and are doing reports on the
server side. As of today, this is limited to a number of static reportes,
that saves into a RAF file that are streamed back to the client.
We not like to extend this to End-user reporting, but we see a number of
issues when this. When the user chooses a report, I need to input parameters
on the client (and thus cannot use AutoSearch etc.), send them to the server
where a print job will generate the appropriate report, with respect to the
parameters..
With regard to the End-user design, we support multiple databases so it
would be nice to be able to store the "Wizard-output" and not the generated
SQL in connection with the report, is that possible?
Cheers,
Lars
We have a 3-tier application (made with ASTA) and are doing reports on the
server side. As of today, this is limited to a number of static reportes,
that saves into a RAF file that are streamed back to the client.
We not like to extend this to End-user reporting, but we see a number of
issues when this. When the user chooses a report, I need to input parameters
on the client (and thus cannot use AutoSearch etc.), send them to the server
where a print job will generate the appropriate report, with respect to the
parameters..
With regard to the End-user design, we support multiple databases so it
would be nice to be able to store the "Wizard-output" and not the generated
SQL in connection with the report, is that possible?
Cheers,
Lars
This discussion has been closed.
Comments
The wizard output can be saved by extracting the datamodule from the report
as a .dtm. These can be loaded by a user from the report explorer, just like
a .rtm, or can be loaded in code. Go into DADE and in the File menu, there
are Import, Export, and Merge menu items.
uses
daDataModule;
...
procedure TForm1.Button1Click(Sender: TObject);
var
lDataModule: TdaDataModule;
begin
ppReport1.Template.LoadFromDatabase;
lDataModule := daGetDataModule(ppReport1);
lDataModule.Free;
lDataModule := TdaDatamodule.Create(Self);
lDataModule.Template.FileName := 'C:\DataModules\Customer.dtm';
lDataModule.Template.LoadFromFile;
lDataModule.Report := ppReport1;
ppReport1.Template.SaveToDatabase;
end;
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com