unit Unit1guolv;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB;type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    RadioGroup1: TRadioGroup;
    ADODataSet2: TADODataSet;
    Button2: TButton;
    Button3: TButton;
    procedure ADODataSet1AfterOpen(DataSet: TDataSet);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
    procedure showallrecno;
    procedure showcurrentrecno;
    procedure filterroutine(dataset:TDataset;var accept: Boolean);
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ADODataSet1AfterOpen(DataSet: TDataSet);
begin
  showallrecno;
  rgcities.items.add('所有城市');//在RADIOGROUP中加入所有城市的项目
  //把数据表的城市名称加入到radiogroup
  try
    adodataset2.Active:=true;
    adodataset2.First;
    while not adodataset2.Eof do
    begin
      rgcities.items.add(adodataset2.Fields[0].AsString);
      adodataset2.Next;
    end;
    finally
    adodataset2.Active:=false;
  end;
  rgcities.itemindex:=0;
end;procedure TForm1.Button1Click(Sender: TObject);
var
   scity: string;
begin
   //取出目前被选择的城市名称
   scity:=rgcities.items.strings[rgcities.itemindex];
   //检查是否是所有的城市
   if (scity='所有城市') then
      adodataset1.filtered:=false
   else
      try
      adodataset1.filtered:=false;
      adodataset1.filter:='城市='+''''+scity+'''';
      finally
      adodataset1.filtered:=true;
   showcurrentno(adodataset1.recordcount);
end;procedure TForm1.showallrecno;
begin
 edit1.text:=inttostr(adodataset1.recordcount);
end;procedure TForm1.showcurrentrecno;
begin
  edit2.text:=inttostr(adodataset1.recordcount);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
  try
    adodataset1.Filtered:=false;
    adodataset1.OnFilterRecord:=filterroutine;
  finally
    adodataset1.Filtered:=true;
  end;
end;procedure TForm1.filterroutine(dataset:TDataset;var accept:boolean);
var
   scompany:string;
begin
   scompany:=dataset.fieldbyname('公司名称').asstring;
   if ((pos('银行',scompany)<>0)or
       (pos('企银',scompany)<>0) or
       (pos('信托',scompany)<>0)) then
       accept:=true
   else
      accept:=false;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  adodataset1.OnFilterRecord:=nil;
end;end.
[Error] Unit1guolv.pas(48): Undeclared identifier: 'rgcities'
[Error] Unit1guolv.pas(69): ']' expected but identifier 'itemindex' found
[Error] Unit1guolv.pas(71): ';' expected but 'IF' found
[Error] Unit1guolv.pas(80): '.' expected but ';' found
[Hint] Unit1guolv.pas(32): Private symbol 'showcurrentrecno' declared but never used

解决方案 »

  1.   

    [Error] Unit1guolv.pas(48): Undeclared identifier: 'rgcities'
    //没有定义“rgcities”类型,是否应该把RadioGroup1名称改成rgcities[Error] Unit1guolv.pas(69): ']' expected but identifier 'itemindex' found
    //把RadioGroup1名称改成rgcities应该就不会出现这个错误了。  //取出目前被选择的城市名称
       scity:=rgcities.items.strings[rgcities.itemindex];
       //检查是否是所有的城市
       if (scity='所有城市') then
          adodataset1.filtered:=false
       else
          try
          adodataset1.filtered:=false;
          adodataset1.filter:='城市='+''''+scity+'''';
          finally
    //这里没有写上end;
          adodataset1.filtered:=true;[Error] Unit1guolv.pas(71): ';' expected but 'IF' found
    [Error] Unit1guolv.pas(80): '.' expected but ';' found[Hint] Unit1guolv.pas(32): Private symbol 'showcurrentrecno' declared but never used
    //这是提示,提示你的方法“showcurrentrecno”定义了但没有使用