📄 productfilter.pas
字号:
unit ProductFilter;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DailogBase, StdCtrls, dxdbtrel, DB, ADODB, ExtCtrls, Buttons,
Grids, Wwdbigrd, Wwdbgrid, DBGrids;
type
TfrmProductFilter = class(TfrmDailogBase)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Panel1: TPanel;
edtCode: TEdit;
edtName: TEdit;
QProductType: TADOQuery;
QProductTypefID: TAutoIncField;
QProductTypefParentID: TIntegerField;
QProductTypefCode: TWideStringField;
QProductTypefName: TWideStringField;
dsProductType: TDataSource;
lktvTypeCode: TdxDBLookupTreeView;
lblNO: TLabel;
Label4: TLabel;
QProducts: TADOQuery;
dsProducts: TDataSource;
btFilter: TBitBtn;
btOk: TBitBtn;
btCancel: TBitBtn;
btClear: TBitBtn;
DBGrid1: TDBGrid;
QProductsfID: TAutoIncField;
QProductsfCode: TWideStringField;
QProductsfTypeCode: TWideStringField;
QProductsfName: TWideStringField;
QProductsfSpec: TWideStringField;
QProductsfColor: TWideStringField;
QProductsfUnitsName: TWideStringField;
procedure FormCreate(Sender: TObject);
procedure btFilterClick(Sender: TObject);
procedure btClearClick(Sender: TObject);
procedure btCancelClick(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 DBGrid1DblClick(Sender: TObject);
private
sSql, sFilter: string;
bClick: Boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
frmProductFilter : TfrmProductFilter;
implementation
uses DataModule;
{$R *.dfm}
procedure TfrmProductFilter.FormCreate(Sender: TObject);
begin
inherited;
if not QProductType.Active then QProductType.Open;
sSql := 'Select fid,fCode,fTypeCode,fName,fSpec,fColor,fUnitsName from vProduct';
end;
procedure TfrmProductFilter.btFilterClick(Sender: TObject);
begin
inherited;
sFilter := ' Where';
if Trim(lktvTypeCode.text) <> '' then
begin
sFilter := sFilter + ' fTypeCode like ''' + QProductType.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 QProducts do
begin
Close;
SQL.Clear;
if sFilter <> ' Where' then
SQL.Add(sSql + sFilter)
else
SQL.Add(sSql);
Open;
end;
end;
procedure TfrmProductFilter.btClearClick(Sender: TObject);
begin
inherited;
lktvTypeCode.text := '';
edtCode.text := '';
edtName.text := '';
QProducts.Close;
end;
procedure TfrmProductFilter.btCancelClick(Sender: TObject);
begin
inherited;
bClick := True;
ModalResult := -1;
end;
procedure TfrmProductFilter.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//inherited;
//frmProductFilter:=Nil;
end;
procedure TfrmProductFilter.FormShow(Sender: TObject);
begin
inherited;
bClick := false;
//btClearClick(Self)
end;
procedure TfrmProductFilter.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
inherited;
CanClose := bClick;
end;
procedure TfrmProductFilter.btOkClick(Sender: TObject);
begin
inherited;
if QProducts.Active and (QProducts.RecordCount > 0) then
begin
bClick := True;
ModalResult := QProducts.FieldbyName('fID').asInteger;
end;
end;
procedure TfrmProductFilter.DBGrid1DblClick(Sender: TObject);
begin
inherited;
btOkClick(self)
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -