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

📄 unitsearch.pas

📁 一个不错的系统
💻 PAS
字号:
unit UnitSearch;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, DBCtrls, Grids, DBGrids, Mask, ADODB,
  ToolWin, ComCtrls, ImgList, DB, Buttons, DBTables;

type
  TFrmSearch = class(TForm)
    DBNavigator2: TDBNavigator;
    Panel1: TPanel;
    edtTagNO: TEdit;
    edtName: TEdit;
    bbtnSearch: TBitBtn;
    Label38: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    Label42: TLabel;
    Label43: TLabel;
    Label44: TLabel;
    cmbGender: TComboBox;
    Label45: TLabel;
    cmbCurArea: TComboBox;
    cmbRegArea: TComboBox;
    bbtnClose: TBitBtn;
    cmbContract: TComboBox;
    Label46: TLabel;
    Label47: TLabel;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    MaskEdit1: TMaskEdit;
    MaskEdit2: TMaskEdit;
    MaskEdit3: TMaskEdit;
    MaskEdit4: TMaskEdit;
    Label52: TLabel;
    Edit3: TEdit;
    Label53: TLabel;
    ScrollBox1: TScrollBox;
    Label59: TLabel;
    Label60: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    DBGrid1: TDBGrid;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure bbtnCloseClick(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    procedure bbtnSearchClick(Sender: TObject);
    procedure MaskEdit1Exit(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmSearch: TFrmSearch;

implementation

uses UnitDatabase, UnitDetail;

{$R *.dfm}

procedure TFrmSearch.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  ADOQuery1.Active:=false;
  Action:=caFree;
end;

procedure TFrmSearch.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=13 then Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TFrmSearch.FormCreate(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select MID,MTagNO,MName,MGender,MBirthday,MMarrigae,MPolitics,MMember,MEducation,MTitle,MNative,MFolk,MProvince,MCity,MPolice,MIDCardNO,MTel,MRegAdd,MRegPostalcode,MRegArea');
  ADOQuery1.SQL.Add(',MCurAdd,MCurPostalcode,MCurArea,MInDate,MDuty,MJob,MStartWorkDate,MSalary,MWork,MContract,MPWork,MIncome,MMemo,MFName1,MFName2,MFName3,MFName4,MFName5');
  ADOQuery1.SQL.Add(',MFAppellation1,MFAppellation2,MFAppellation3,MFAppellation4,MFAppellation5,MFFactory1,MFFactory2,MFFactory3,MFFactory4,MFFactory5,MF1,MF2,MF3,MF4,MF5,MFType,MF6,MF7,MF8 from Employee order by MTagNO');
  ADOQuery1.Open;
  if ADOQuery1.RecordCount<>0 then
    Label52.Caption:='第'+IntToStr(ADOQuery1.RecNo)+'条/共'+IntToStr(ADOQuery1.RecordCount)+'条'
  else
    Label52.Caption:='第0条/共0条';
end;

procedure TFrmSearch.bbtnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TFrmSearch.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  if ADOQuery1.RecordCount<>0 then
    Label52.Caption:='第'+IntToStr(ADOQuery1.RecNo)+'条/共'+IntToStr(ADOQuery1.RecordCount)+'条'
  else
    Label52.Caption:='第0条/共0条';
end;

procedure TFrmSearch.bbtnSearchClick(Sender: TObject);
var
  TmpSQL:String;
begin
  TmpSQL:='where MTagNO<>''''';
  if Trim(edtTagNO.Text)<>'' then begin
    if Trim(Edit3.Text)<>'' then begin
      TmpSQL:=TmpSQL+' and MTagNO>='''+Trim(edtTagNO.Text)+''' and MTagNO<='''+Trim(Edit3.Text)+'''';
    end else begin
      TmpSQL:=TmpSQL+' and MTagNO like '''+Trim(edtTagNO.Text)+'''';
    end;
  end;
  if Trim(edtName.Text)<>'' then TmpSQL:=TmpSQL+' and MName like '''+Trim(edtName.Text)+'''';
  if cmbGender.ItemIndex>0 then TmpSQL:=TmpSQL+' and MGender like '''+Trim(cmbGender.Text)+'''';
  if cmbContract.ItemIndex>0 then TmpSQL:=TmpSQL+' and MContract like '''+Trim(cmbContract.Text)+'''';
  if cmbRegArea.ItemIndex>0 then TmpSQL:=TmpSQL+' and MRegArea like '''+Trim(cmbRegArea.Text)+'''';
  if cmbCurArea.ItemIndex>0 then TmpSQL:=TmpSQL+' and MWork like '''+Trim(cmbCurArea.Text)+'''';
  if ComboBox1.ItemIndex>0 then TmpSQL:=TmpSQL+' and MF5 like '''+Trim(ComboBox1.Text)+'''';
  if ComboBox2.ItemIndex>0 then TmpSQL:=TmpSQL+' and MF8 like '''+Trim(ComboBox2.Text)+'''';
  if Trim(MaskEdit1.Text)<>'-  -' then begin
    if Trim(MaskEdit2.Text)<>'-  -' then begin
      TmpSQL:=TmpSQL+' and MBirthday between #'+MaskEdit1.Text+'# and #'+MaskEdit2.Text+'#';
    end else begin
      TmpSQL:=TmpSQL+' and MBirthday>=#'+MaskEdit1.Text+'#';
    end;
  end else begin
    if Trim(MaskEdit2.Text)<>'-  -' then begin
      TmpSQL:=TmpSQL+' and MBirthday<=#'+MaskEdit2.Text+'#';
    end;
  end;
  if Trim(MaskEdit3.Text)<>'-  -' then begin
    if Trim(MaskEdit4.Text)<>'-  -' then begin
      TmpSQL:=TmpSQL+' and MStartWorkDate between #'+MaskEdit3.Text+'# and #'+MaskEdit4.Text+'#';
    end else begin
      TmpSQL:=TmpSQL+' and MStartWorkDate>=#'+MaskEdit3.Text+'#';
    end;
  end else begin
    if Trim(MaskEdit4.Text)<>'-  -' then begin
      TmpSQL:=TmpSQL+' and MStartWorkDate<=#'+MaskEdit4.Text+'#';
    end;
  end;
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select MID,MTagNO,MName,MGender,MBirthday,MMarrigae,MPolitics,MMember,MEducation,MTitle,MNative,MFolk,MProvince,MCity,MPolice,MIDCardNO,MTel,MRegAdd,MRegPostalcode,MRegArea');
  ADOQuery1.SQL.Add(',MCurAdd,MCurPostalcode,MCurArea,MInDate,MDuty,MJob,MStartWorkDate,MSalary,MWork,MContract,MPWork,MIncome,MMemo,MFName1,MFName2,MFName3,MFName4,MFName5');
  ADOQuery1.SQL.Add(',MFAppellation1,MFAppellation2,MFAppellation3,MFAppellation4,MFAppellation5,MFFactory1,MFFactory2,MFFactory3,MFFactory4,MFFactory5,MF1,MF2,MF3,MF4,MF5,MFType,MF6,MF7,MF8 from Employee ');
  ADOQuery1.SQL.Add(TmpSQL+' order by MTagNO');
  ADOQuery1.Open;
  if ADOQuery1.RecordCount<>0 then
    Label52.Caption:='第'+IntToStr(ADOQuery1.RecNo)+'条/共'+IntToStr(ADOQuery1.RecordCount)+'条'
  else
    Label52.Caption:='第0条/共0条';
end;

procedure TFrmSearch.MaskEdit1Exit(Sender: TObject);
begin
  try
    if Trim((Sender as TMaskEdit).Text)<>'-  -' then StrToDate((Sender as TMaskEdit).Text);
  except
    (Sender as TMaskEdit).SetFocus;
  end;
end;

procedure TFrmSearch.DBGrid1DblClick(Sender: TObject);
begin
  frmDetail:=TfrmDetail.Create(self);
  try
    ADOQuery1.Filter:='MID='+ADOQuery1.FieldByName('MID').AsString;
    ADOQuery1.Filtered:=true;
    frmDetail.ShowModal;
  finally
    ADOQuery1.Filtered:=false;
    frmDetail.Free;
  end;
end;

end.

⌨️ 快捷键说明

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