Create a EndUserReport from DataSnap
Hello,
When I create a runtime report within a datasnap and editor it controls the strings.
sample:
var LTS_RB_REPORT: TppReport;
LTS_RB_DESIGNER: TppDesigner;
begin
LTS_RB_REPORT := TppReport.Create(application.MainForm);
LTS_RB_DESIGNER := TppDesigner.Create(application.MainForm);
LTS_RB_DESIGNER.Report := LTS_RB_REPORT;
LTS_RB_REPORT.DEVICETYPE:='Screen';
LTS_RB_DESIGNER.SHOWMODAL;
image https://drive.google.com/open?id=1dW-OCr2RIOJENYFoNJ4OdUOeVOZqLk8t
When I create a runtime report within a datasnap and editor it controls the strings.
sample:
var LTS_RB_REPORT: TppReport;
LTS_RB_DESIGNER: TppDesigner;
begin
LTS_RB_REPORT := TppReport.Create(application.MainForm);
LTS_RB_DESIGNER := TppDesigner.Create(application.MainForm);
LTS_RB_DESIGNER.Report := LTS_RB_REPORT;
LTS_RB_REPORT.DEVICETYPE:='Screen';
LTS_RB_DESIGNER.SHOWMODAL;
image https://drive.google.com/open?id=1dW-OCr2RIOJENYFoNJ4OdUOeVOZqLk8t
Comments
Here are tips for implementing RB DataSnap.
1. First step is to implement RB DataSnap Server and Client.
I just updated rbWiki to included the latest RB DataSnap example. (DataSnap has evolved over time and I noticed we had an old example on rbWiki).
http://rbwiki.digital-metaphors.com/end-user/report-explorer/how-to-datasnap/
2. To create a run-time editor, I would implement a Form/DataModule, call it TmyRBEndUserModule. Add the client components at Delphi design-time and implement a method called ShowDesigner. Then at run-time, create an instance of TmyRBEndUserModule and call ShowDesigner.
If you prefer to create and configure all the components in code, the architecture needs to be the same. Create a Form/DataModule that is the 'Owner' of all the components. Configure all the properties the same as you would at Delphi design-time.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com