📄 datasearch.pas
字号:
unit DataSearch;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
BaseDialog, Db, StdCtrls, Buttons, Grids, DBGrids, DBTables, Variants;
type
TfmDataSearch = class(TfmBaseDialog)
EDA: TEdit;
Label1: TLabel;
EDB: TComboBox;
Label2: TLabel;
dsTemp: TDataSource;
cbFieldName: TComboBox;
EDC: TCheckBox;
procedure gdBrowseDblClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure EDAChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmDataSearch: TfmDataSearch;
implementation
uses Loading, PublicFunction;
{$R *.DFM}
procedure TfmDataSearch.gdBrowseDblClick(Sender: TObject);
begin
inherited;
ModalResult:= mrOK;
end;
procedure TfmDataSearch.FormActivate(Sender: TObject);
var
i : Integer;
begin
//DataSe里的字段物件的排列顺序是由0算起的,所以总数要用FieldCount - 1
for i := 0 to dsTemp.DataSet.FieldCount - 1 do
begin
//如果字段物件的Tag为1, 则不加入EDB与cbfieldName
if dsTemp.DataSet.Fields[i].Tag = 1 then
Continue;
//记录字段的说明
EDB.Items.Add(dsTemp.DataSet.Fields[i].DisplayLabel);
//记录对应的字段在DataSet的顺序
cbFieldName.Items.Add(IntToStr(i));
{字段说明(EDB)与字段索引(cbFieldName)的顺序是一样的}
end;
{预设一次显示所有可查询的字段清单}
EDB.DropDownCount := dsTemp.DataSet.FieldCount;
{给与预设的查询字段}
EDB.ItemIndex := 0;
end;
procedure TfmDataSearch.EDAChange(Sender: TObject);
var
iLocation : Integer;
begin
inherited;
//查询的数据如果是空白,就直接离开不处理
if Trim(EDA.Text) = '' then Exit;
//目前是那一个字段被选取
iLocation := StrToInt(cbFieldName.Items[EDB.ItemIndex]);
//系统里面就只有两种数据类型:字符串与浮点数
if VarType(dsTemp.DataSet.Fields[iLocation].Value) <> varString then
//字段类型为浮点数,就没有部分寻找的功能
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -