Delphi 如何在xe7中更改fastreport布局

Delphi 如何在xe7中更改fastreport布局,delphi,delphi-xe,delphi-xe7,fastreport,Delphi,Delphi Xe,Delphi Xe7,Fastreport,我想根据数据集值更改fast report中的布局或波段,在fastreport 5.0中如何做到这一点,我正在使用delphiXE7 如果是汽车票,我想打印汽车,如果是自行车,我想打印自行车详细信息,我的数据集有所有订单的值,其中一些订单可能有汽车和自行车票,因此,当我生成报告时(报告是我应用程序的票)基于数据集值如果它的汽车我想显示汽车图像,如果它的自行车基于数据集值和不同的风格显示不同的自行车图像,如何做到这一点 或者这可以通过更改.fr3文件来实现 with frxCODOrder

我想根据数据集值更改fast report中的布局或波段,在fastreport 5.0中如何做到这一点,我正在使用delphiXE7
如果是汽车票,我想打印汽车,如果是自行车,我想打印自行车详细信息,我的数据集有所有订单的值,其中一些订单可能有汽车和自行车票,因此,当我生成报告时(报告是我应用程序的票)基于数据集值如果它的汽车我想显示汽车图像,如果它的自行车基于数据集值和不同的风格显示不同的自行车图像,如何做到这一点

或者这可以通过更改.fr3文件来实现

  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();

但是上面的代码生成,并且只打印或生成第一张车票pdf。

我希望报告的布局根据我的数据集值进行更改。我尝试了上面的方法,但没有帮助,我的目的是,当汽车票来时,我想显示一个文本对象,当自行车票来时,而不是文本对象,我想在报告布局中显示图像对象附加您的CarTicketPdf.fr3和BikeTicketPdf.fr3,准备好的报告(fp3)和您想要得到的示例。最好基于standart Delphi的组件和本地数据库(如MS Access MDB)创建一个小的演示项目:如果FieldByName('draw_name'),你会得到什么:
如果FieldByName('draw_name')。如果FieldByName('draw_name')。如果FieldByName('draw_name')。如果FieldByName('draw_name'),你会得到什么?
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();