pub.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 219 行
PAS
219 行
unit pub;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids, ImgList,
ToolWin, OleCtrls, Menus, adodb,Quickrpt,qrextra, ppCtrls, ppBands,
ppClass, ppPrnabl, ppProd, ppReport, ppDB, ppComm, ppRelatv, ppCache,
ppDBPipe, ppViewr,ppTypes, ppVar, ppModule, daDatMod, ppDBBDE;
type
TFormpub = class(TForm)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
tbnsort: TToolButton;
tbnfind: TToolButton;
tbsButton: TToolButton;
ToolButton4: TToolButton;
DBNavigator1: TDBNavigator;
ImageList1: TImageList;
PopupMenu1: TPopupMenu;
stob: TMenuItem;
btos: TMenuItem;
exe: TMenuItem;
esc: TMenuItem;
DBGrid1: TDBGrid;
procedure tbnsortClick(Sender: TObject);
procedure stobClick(Sender: TObject);
procedure btosClick(Sender: TObject);
procedure exeClick(Sender: TObject);
procedure escClick(Sender: TObject);
procedure tbnfindClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ToolButton4Click(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1TitleClick(Column: TColumn);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
manyfield:boolean;
findex:array[1..5] of integer;
fsort:array[1..5] of string;
fcount:0..5;
dbgrid:0..2;
f:string; //排序的字段
angry:0..2;
end;
var
Formpub: TFormpub;
implementation
uses datamol, main,publicfunction, canfind;
{$R *.DFM}
procedure TFormpub.tbnsortClick(Sender: TObject);
var i:1..5;
begin
if manyfield then
begin
manyfield:=false;
tbnsort.hint:='设定多字段排序';
popupmenu1.Items[0].Enabled :=false;
popupmenu1.Items[1].Enabled :=false;
popupmenu1.Items[2].Enabled :=false;
popupmenu1.Items[3].Enabled :=false;
end
else begin
manyfield:=true;
tbnsort.hint:='取消多字段排序'; //说明现在dbgrid1正处于多字段排序中
f:='';
popupmenu1.Items[0].Enabled :=true;
popupmenu1.Items[1].Enabled :=true;
popupmenu1.Items[2].Enabled :=true;
popupmenu1.Items[3].Enabled :=true;
fcount:=0;
for i:=1 to 5 do
begin
findex[i]:=0;
fsort[i]:='';
end;
end;
end;
procedure TFormpub.stobClick(Sender: TObject);
var i:integer;
db:Tdbgrid;
begin
db:=TDBGrid(Findcomponent('DBGrid1'));
for i:=1 to fcount do
if db.SelectedIndex =findex[i] then
begin
fsort[i]:='ASC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=db.selectedindex;
fsort[fcount]:='ASC';
db.Columns[db.selectedindex].Color :=clgray;
end;
end;
procedure TFormpub.btosClick(Sender: TObject);
var i:integer;
db:Tdbgrid;
begin
db:=TDBGrid(Findcomponent('DBGrid1'));
for i:=1 to fcount do
if db.SelectedIndex =findex[i] then
begin
fsort[i]:='DESC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=db.selectedindex;
fsort[fcount]:='DESC';
db.Columns[db.selectedindex].Color :=clgray;
end;
end;
procedure TFormpub.exeClick(Sender: TObject);
var i:1..5;
db:Tdbgrid;
begin
db:=TDBGrid(Findcomponent('DBGrid1'));
TADODataset(DBGrid1.Datasource.dataset).Sort:='';
for i:=1 to fcount do
begin
if db.Columns[findex[i]].Color=clgray then
begin
TADODataset(DBGrid1.Datasource.dataset).Sort :=TADODataset(DBGrid1.Datasource.dataset).Sort+db.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then TADODataset(DBGrid1.Datasource.dataset).Sort:=TADODataset(DBGrid1.Datasource.dataset).Sort+',';
end;
end;
end;
procedure TFormpub.escClick(Sender: TObject);
var i:1..5;
begin
for i:=1 to fcount do
TDBGrid(Findcomponent('DBGrid1')).Columns[findex[i]].Color :=clwindow;
fcount:=0;
end;
procedure TFormpub.tbnfindClick(Sender: TObject);
var tablename,sql,s1,s2:string;
d:TADODataset;
begin
d:=TADODataset(TDBGrid(Findcomponent('DBGrid1')).DataSource.DataSet);
sql:=d.CommandText;
s1:=trim(copy(sql,pos('from',sql)+4,length(sql)-pos('from',sql)+4));
s2:=copy(s1,1,pos(' ',s1)-1);
tablename:=s2;
findrecorder(TADODataset(DBGrid1.Datasource.dataset),TDBGrid(Findcomponent('DBGrid1')).DataSource.DataSet.Name,tablename); //调用publicfuction中的查询功能
end;
procedure TFormpub.FormCreate(Sender: TObject);
begin
f:='ASC';
if Findcomponent('DBGrid1')<>nil then
begin
DBGrid1.PopupMenu:=popupmenu1;
DBNavigator1.DataSource:=TDBGrid(Findcomponent('DBGrid1')).DataSource;
end;
TDBGrid(Findcomponent('DBGrid1')).DataSource.DataSet.Open;
end;
procedure TFormpub.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TDBGrid(Findcomponent('DBGrid1')).DataSource.DataSet.close;
action:=cafree;
end;
procedure TFormpub.ToolButton4Click(Sender: TObject);
begin
close;
end;
procedure TFormpub.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
dbgrid_keypress(sender,key);
end;
procedure TFormpub.DBGrid1TitleClick(Column: TColumn);
var db:Tdbgridsort;
begin
if angry=2 then
begin
angry:=0;
exit;
end;
db:=Tdbgridsort.create; //调用排序
db.sort(column,TADODataset(DBGrid1.datasource.dataset),f);
db.free;
angry:=1;
end;
procedure TFormpub.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
selectnext(activecontrol,true,true);
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?