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

📄 customerfilter.pas

📁 产品信息系统!关于产品基础信息的系统!功能强大!
💻 PAS
字号:
unit CustomerFilter;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DailogBase, DB, ADODB, StdCtrls, Buttons, Grids, DBGrids,
  ExtCtrls, dxdbtrel;

type
  TfrmCustomerFilter = class(TfrmDailogBase)
    QArea: TADOQuery;
    QAreafID: TAutoIncField;
    QAreafCode: TWideStringField;
    QAreafName: TWideStringField;
    QAreafParentID: TIntegerField;
    dsArea: TDataSource;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    lblNO: TLabel;
    Label4: TLabel;
    edtCode: TEdit;
    edtName: TEdit;
    lktvArea: TdxDBLookupTreeView;
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    btFilter: TBitBtn;
    btOk: TBitBtn;
    btCancel: TBitBtn;
    btClear: TBitBtn;
    QCustomer: TADOQuery;
    dsProvider: TDataSource;
    QCustomerfID: TAutoIncField;
    QCustomerfCode: TWideStringField;
    QCustomerfAreaCode: TWideStringField;
    QCustomerfName: TWideStringField;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure btOkClick(Sender: TObject);
    procedure btCancelClick(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure btClearClick(Sender: TObject);
    procedure btFilterClick(Sender: TObject);
  private
    sSql, sFilter: string;
    bClick: Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCustomerFilter : TfrmCustomerFilter;

implementation

{$R *.dfm}

procedure TfrmCustomerFilter.FormCreate(Sender: TObject);
begin
  inherited;
  if not QArea.Active then QArea.Open;
  sSql := 'Select fid,fCode,fAreaCode,fName from vCustomer';
end;

procedure TfrmCustomerFilter.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  //inherited;
  //frmProviderFilter:=nil;
end;

procedure TfrmCustomerFilter.FormShow(Sender: TObject);
begin
  inherited;
  bClick := false;
  //btClearClick(Self)
end;

procedure TfrmCustomerFilter.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  CanClose := bClick;
end;

procedure TfrmCustomerFilter.btOkClick(Sender: TObject);
begin
  inherited;
  if QCustomer.Active and (QCustomer.RecordCount > 0) then
  begin
    bClick := True;
    ModalResult := QCustomer.FieldbyName('fID').asInteger;
  end;
end;

procedure TfrmCustomerFilter.btCancelClick(Sender: TObject);
begin
  inherited;
  bClick := True;
  ModalResult := -1;
end;

procedure TfrmCustomerFilter.DBGrid1DblClick(Sender: TObject);
begin
  inherited;
  btOkClick(self)
end;

procedure TfrmCustomerFilter.btClearClick(Sender: TObject);
begin
  inherited;
  lktvArea.text := '';
  edtCode.text := '';
  edtName.text := '';
  QCustomer.Close;
end;

procedure TfrmCustomerFilter.btFilterClick(Sender: TObject);
begin
  inherited;
  sFilter := ' Where';
  if Trim(lktvArea.text) <> '' then
  begin
    sFilter := sFilter + ' fAreaCode like ''' + QArea.FieldbyName('fCode').asString + '%''';
  end;
  if Trim(edtCode.text) <> '' then
  begin
    if sFilter <> ' Where' then sFilter := sFilter + ' and';
    if pos('%', edtCode.text) > 0 then
      sFilter := sFilter + ' fCode like ''' + Trim(edtCode.text) + ''''
    else
      sFilter := sFilter + ' fCode=''' + Trim(edtCode.text) + '''';
  end;
  if Trim(edtName.text) <> '' then
  begin
    if sFilter <> ' Where' then sFilter := sFilter + ' and';
    if pos('%', edtName.text) > 0 then
      sFilter := sFilter + ' fName like ''' + Trim(edtName.text) + ''''
    else
      sFilter := sFilter + ' fName=''' + Trim(edtName.text) + '''';
  end;

  with QCustomer do
  begin
    Close;
    SQL.Clear;
    if sFilter <> ' Where' then
      SQL.Add(sSql + sFilter)
    else
      SQL.Add(sSql);
    Open;
  end;
end;

end.

⌨️ 快捷键说明

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