Loading images into a template
Hi
I have a report that I load the company logo in from a file at runtime. For
flexiblity the customer would like to re-arrange the report layout, so i
used the template functionality and loaded that at run time. My problem now
is i do not know how to reference that image in the template so that i can
load the logo image at runtime aswell.
I have used the following code to load the template.
i_Report.Template.FileName := i_TemplateFile;
i_Report.Template.LoadFromFile;
The code I used to load the image when not using the template was
DTReport.imgBloodAuthority.Picture.LoadFromFile(
'T:\Resources\Graphics\bmp\NBSLogo.bmp');
Can someone show me the code to load the image into a loaded template,
please
Cheers
George
I have a report that I load the company logo in from a file at runtime. For
flexiblity the customer would like to re-arrange the report layout, so i
used the template functionality and loaded that at run time. My problem now
is i do not know how to reference that image in the template so that i can
load the logo image at runtime aswell.
I have used the following code to load the template.
i_Report.Template.FileName := i_TemplateFile;
i_Report.Template.LoadFromFile;
The code I used to load the image when not using the template was
DTReport.imgBloodAuthority.Picture.LoadFromFile(
'T:\Resources\Graphics\bmp\NBSLogo.bmp');
Can someone show me the code to load the image into a loaded template,
please
Cheers
George
This discussion has been closed.
Comments
You are going to want to use the template event OnLoadEnd to loop through
each component in your report and assign the image once you find the proper
image component. Take a look at the following articles.
----------------------------------------------
Tech Tip: Using Template Events
----------------------------------------------
The Report.Template object has several events that can be used for
customizing what happens when a report is loaded or saved:
- OnLoadStart
- OnLoadEnd
- OnNew
- OnSaveStart
- OnSaveEnd
The OnLoadEnd and OnNew events are often used to perform actions related
to report and data initialization.
The OnSaveEnd event is often used to save additional descriptive
("meta") data to the database each time the report is saved.
Example:
The Report.Template events are public and therefore must be assigned at
run-time.
1. In the private section of your form declaration you can declare an
event-handler method:
TForm = class(TForm)
private
procedure myTemplateOnLoadEndEvent(Sender: TObject);
public
end;
2. In the Form.OnCreate event, you can assign the event-handler to the
event:
procedure TForm1.FormCreate(Sender: TObject);
begin
ppReport1.Template.OnLoadEnd := myTemplateOnLoadEndEvent;
end;
3. Implement the event-handler method:
procedure TForm1.myTemplateOnLoadEndEvent(Sender: TObject);
begin
{add code here to initial the report or data, etc. }
ppReport1.PrinterSetup.MarginTop := 0.5;
end;
----------------------------------------------
Tech Tip: Loop Thru All Objects in a Report
---------------------------------------------
A ReportBuilder report is composed of a set
of components. The basic structure is
Reports.Bands[].Objects[]
The bands and objects within the report can
be accessed directly by object name or
via the Bands and Objects array properties.
Below is an example of using the Bands and
Objects array properties to change the font for
all objects on a report.
uses
ppClass;
procedure AssignFontToReport(aFont: TFont; aReport: TppCustomReport);
var
liBand: Integer;
liObject: Integer;
lObject: TppComponent;
begin
for liBand := 0 to aReport.BandCount-1 do
for liObject := 0 to aReport.Bands[liBand].ObjectCount-1 do
begin
lObject := aReport.Bands[liBand].Objects[liObject];
if lObject.HasFont then
lObject.Font := aFont;
end;
end;
--
Regards,
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com