DevExpress CxGrid ComponentPrinter:如何删除打印文档上的<filter is =“” empty =“”>行?

时间:2019-05-09 09:47:55

标签: delphi devexpress tcxgrid

我正在测试DevExpress的打印系统以打印Grid(cxgrid),该打印系统可以正常工作,但是在打印的文档上有一行文字:

<Filter is Empty>

我的问题是如何删除此行?

procedure TFormMain.Btn_PrintClick(Sender: TObject);
procedure ReportPageSetUp(APL          : TBasedxReportLink;
                                APaperSize   : Integer;
                                AOrientation : Integer;
                                AFitToPage   : Boolean;
                                ATitle       : String;
                                ACenterTitle : String;
                                ATitleFont   : String;
                                AFontStyle   : TFontStyles;
                                ATitleSize   : Integer);


begin
  APL.PrinterPage.DMPaper:=APaperSize;


  case AOrientation of
   0 : APL.PrinterPage.Orientation:=dxPrnDev.poPortrait;
   1 : APL.PrinterPage.Orientation:=dxPrnDev.poLandscape;
  end;


  APL.ShrinkToPageWidth:=AFitToPage;
  APL.ReportTitle.Text:=ATitle;
  APL.PrinterPage.PageHeader.LeftTitle.Clear;
  APL.PrinterPage.PageHeader.CenterTitle.Clear;
  APL.PrinterPage.PageHeader.RightTitle.Clear;
  APL.PrinterPage.PageHeader.Font.Name:=ATitleFont;
  APL.PrinterPage.PageHeader.Font.Style:=AFontStyle;
  APL.PrinterPage.PageHeader.Font.Size:=ATitleSize;
  APL.PrinterPage.PageHeader.LeftTitle.Add('username');
  APL.PrinterPage.PageHeader.CenterTitle.Add(ACenterTitle);
  APL.PrinterPage.PageHeader.RightTitle.Add('[date printed] [time printed]');


  APL.PrinterPage.ApplyToPrintDevice;
END;
var
  AOrientation: byte;
begin
  AOrientation := Integer(True);
  ReportPageSetUp(dxComponentPrinter1Link1, DMPAPER_A4, AOrientation, true,
                        'Title 1' ,
                       'Title 2',
                       'Times New Roman',[fsBold],10);

  dxComponentPrinter1.Preview(true, dxComponentPrinter1Link1);
end;

1 个答案:

答案 0 :(得分:2)

您可以通过将OptionsView.FilterBar属性设置为False来隐藏报表中的过滤器栏:

dxComponentPrinter1Link1.OptionsView.FilterBar := False;

此外,如果只想在没有过滤器的情况下隐藏过滤器栏,则可以执行以下操作:

dxComponentPrinter1Link1.OptionsView.FilterBar := not dxComponentPrinter1Link1.Grid.ActiveView.DataController.Filter.IsEmpty;