... FooterText:=DupeString('бла-',30); ... procedure TForm1.cxGrid1DBTableView1CustomDrawPartBackground( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridCellViewInfo; var ADone: Boolean); var AText: string; R: TRect; begin if AViewInfo is TcxGridFooterViewInfo then begin R := AViewInfo.Bounds; ACanvas.Canvas.FillRect(R); ACanvas.DrawText(FooterText, R, cxAlignLeft or cxAlignVCenter); ADone := True; end; end; procedure TForm1.dxComponentPrinter1Link1CustomDrawFooterCell( Sender: TdxGridReportLink; ACanvas: TCanvas; AView: TcxGridTableView; ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; ALevel: Integer; AnItem: TdxReportCellString; var ADone: Boolean); var ARect: TRect; begin if AColumn <> cxGrid1DBTableView1NAME then Exit; ARect := AnItem.BoundsRect; Sender.DrawText(ACanvas, ARect, 0, FooterText, AnItem.Font, AnItem.Color, taLeft, taCenterY, True, False, False); ADone := True; end; procedure TForm1.dxComponentPrinter1Link1InitializeFooterCell( Sender: TdxGridReportLink; AView: TcxGridTableView; ARecord: TcxCustomGridRecord; AColumn: TcxGridColumn; ALevel: Integer; AnItem: TdxReportCellString); var ARect: TRect; begin if AColumn <> cxGrid1DBTableView1NAME then Exit; ARect := AnItem.BoundsRect; ARect.Right := ARect.Right + AView.ViewInfo.Canvas.TextWidth(FooterText); AnItem.BoundsRect := ARect; end; procedure TForm1.dxComponentPrinter1StartGenerateReport(Sender: TObject; AReportLink: TBasedxReportLink); begin cxGrid1DBTableView1NAME.Summary.FooterKind := skCount; end; procedure TForm1.dxComponentPrinter1EndGenerateReport(Sender: TObject; AReportLink: TBasedxReportLink); begin cxGrid1DBTableView1NAME.Summary.FooterKind := skNone; end; |