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