⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filters.pas

📁 用delphi开发的电力调度操作票系统并带有access数据库
💻 PAS
字号:
unit Filters;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids,Common, ExtCtrls, DBCtrls, StdCtrls;

type
  TFilters = class(TComponent)
    ADOTable: TADOTable;
    DBGrid: TDBGrid;
    ParentControl:TWinControl;
    procedure AddEdit;//添加过虑条件输入框
    procedure GetFilter(Sender: TObject);//获取过虑条件
  private
    { Private declarations }
  public
    { Public declarations }
    constructor Create(SADOTable: TADOTable;SDBGrid: TDBGrid;Top:integer); overload;
  end;

var
  Editarr:array of TEdit;
  FilterTop:integer;
implementation
constructor TFilters.Create(SADOTable: TADOTable;SDBGrid: TDBGrid;Top:integer);
begin
  ADOTAble:=SADOTable;
  DBGrid:=SDBGrid;
  ParentControl:=SDBGrid.Parent;
  FilterTop:=Top;
end;

procedure TFilters.GetFilter(Sender:TObject);
var
  i:integer;
begin
  ADOTable.Filter:='';
  for i:=Low(EditArr) to High(EditArr) do
  begin
    if trim(EditArr[i].Text)<>'' then
      if ADOTable.Filter<>'' then
        ADOTable.Filter:=ADOTable.Filter+' and '+DBGrid.Columns[i].FieldName+
                         ' like ''%'+trim(EditArr[i].Text)+'%'''
      else  ADOTable.Filter:=DBGrid.Columns[i].FieldName+
                            ' like ''%'+trim(EditArr[i].Text)+'%''';
  end;
end;

procedure TFilters.AddEdit;
var
  i:integer;
  Labelarr:array of TLabel;
begin
  SetLength(Editarr,DBGrid.Columns.Count);  //设置数组长度
  SetLength(Labelarr,DBGrid.Columns.Count);
  for i:=low(Editarr) to High(Editarr) do
  begin
    Editarr[i]:=TEdit.Create(ParentControl);
    Labelarr[i]:=TLabel.Create(ParentControl);
    //设置字体格式
    Labelarr[i].Font.Name:='宋体';
    Labelarr[i].Font.Size:=10;
    Editarr[i].Parent:=ParentControl;
    EditArr[i].OnChange:=GetFilter;
    Labelarr[i].Parent:=ParentControl;
    Labelarr[i].Top:=FilterTop;
    Editarr[i].Top:=Labelarr[i].Top+Labelarr[i].Height+5;
    Editarr[i].Width:=DBGrid.Columns[i].Width;
    Labelarr[i].Width:=DBGrid.Columns[i].Width;
    Labelarr[i].Caption:=DBGrid.Columns[i].Title.Caption;
    if i=low(Editarr) then
    begin
      Editarr[i].Left:=DBGrid.Left+15;
      Labelarr[i].Left:=DBGrid.Left+15;
    end
    else
    begin
      Editarr[i].Left:=Editarr[i-1].Left+Editarr[i-1].Width;
      Labelarr[i].Left:=Editarr[i-1].Left+Editarr[i-1].Width;
    end;
  end;
  DBGrid.Top:=Editarr[0].Top+Editarr[0].Height+5;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -