📄 bsearch.pas
字号:
unit Bsearch;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Base_DLL, StdCtrls, Grids, DBGridEh, wwdbedit, Mask, DB, DBClient,
ComCtrls;
type
TfrmSearch = class(TfrmBase_DLL)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
btnexit: TButton;
btnsearch: TButton;
btncleartiao: TButton;
btnsettiao: TButton;
grid: TDBGridEh;
filename: TLabel;
Label1: TLabel;
Label2: TLabel;
tiaovalue: TwwDBEdit;
tiaoset: TComboBox;
CDSgrid: TClientDataSet;
DSgrid: TDataSource;
CDSgridfid: TAutoIncField;
CDSgridftableName: TWideStringField;
CDSgridfname: TWideStringField;
CDSgridftype: TWideStringField;
CDSgridflength: TIntegerField;
CDSgridfisnullable: TBooleanField;
CDSgridfdesc: TWideStringField;
CDSgridfisvisible: TBooleanField;
listtiao: TListView;
rband: TRadioButton;
rbor: TRadioButton;
procedure btnexitClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure gridGetCellParams(Sender: TObject; Column: TColumnEh;
AFont: TFont; var Background: TColor; State: TGridDrawState);
procedure FormCreate(Sender: TObject);
procedure tiaosetChange(Sender: TObject);
procedure DSgridDataChange(Sender: TObject; Field: TField);
procedure btnsettiaoClick(Sender: TObject);
procedure btncleartiaoClick(Sender: TObject);
procedure btnsearchClick(Sender: TObject);
procedure gridTitleBtnClick(Sender: TObject; ACol: Integer;
Column: TColumnEh);
private
procedure AddComboData;
procedure GetgridData;
{ Private declarations }
public
{ Public declarations }
end;
var
frmSearch: TfrmSearch;
implementation
uses DataProcess, Global;
{$R *.dfm}
procedure TfrmSearch.AddComboData;
begin
tiaoset.Items.Add('包含');
tiaoset.Items.Add('大于');
tiaoset.Items.Add('小于');
end;
procedure TfrmSearch.btnexitClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TfrmSearch.FormDestroy(Sender: TObject);
begin
inherited;
frmSearch:=nil;
end;
procedure TfrmSearch.gridGetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
inherited;
if grid.SumList.RecNo mod 2=1 then
BackGround:=$00EAEFED
else
BackGround:=clWhite;
end;
procedure TfrmSearch.FormCreate(Sender: TObject);
begin
inherited;
AddComboData;
GetgridData;
tiaoset.Text:='';
tiaovalue.Text:='';
rbor.Checked:=False;
rband.Checked:=True;
end;
procedure TfrmSearch.tiaosetChange(Sender: TObject);
begin
inherited;
tiaovalue.SetFocus;
end;
procedure TfrmSearch.GetgridData;
begin
Getsqldata(CDSgrid,'TTableField','fid','ftablename='+vartosql(FromInterface));
cdsgrid.First;
end;
procedure TfrmSearch.DSgridDataChange(Sender: TObject; Field: TField);
begin
inherited;
filename.Caption:=CDSgrid['fdesc'];
end;
procedure TfrmSearch.btnsettiaoClick(Sender: TObject);
var
SQL:TListItem;
begin
inherited;
if (Trim(tiaoValue.Text)='') then
begin
messagedlg('查找条件不能为空 ! ',mtError,[mbok],0);
Exit;
end;
if Trim(tiaoset.Text)='' then
begin
messagedlg('查找值不能为空 ! ',mtError,[mbok],0);
Exit;
end;
if Trim(tiaoset.Text)='包含' then
begin
if Searchtiao='' then
begin
Searchtiao:=CDSgrid.fieldbyname('fname').AsString+space(2)+
'like'+space(2)+
Vartosql('%'+Trim(tiaovalue.Text)+'%')+space(2);
end
else
begin
if rband.Checked then
Searchtiao:=Searchtiao+space(2)+' and '+
CDSgrid.fieldbyname('fname').AsString+space(2)+
'like'+space(2)+
Vartosql('%'+Trim(tiaovalue.Text)+'%')+space(2)
else
Searchtiao:=Searchtiao+space(2)+' or '+
CDSgrid.fieldbyname('fname').AsString+space(2)+
'like'+space(2)+
Vartosql('%'+Trim(tiaovalue.Text)+'%')+space(2)
end;
Sql:=Listtiao.Items.Add;
if listtiao.Items.Count > 1 then
begin
if rband.Checked then
Sql.Caption:='并且'
else
Sql.Caption:='或者';
end
else
sql.Caption:='';
Sql.Subitems.Add(CDSGrid.fieldbyname('fdesc').AsString);
sql.SubItems.Add(trim(tiaoset.Text));
Sql.SubItems.Add(Trim(tiaovalue.Text));
end
else
if Trim(tiaoset.Text)='大于' then
begin
if Searchtiao='' then
begin
Searchtiao:=CDSgrid.fieldbyname('fname').AsString+space(2)+
'>'+space(2)+
Vartosql(Trim(tiaovalue.Text))+space(2);
end
else
begin
if rband.Checked then
Searchtiao:=Searchtiao+space(2)+' and '+
CDSgrid.fieldbyname('fname').AsString+space(2)+
'>'+space(2)+
Vartosql(Trim(tiaovalue.Text))+space(2)
else
Searchtiao:=Searchtiao+space(2)+' or '+
CDSgrid.fieldbyname('fname').AsString+space(2)+
'>'+space(2)+
Vartosql(Trim(tiaovalue.Text))+space(2);
end;
Sql:=Listtiao.Items.Add;
if listtiao.Items.Count > 1 then
begin
if rband.Checked then
Sql.Caption:='并且'
else
Sql.Caption:='或者';
end
else
sql.Caption:='';
Sql.Subitems.Add(CDSGrid.fieldbyname('fdesc').AsString);
sql.SubItems.Add(trim(tiaoset.Text));
Sql.SubItems.Add(Trim(tiaovalue.Text));
end
else
if Trim(tiaoset.Text)='小于' then
begin
if Searchtiao='' then
begin
Searchtiao:=CDSgrid.fieldbyname('fname').AsString+space(2)+
'<'+space(2)+
Vartosql(Trim(tiaovalue.Text))+space(2);
end
else
begin
if rband.Checked then
Searchtiao:=Searchtiao+space(2)+' and '+
CDSgrid.fieldbyname('fname').AsString+space(2)+
'<'+space(2)+
Vartosql(Trim(tiaovalue.Text))+space(2)
else
Searchtiao:=Searchtiao+space(2)+' or '+
CDSgrid.fieldbyname('fname').AsString+space(2)+
'<'+space(2)+
Vartosql(Trim(tiaovalue.Text))+space(2);
end;
Sql:=Listtiao.Items.Add;
if listtiao.Items.Count > 1 then
begin
if rband.Checked then
Sql.Caption:='并且'
else
Sql.Caption:='或者';
end
else
sql.Caption:='';
Sql.Subitems.Add(CDSGrid.fieldbyname('fdesc').AsString);
sql.SubItems.Add(trim(tiaoset.Text));
Sql.SubItems.Add(Trim(tiaovalue.Text));
end;
end;
procedure TfrmSearch.btncleartiaoClick(Sender: TObject);
begin
inherited;
Searchtiao:='';
Listtiao.Items.Clear;
tiaoset.Text:='';
tiaovalue.Text:='';
rband.Checked:=true;
rbor.Checked:=false;
end;
procedure TfrmSearch.btnsearchClick(Sender: TObject);
begin
inherited;
Searchtiao:=Trim(Searchtiao);
Close;
end;
procedure TfrmSearch.gridTitleBtnClick(Sender: TObject; ACol: Integer;
Column: TColumnEh);
var
sortstring:string;
begin
inherited;
with Column do
begin
if FieldName = '' then
Exit;
case Title.SortMarker of
smNoneEh:
begin
Title.SortMarker := smDownEh;
sortstring := Column.FieldName + ' ASC';
end;
smDownEh: sortstring := Column.FieldName + ' ASC';
smUpEh: sortstring := Column.FieldName + ' DESC';
end;
try
CDSGrid.IndexFieldNames:= sortstring
except
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -