📄 selclient.pas
字号:
unit SelClient;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ComCtrls, StdCtrls, ExtCtrls, Buttons, DB, ADODB,Theme;
type
TFrm_SelClient = class(TBaseForm)
GroupBox1: TGroupBox;
StatusBar1: TStatusBar;
Label1: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label2: TLabel;
Notebook1: TNotebook;
Edit1: TEdit;
DateTimePicker1: TDateTimePicker;
Label3: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
ADODataSet1: TADODataSet;
DataSource1: TDataSource;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
ADODataSet2: TADODataSet;
DataSource2: TDataSource;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
procedure FormShow(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
BaseCon:TStrings;
public
{ Public declarations }
end;
var
Frm_SelClient: TFrm_SelClient;
implementation
uses DM;
{$R *.dfm}
procedure TFrm_SelClient.FormShow(Sender: TObject);
var
i:Integer;
begin
ADODataSet1.Close;
ADODataSet1.Open;
ADODataSet2.Close;
ADODataSet2.Open;
ComboBox2.Clear;
BaseCon:=ComboBox2.Items;
BaseCon.BeginUpdate;
BaseCon.Add(' < ');
BaseCon.Add(' > ');
BaseCon.Add(' <> ');
BaseCon.Add(' = ');
BaseCon.Add(' >= ');
BaseCon.Add(' <= ');
BaseCon.EndUpdate;
Notebook1.PageIndex:=0;
ComboBox1.Clear;
for i:=0 to DBGrid1.Columns.Count-1 do
begin
with DBGrid1 do
begin
if Columns[i].Field.DataType in [ftString, ftSmallint, ftInteger, ftWord,
ftFloat, ftCurrency,ftWideString,ftLargeint,
ftDate, ftTime, ftDateTime] then
ComboBox1.Items.Add(Columns[i].Title.Caption);
Next;
end;
end;
end;
procedure TFrm_SelClient.ComboBox1Change(Sender: TObject);
begin
ComboBox2.Clear;
BaseCon:=ComboBox2.Items;
BaseCon.BeginUpdate;
BaseCon.Add(' < ');
BaseCon.Add(' > ');
BaseCon.Add(' <> ');
BaseCon.Add(' = ');
BaseCon.Add(' >= ');
BaseCon.Add(' <= ');
BaseCon.EndUpdate;
with DBGrid1.Columns[ComboBox1.itemIndex].Field do
if DataType in [ftSmallint, ftInteger, ftWord,
ftFloat, ftCurrency,ftLargeint] then
begin
Notebook1.PageIndex:=0;
end
else if DataType in [ftString,ftWideString] then
begin
BaseCon.BeginUpdate;
BaseCon.Add(' Like ');
BaseCon.Add(' Not Like ');
BaseCon.EndUpdate;
Notebook1.PageIndex:=0;
end
else if DataType in [ftDate, ftTime, ftDateTime] then
begin
Notebook1.PageIndex:=1;
end;
end;
procedure TFrm_SelClient.SpeedButton3Click(Sender: TObject);
begin
Close;
end;
procedure TFrm_SelClient.SpeedButton2Click(Sender: TObject);
begin
ADODataSet1.Filtered:=False;
ADODataSet1.Filter:='';
ADODataSet1.Filtered:=True;
end;
procedure TFrm_SelClient.SpeedButton1Click(Sender: TObject);
var
SQLStr:string;
begin
if ComboBox1.Text='' then
begin
Application.MessageBox('查询字段不能为空!','明日科技');
ComboBox1.SetFocus;
Exit;
end;
if ComboBox2.Text='' then
begin
Application.MessageBox('查询条件不能为空!','明日科技');
ComboBox2.SetFocus;
Exit;
end;
case Notebook1.PageIndex of
0 :begin
if Edit1.Text='' then
begin
Application.MessageBox('查询的值不能为空!','明日科技');
Edit1.SetFocus;
Exit;
end;
end;
1 :begin
//什么也不用做
end;
end;
if (Trim(ComboBox2.Text)='Like') or (Trim(ComboBox2.Text)='Not Like') then
begin
SQLStr:=DBGrid1.Columns[ComboBox1.ItemIndex].FieldName+ComboBox2.Text+Quotedstr(Edit1.Text);
end
else if (Notebook1.PageIndex=1) then
begin
SQLStr:=DBGrid1.Columns[ComboBox1.ItemIndex].FieldName+ComboBox2.Text+QuotedStr(DateTimeToStr(DateTimePicker1.DateTime));
end
else
begin
SQLStr:=DBGrid1.Columns[ComboBox1.ItemIndex].FieldName+ComboBox2.Text+Edit1.Text;
end;
ADODataSet1.Filtered:=False;
ADODataSet1.Filter:=SQLStr;
ADODataSet1.Filtered:=True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -