Hi All, Could someone please tell me how I can load the clients modified end-user report instead of the report I originally designed. At the moment they have to manually change the report to the one they built. Thanks Regards Colin
If the clients report is stored in the report explorer database, see the following article..
--------------------------------------------------------------- Tech Tip: How to Programmatically Load Reports that were Saved using the Report Explorer ---------------------------------------------------------------
1. The ReportExplorer has a run-time interface you can use to load reports using the ReportExplorer.LoadReport method. You can use this method without actually 'showing' the report explorer form. (See the online help topic for TppReportExplorer.)
2. If you want use Report.Template.LoadFromDatabase, RB will locate the report stored in the database table based upon the NameField value only. However, for the rb_item table you need Folder_Id, Name to locate a record uniquely.
To override this default behavior, assign an event-handler to the Report.Template.OnLocateRecord event.
procedure TmyForm.FormCreate(Sender, TObject); begin {assign the event handler} FReport.Template.OnLocateRecord := ReportLocateRecordEvent;
end;
function TmyForm.ReportLocateRecordEvent(Sender: TObject; const aReportName: String): Boolean; begin {add logic here to locate the record and return True if it is found}
Result := myLocateReportFunction(FFolderid, aReportname);
Comments
I do not understand the question.
If the clients report is stored in an .rtm file, you can load it using
myReport.Template.FileName := 'myClientsReport.rtm';
myReport.Template.LoadFromFile;
If the clients report is stored in the report explorer database, see the
following article..
---------------------------------------------------------------
Tech Tip: How to Programmatically Load Reports that were Saved
using the Report Explorer
---------------------------------------------------------------
1. The ReportExplorer has a run-time interface you can use to load reports
using the ReportExplorer.LoadReport method. You can use this method without
actually 'showing' the report explorer form. (See the online help topic for
TppReportExplorer.)
2. If you want use Report.Template.LoadFromDatabase, RB will locate the
report stored in the database table based upon the NameField value only.
However, for the rb_item table you need Folder_Id, Name to locate a record
uniquely.
To override this default behavior, assign an event-handler to the
Report.Template.OnLocateRecord event.
example:
TmyForm = class(TForm)
private
function ReportLocateRecordEvent(Sender: TObject; const aReportName:
String): Boolean;
end;
procedure TmyForm.FormCreate(Sender, TObject);
begin
{assign the event handler}
FReport.Template.OnLocateRecord := ReportLocateRecordEvent;
end;
function TmyForm.ReportLocateRecordEvent(Sender: TObject; const aReportName:
String): Boolean;
begin
{add logic here to locate the record and return True if it is found}
Result := myLocateReportFunction(FFolderid, aReportname);
end;
--
Nard Moseley
Digital Metaphors
http://www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com