I want to change the Layout or band in fast report depending upon the dataset value ,how can be this done in fastreport 5.0 AND I am using delphiXE7
If it's a car ticket I want to print car and if its bike I want to print the bike details ,My data set have values of all orders in which some orders may have car and bike tickets so , When I generate the report (report is the ticket for my application) based on the data set value if its car I want to show car images and if its bike different images of bike based on data set values and different style how can this be done?
OR This can be done by changing the .fr3 file?
with frxCODOrdersDBDataset.DataSet do
begin
First;
while not Eof do
begin
if FieldByName('draw_name').AsString='CAR_TICKET' then
begin
frxCODOrdersReport.LoadFromFile(ExtractFilePath(Application.ExeName) + '\WebTicketPdf\CarTicketPdf.fr3');
frxCODOrdersReport.PrepareReport();
end
else if FieldByName('draw_name').AsString='BIkE_TICKET' then
begin
frxCODOrdersReport.LoadFromFile(ExtractFilePath(Application.ExeName) + '\WebTicketPdf\BikeTicketPdf.fr3');
end;
Next;
end;
end;
Screen.Cursor := crDefault; // Or you can restore a saved cursor.
frxCODOrdersReport.ShowReport();
But above code generates and this prints or generates only first car ticket pdf only .
解决方案var IsFirst: Boolean;
with frxCODOrdersDBDataset.DataSet do
begin
First;
IsFirst := True;
while not Eof do
begin
if FieldByName('draw_name').AsString='CAR_TICKET' then
begin
frxCODOrdersReport.LoadFromFile(ExtractFilePath(Application.ExeName) + '\WebTicketPdf\CarTicketPdf.fr3');
frxCODOrdersReport.PrepareReport(IsFirst);
end
else if FieldByName('draw_name').AsString='BIkE_TICKET' then
begin
frxCODOrdersReport.LoadFromFile(ExtractFilePath(Application.ExeName) + '\WebTicketPdf\BikeTicketPdf.fr3');
frxCODOrdersReport.PrepareReport(IsFirst);
end;
if IsFirst then IsFirst := False;
Next;
end;
end;
Screen.Cursor := crDefault; // Or you can restore a saved cursor.
frxCODOrdersReport.ShowPreparedReport();