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

📄 searchs_unit.pas

📁 很不错的软件请使用
💻 PAS
字号:
unit searchs_unit;

interface

uses
  Windows, Messages,Grids, DBGrids, Controls, StdCtrls,
  Classes, ExtCtrls, SysUtils, Variants,  Graphics, Forms,
  Dialogs, DBCtrls, Buttons, TFlatButtonUnit, TFlatSplitterUnit, DB, ADODB,
  DBActns, ActnList, XPMenu, DBTables, RXCtrls, ComCtrls;

type
  Tsearchs = class(Tform)
    Panel1: TPanel;
    Label3: TLabel;
    Edit1: TEdit;
    ComboBox1: TComboBox;
    DBGrid1: TDBGrid;
    BitBtn1: TBitBtn;
    FlatButton1: TFlatButton;
    BitBtn2: TBitBtn;
    FlatButton2: TFlatButton;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    ComboBox2: TComboBox;
    GetTitle: TADOTable;
    BitBtn3: TBitBtn;
    ActionList1: TActionList;
    DataSetFirst1: TDataSetFirst;
    DataSetPrior1: TDataSetPrior;
    DataSetNext1: TDataSetNext;
    DataSetLast1: TDataSetLast;
    DataSetInsert1: TDataSetInsert;
    DataSetDelete1: TDataSetDelete;
    DataSetPost1: TDataSetPost;
    DataSetCancel1: TDataSetCancel;
    DataSetRefresh1: TDataSetRefresh;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    BitBtn10: TBitBtn;
    GetFieldsNameTable: TADOTable;
    Label1: TLabel;
    Label4: TLabel;
    RxLabel1: TRxLabel;
    PreviewTable: TADOTable;
    FlatButton3: TFlatButton;
    XPMenu1: TXPMenu;
    DBImage1: TDBImage;
    procedure onclose(Sender: TObject; var Action: TCloseAction);
    procedure onshow(Sender: TObject);
    procedure FlatButton2Click(Sender: TObject);
    procedure FlatButton1Click(Sender: TObject);
    procedure oncreate(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure ADOQuery1FetchProgress(DataSet: TCustomADODataSet; Progress,
      MaxProgress: Integer; var EventStatus: TEventStatus);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  searchs: Tsearchs;

implementation

uses printView, MainFormUnit, MainDataModule;

{$R *.dfm}

procedure Tsearchs.onclose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
mainform.StatusBar1.Panels[3].Text:='';
end;

procedure Tsearchs.onshow(Sender: TObject);
var
TitleCount,i:integer;
TitleName:string;
ListFields:string;
begin
 i:=0;
 try
  //取得DBGIRD的TITLE
  ListFields:=ListFieldsSelect+',';  //不改变原初始值
  GetTitle.Active:=false;
  Gettitle.TableName:='FieldsNewName';
  GetTitle.Active:=true;
  while pos(',',ListFields)>0 do
   begin
    TitleCount:=pos(',',ListFields);
    TitleName:=copy(ListFields,1,titlecount-1);
    TitleName:=GetTitle.Fieldbyname(Titlename).asstring;
    dbgrid1.Columns[i].Title.caption:=TitleName;
    i:=i+1;
    ListFields:=copy(ListFields,titlecount+1,length(listfields));
    end;
   GetTitle.Active:=false;
   except
  end;
end;

procedure Tsearchs.FlatButton2Click(Sender: TObject);
begin
close;
end;

procedure Tsearchs.FlatButton1Click(Sender: TObject);
begin
 with ADOQuery1 do
  begin
     close;
{cursortype:=ctKeyset;
executeoptions:=[eoasyncfetch];
CursorLocation:=clUseClient; }
   sql.clear;
   sql.Add('select');
   sql.Add(ListFieldsSelect);
   sql.Add('from MainDataTable order by 编号');
   open;
   mainform.StatusBar1.Panels[3].Text:='查询记录数:'+inttostr(recordcount);
  end;
end;

procedure Tsearchs.oncreate(Sender: TObject);
var
ListFields:string;
TitleName:string;
TitleCount:integer;
begin
 try
 with ADOQuery1 do
  begin
   close;
   sql.clear;
   sql.Add('select');
   sql.Add(ListFieldsSelect);
   sql.Add('from MainDataTable order by 编号');
   open;
 end;
  ComboBox1.Clear;
  ListFields:=ListFieldsSelect+',';  //不改变原初始值
  GetTitle.Active:=false;
  Gettitle.TableName:='FieldsNewName';
  GetTitle.Active:=true;
  while pos(',',ListFields)>0 do
   begin
    TitleCount:=pos(',',ListFields);
    TitleName:=copy(ListFields,1,titlecount-1);
    TitleName:=GetTitle.Fieldbyname(Titlename).asstring;
    combobox1.Items.Add(TitleName);
    ListFields:=copy(ListFields,titlecount+1,length(listfields));
    end;
  ComboBox1.ItemIndex:=0;
  ComboBox2.ItemIndex:=0;
  Edit1.Text:='';
 except
  MessageBox(Handle,'数据库占用或非法操作!','系统信息',MB_OK+MB_ICONWARNING);
  exit;
 end;
end;

procedure Tsearchs.BitBtn3Click(Sender: TObject);
var
fstr,OldFieldsTitle:string;
i:integer;
begin
 //回朔标题 
 GetFieldsNameTable.Active:=false;
 GetFieldsNameTable.TableName:='FieldsNewName';
 GetFieldsNameTable.Active:=true;
 for i:=0 to GetFieldsNameTable.FieldCount-1 do
 begin
  if GetFieldsNameTable.Fields[i].asstring=combobox1.Text then
  begin
   OldFieldsTitle:=GetFieldsNameTable.Fields[i].FieldName;
  end;
 end;
  if combobox1.ItemIndex<>0 then
   begin
    case ComboBox2.ItemIndex of
    0: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'='''+edit1.text+''' order by '+OldFieldsTitle;
    1: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+' like ''%'+edit1.text+'%'' order by '+OldFieldsTitle;
    2: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'>'''+edit1.text+''' order by '+OldFieldsTitle;
    3: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'<'''+edit1.text+''' order by '+OldFieldsTitle;
    4: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'<>'''+edit1.text+''' order by '+OldFieldsTitle;
   end;
  end else
   begin
   try
   strtoint(edit1.text);
   except
   MessageBox(Handle,'输入的查询条件不合法!','系统信息',MB_OK+MB_ICONWARNING);
   exit;
   end;
    case ComboBox2.ItemIndex of
    0: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'='+edit1.text+' order by '+OldFieldsTitle;
    1: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+' like ''%'+edit1.text+'%'' order by '+OldFieldsTitle;
    2: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'>'+edit1.text+' order by '+OldFieldsTitle;
    3: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'<'+edit1.text+' order by '+OldFieldsTitle;
    4: fstr:='select '+ListFieldsSelect+' from MainDataTable where '+OldFieldsTitle+'<>'+edit1.text+' order by '+OldFieldsTitle;
   end;
  end;
 with ADOQuery1 do
  begin
    close;
    SQL.Clear;
    SQL.Add(fstr);
    Prepared;
    Open;
    mainform.StatusBar1.Panels[3].Text:='查询记录数:'+inttostr(RecordCount);
  end;
end;

procedure Tsearchs.BitBtn2Click(Sender: TObject);
begin
with Printv do
 begin
 try
  previewtable.Active:=false;
  previewtable.TableName:='FieldsNewName';
  previewtable.Active:=true;
  with PreviewTable do
   begin
   previewBh.Caption:=fields[0].asstring;
   PreviewName.Caption:=fields[2].asstring;
   previewId.Caption:=fields[1].asstring;
   previewSex.Caption:=fields[3].asstring;
   previewHome.Caption:=fields[5].asstring;
   previewCompany.Caption:=fields[6].asstring;
   previewAddress.Caption:=fields[8].asstring;
   previewTime.Caption:=fields[9].asstring;
   PrintBh.DataField:='编号';
   PrintName.DataField:='姓名';
   PrintId.DataField:='身份证号';
   printHome.DataField:='户籍地址';
   PrintAddress.DataField:='暂住地址';
   PrintCompany.DataField:='工作单位';
   PrintSex.DataField:='性别';
   PrintTime.DataField:='暂住时间';
   PrintBh.DataSet:=ADOquery1;
   PrintName.DataSet:=ADOquery1;
   PrintId.DataSet:=ADOquery1;
   printHome.DataSet:=ADOquery1;
   PrintAddress.DataSet:=ADOquery1;
   PrintCompany.DataSet:=ADOquery1;
   PrintSex.DataSet:=ADOquery1;
   PrintTime.DataSet:=ADOquery1;
   end;
 except;
 end;
 TitleName.Caption:=MainAppPrintTitle;
 Quickrep1.ReportTitle:=MainAppPrintTitle;
 MemoString.Caption:=MainAppPrintMemo;
 QuickRep1.DataSet:=ADOquery1;
 if sender = bitbtn2 then
    QuickRep1.preview
    else
    QuickRep1.Print;
 end;
end;
procedure Tsearchs.ADOQuery1FetchProgress(DataSet: TCustomADODataSet;
  Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
begin
//
end;

end.

⌨️ 快捷键说明

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