📄 customerfilter.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 + -