📄 search.pas
字号:
unit Search;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, XPMenu, ExtCtrls, Buttons, DB, ADODB, DBCtrls,
dbcgrids;
type
TfrmSearch = class(TForm)
XPMenu1: TXPMenu;
ADOQry_PhoneNoteSearch: TADOQuery;
ADOQry_SysTableSet: TADOQuery;
ADOQry_SysTableSetTable_Name: TWideStringField;
ADOQry_SysTableSetClass: TWideStringField;
ADOQry_SysTableSetName: TWideStringField;
ADOQry_SysTableSetPhoneNum1: TWideStringField;
ADOQry_SysTableSetPhoneNum2: TWideStringField;
ADOQry_SysTableSetFax: TWideStringField;
ADOQry_SysTableSetHomePhone: TWideStringField;
ADOQry_SysTableSetMobilePhone: TWideStringField;
ADOQry_SysTableSetEmail: TWideStringField;
ADOQry_SysTableSetUnit: TWideStringField;
ADOQry_SysTableSetOfficeAdd: TWideStringField;
ADOQry_SysTableSetCommAdd: TWideStringField;
ADOQry_SysTableSetPost: TWideStringField;
ADOQry_SysTableSetRetic: TWideStringField;
ADOQry_SysTableSetQQNum: TWideStringField;
ADOQry_SysTableSetBz: TWideStringField;
sgrdString: TStringGrid;
Panel1: TPanel;
Label2: TLabel;
Label1: TLabel;
edtSearch: TEdit;
cmbxSearch: TComboBox;
Bevel1: TBevel;
bit_Search: TBitBtn;
bit_Select: TBitBtn;
bit_AllSelect: TBitBtn;
bit_Close: TBitBtn;
Bevel2: TBevel;
Bevel3: TBevel;
Panel13: TPanel;
procedure sgrdStringDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure FormShow(Sender: TObject);
procedure bit_SearchClick(Sender: TObject);
procedure edtSearchKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
procedure sgr_Refresh;
{ Private declarations }
public
function SearchPar:string;
{ Public declarations }
end;
var
frmSearch: TfrmSearch;
ResultPar:string;
implementation
{$R *.dfm}
uses SM_MsgDLL, ADOSM_Data, SM_Msgp;
procedure TfrmSearch.sgr_Refresh;
begin
sgrdString.RowCount:=2;
sgrdString.Rows[1].Clear;
end;
function TfrmSearch.SearchPar:string;
begin
end;
procedure TfrmSearch.sgrdStringDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
OldAlign,
OldBkMode,
OldTextColor:Integer;
Text_Height, X, Y:Integer;
begin
Inherited;
with sgrdString.Canvas do
begin
if ((ACol=1)or(ACol=2))and(State=[]) then
Font.Color:=clBlack;
FillRect(Rect);
OldBkMode:=SetBkMode(Handle, OPAQUE);
OldAlign:=SetTextAlign(Handle, TA_Center);
Text_Height:=TextHeight('Test');
X:=(Rect.Left+Rect.Right) div 2+1;
Y:=(Rect.Bottom+Rect.Top-Text_Height) div 2;
if Y<0 then Y:=0;
OldTextColor:=Font.Color;
if (ARow=0)or(ACol=0) then
begin
Font.Color:=clWhite;
TextOut(X+1, Y+1, sgrdString.Cells[ACol, ARow]);
end;
Font.Color:=OldTextColor;
TextOut(X, Y, sgrdString.Cells[ACol, ARow]);
SetTextAlign(Handle, OldAlign);
SetBkMode(Handle, OldBkMode);
end;
end;
procedure TfrmSearch.FormShow(Sender: TObject);
var
i:integer;
begin
cmbxSearch.Clear;
with ADOQry_SysTableSet do
begin
Close;
Parameters.ParamByName('FTableName').Value:='PhoneNote';
Open;
end;
if ADOQry_SysTableSet.RecordCount>0 then
for i:=0 to ADOQry_SysTableSet.FieldCount-2 do
begin
sgrdString.Cells[i,0]:=ADOQry_SysTableSet.Fields[i+1].Text;
cmbxSearch.Items.Add(ADOQry_SysTableSet.Fields[i+1].Text);
end;
end;
procedure TfrmSearch.bit_SearchClick(Sender: TObject);
var
Search_Value,sqlStr:string;
i:integer;
begin
sgr_Refresh;
sqlstr:='select * from PhoneNote where ';
Search_Value:=Trim(edtSearch.Text);
if search_value<>'' then
begin
i:=cmbxSearch.ItemIndex;
sqlstr:=sqlstr+ADOQry_SysTableSet.Fields[i+1].FieldName+' like ';
sqlstr:=sqlstr+''''+search_Value+'%''';
i:=1;
with ADOQry_PhoneNoteSearch do
begin
Close;
SQL.Clear;
SQL.Add(sqlstr);
ExecSql;
Open;
end;
if ADOQry_PhoneNoteSearch.RecordCount>0 then
while not ADOQry_PhoneNoteSearch.Eof do
begin
with sgrdString do
begin
Cells[0,i]:=ADOQry_PhoneNoteSearch.Fields[1].Value;
Cells[1,i]:=ADOQry_PhoneNoteSearch.Fields[2].Value;
Cells[2,i]:=ADOQry_PhoneNoteSearch.Fields[3].Value;
Cells[3,i]:=ADOQry_PhoneNoteSearch.Fields[4].Value;
Cells[4,i]:=ADOQry_PhoneNoteSearch.Fields[5].Value;
Cells[5,i]:=ADOQry_PhoneNoteSearch.Fields[6].Value;
Cells[6,i]:=ADOQry_PhoneNoteSearch.Fields[7].Value;
Cells[7,i]:=ADOQry_PhoneNoteSearch.Fields[8].Value;
Cells[8,i]:=ADOQry_PhoneNoteSearch.Fields[9].Value;
Cells[9,i]:=ADOQry_PhoneNoteSearch.Fields[10].Value;
Cells[10,i]:=ADOQry_PhoneNoteSearch.Fields[11].Value;
Cells[11,i]:=ADOQry_PhoneNoteSearch.Fields[12].Value;
Cells[12,i]:=ADOQry_PhoneNoteSearch.Fields[13].Value;
Cells[13,i]:=ADOQry_PhoneNoteSearch.Fields[14].Value;
end;
ADOQry_PhoneNoteSearch.Next;
inc(i);
sgrdString.RowCount:=sgrdString.RowCount+1;
end else
begin
ErrorMsg(1,'没有所查询的记录!');
exit;
end;
sgrdString.RowCount:=sgrdString.RowCount-1;
end else ErrorMsg(1,'查询值不能为空!');
end;
procedure TfrmSearch.edtSearchKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_RETURN) then bit_Search.OnClick(nil);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -