Qdte de Registros Filtrados
Se alguém souber me ajude...
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
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
Curtidas 0
Respostas
Adilsond
05/12/2003
No after open da sua query voce guarda a quantidade total de registros em uma variável:
QtdTotReg := MinhaQuery.RecordCount;
Após a filtragem voce pode efetuar uma subtração para saber quantos registros foram filtrados:
QtdRegFilter := QtdTotReg - MinhaQuery.RecordCount;
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
Pedro Dias
05/12/2003
Testei mas não deu certo
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
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
Adilsond
05/12/2003
Qual a versão do seu Delphi? Qual componente de acesso aos dados estas utilizando?
Testei com Delphi 3 e 5. TQuery e funcionou perfeitamente. Seque código abaixo:
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