📄 basesearch.~pa
字号:
unit BaseSearch;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
BaseDialog, Db, StdCtrls, Buttons, Grids, DBGrids, DBTables, fcButton,
fcImgBtn, fcShapeBtn;
type
TfmBaseSearch = class(TfmBaseDialog)
gdBrowse: TDBGrid;
EDA: TEdit;
Label1: TLabel;
EDB: TComboBox;
Label2: TLabel;
bnRefresh: TBitBtn;
dsTemp: TDataSource;
bnEdit: TBitBtn;
procedure EDBChange(Sender: TObject);
procedure EDAChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure qyTempBeforeOpen(DataSet: TDataSet);
procedure bnRefreshClick(Sender: TObject);
procedure gdBrowseDblClick(Sender: TObject);
private
{ Private declarations }
FSQL, FOrderSQL : String;
function GetSQL: String;
procedure SetSQL(ASQL: String);
procedure SetOrderBySQL(AOrderSQL: String);
public
{ Public declarations }
property SQLText : String read GetSQL write SetSQL;
property OrderBySQL : String write SetOrderBySQL;
procedure OpenDB; virtual;
end;
var
fmBaseSearch: TfmBaseSearch;
implementation
uses Loading, Main, PublicFunction;
{$R *.DFM}
procedure TfmBaseSearch.FormCreate(Sender: TObject);
var
i : Integer;
begin
inherited;
try
fmLoading := TfmLoading.Create(Self);
fmLoading.Show;
fmLoading.Update;
SQLText := qyTemp.SQL.Text;
FOrderSQL := ' ';
qyTemp.Close;
OpenDB;
qyTemp.Open;
for i := 0 to qyTemp.FieldCount - 1 do
EDB.Items.Add(qyTemp.Fields[i].DisplayLabel);
EDB.DropDownCount := qyTemp.FieldCount;
EDB.ItemIndex := 0;
finally
fmLoading.Hide;
fmLoading.Update;
fmLoading.Free;
end;
end;
procedure TfmBaseSearch.EDBChange(Sender: TObject);
begin
inherited;
try
qyTemp.DisableControls;
fmLoading := TfmLoading.Create(Self);
fmLoading.Show;
fmLoading.Update;
qyTemp.Close;
OrderBySQL := qyTemp.Fields[EDB.ItemIndex].FieldName;
qyTemp.SQL.Text := SQLText;
qyTemp.Open;
finally
qyTemp.EnableControls;
fmLoading.Hide;
fmLoading.Update;
fmLoading.Free;
end;
end;
procedure TfmBaseSearch.EDAChange(Sender: TObject);
begin
inherited;
qyTemp.Locate(qyTemp.Fields[EDB.ItemIndex].FieldName, LeftStr(EDA.Text, qyTemp.Fields[EDB.ItemIndex].Size), [loCaseInsensitive, loPartialKey]);
end;
function TfmBaseSearch.GetSQL: String;
begin
Result := FSQL + FOrderSQL;
end;
procedure TfmBaseSearch.SetOrderBySQL(AOrderSQL: String);
begin
if Trim(AOrderSQL) = '' then
FOrderSQL := ' '
else
FOrderSQL := ' ORDER BY ' + AOrderSQL;
end;
procedure TfmBaseSearch.SetSQL(ASQL: String);
begin
FSQL := ASQL
end;
procedure TfmBaseSearch.OpenDB;
begin
//
end;
procedure TfmBaseSearch.qyTempBeforeOpen(DataSet: TDataSet);
begin
inherited;
qyTemp.ParamByName('CompanyID').AsString := sCompanyID;
end;
procedure TfmBaseSearch.bnRefreshClick(Sender: TObject);
begin
inherited;
try
fmLoading := TfmLoading.Create(Self);
fmLoading.Show;
fmLoading.Update;
qyTemp.Close;
qyTemp.Open;
finally
fmLoading.Hide;
fmLoading.Update;
fmLoading.Free;
end;
end;
procedure TfmBaseSearch.gdBrowseDblClick(Sender: TObject);
begin
inherited;
ModalResult:= mrOK;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -