Fórum Qdte de Registros Filtrados #199338
05/12/2003
0
Dou um Select, exibo em um grid e tenho um botão para filtrar este select.
Preciso mostra ao usuário qtos registro foram filtrados.
O RecordCount, me mostra o total de registro da minha seleção, independente se esta ou não filtrado.
Como saber quanto registro foram filtrados?
Não quero usar While..., ficaria muito lento..
Obrigado
Pedro Dias
Curtir tópico
+ 0Posts
05/12/2003
Adilsond
QtdTotReg := MinhaQuery.RecordCount;
Após a filtragem voce pode efetuar uma subtração para saber quantos registros foram filtrados:
QtdRegFilter := QtdTotReg - MinhaQuery.RecordCount;
Gostei + 0
05/12/2003
Pedro Dias
A conta sempre da 0 (zero).
Qdo dou o ´Select´ o valor do RecordCount fica com 45
Qdo filtro ou seja Filtered:=True, o RecordCount fica com 45
Ou seja depois do ´select´ filtrando ou não o RecordCount fica com 45
Gostei + 0
05/12/2003
Adilsond
Testei com Delphi 3 e 5. TQuery e funcionou perfeitamente. Seque código abaixo:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, DBGrids, ExtCtrls, DBCtrls, Db, DBTables;
type
TForm1 = class(TForm)
Query1: TQuery;
DataSource1: TDataSource;
DBNavigator1: TDBNavigator;
DBGrid1: TDBGrid;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Query1EmpNo: TIntegerField;
Query1FirstName: TStringField;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Filter := ´FirstName = ´ + QuotedStr(Edit1.Text + ´*´);
Query1.Filtered := Query1.Filter <> ´´;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage(´Registros: ´ + IntToStr(Query1.RecordCount));
end;
end.
object Form1: TForm1
Left = 200
Top = 108
Width = 544
Height = 375
Caption = ´Form1´
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = ´MS Sans Serif´
Font.Style = []
PixelsPerInch = 96
TextHeight = 13
object DBNavigator1: TDBNavigator
Left = 128
Top = 8
Width = 240
Height = 25
DataSource = DataSource1
TabOrder = 0
end
object DBGrid1: TDBGrid
Left = 40
Top = 128
Width = 481
Height = 201
DataSource = DataSource1
TabOrder = 1
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = ´MS Sans Serif´
TitleFont.Style = []
end
object Edit1: TEdit
Left = 200
Top = 88
Width = 121
Height = 21
TabOrder = 2
Text = ´Edit1´
end
object Button1: TButton
Left = 328
Top = 88
Width = 75
Height = 25
Caption = ´Button1´
TabOrder = 3
OnClick = Button1Click
end
object Button2: TButton
Left = 424
Top = 88
Width = 75
Height = 25
Caption = ´Button2´
TabOrder = 4
OnClick = Button2Click
end
object Query1: TQuery
Active = True
DatabaseName = ´DBDemos´
SessionName = ´Default´
SQL.Strings = (
´SELECT EMPLOYEE."EmpNo" , ´
´ EMPLOYEE."FirstName"´
´FROM "EMPLOYEE.DB" EMPLOYEE´)
Left = 24
Top = 8
Data = {
56657220322E302C514245202D20496E74656772612056697375616C20446174
6162617365204275696C6465722C302C2031302C20313630302C20313130362C
2C2C2C2C0D0A202C202C202D2044697374696E637420262051756F74652C2C2C
2C2C0D0A20202020312C202D204E756D626572206F66205461626C65732C2D31
2C202D312C203436332C203333332C203435352C203132332C2C2C2C0D0A454D
504C4F5945452E44422C454D504C4F5945452C32302C2031302C203133372C20
3133352C2C2C2C2C0D0A20202020322C202D204E756D626572206F6620436F6C
756D6E732C2C2C2C2C2C0D0A456D704E6F2C454D504C4F5945452C2020202020
2020202020202020202020202020312C20202020202C202C2C2C0D0A20202020
202C202D204E756D626572206F662043726974657269612C2C2C2C2C2C0D0A46
697273744E616D652C454D504C4F5945452C2020202020202020202020202020
2020202020312C20202020202C202C2C2C0D0A20202020202C202D204E756D62
6572206F662043726974657269612C2C2C2C2C2C0D0A20202020202C202D204E
756D626572206F66204A6F696E732C2C2C2C2C2C0D0A0D0A2253454C45435420
53746174656D656E74220D0A2C2C2C2C2C2C2C0D0A53454C45435409454D504C
4F5945452E22456D704E6F22202C200D0A09454D504C4F5945452E2246697273
744E616D65220D0A46524F4D0922454D504C4F5945452E44422220454D504C4F
5945452C2C2C2C2C2C2C0D0A}
object Query1EmpNo: TIntegerField
CustomConstraint = ´Value > 0´
ConstraintErrorMessage = ´EmpNo cannot be 0 or negative´
FieldName = ´EmpNo´
Origin = ´"EMPLOYEE.DB".EmpNo´
DisplayFormat = ´Emp´#39´´39´ 0000´
MaxValue = 9999
MinValue = 1
end
object Query1FirstName: TStringField
FieldName = ´FirstName´
Origin = ´"EMPLOYEE.DB".FirstName´
Size = 15
end
end
object DataSource1: TDataSource
DataSet = Query1
Left = 56
Top = 8
end
end
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)