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

📄 productfilter.pas

📁 产品信息系统!关于产品基础信息的系统!功能强大!
💻 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 + -