如何在xe7中更改fastreport布局

时间:2017-03-09 06:12:12

标签: delphi delphi-xe delphi-xe7 fastreport

我想根据数据集值更改快速报告中的布局或波段,如何在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。

1 个答案:

答案 0 :(得分:0)

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