📄 sjfyfrm.pas
字号:
unit SjfyFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;
type
TFrmSjfy = class(TFrame)
DBGrid: TDBGrid;
btnLast: TButton;
btnNext: TButton;
btnPrior: TButton;
btnFirst: TButton;
txtMsg: TLabel;
DataSource1: TDataSource;
ADODataSet1: TADODataSet;
procedure btnFirstClick(Sender: TObject);
procedure btnPriorClick(Sender: TObject);
procedure btnNextClick(Sender: TObject);
procedure btnLastClick(Sender: TObject);
private
{ Private declarations }
pegenum : Integer;
pagecount,page : Integer;
sqltext : string;
public
{ Public declarations }
procedure beginQuery(sqlcmd:string;pagenums:integer);
published
property pagenumber: Integer read pegenum write pegenum stored true default 10;
end;
implementation
{$R *.dfm}
//开始查询
procedure TFrmSjfy.beginQuery(sqlcmd:string;pagenums:integer);
var
count : integer;
begin
adodataset1.Close;
adodataset1.Filtered := false;
page := 0;
pegenum := pagenums; //每页显示的记录数
adodataset1.CommandText := sqlcmd;
adodataset1.Open;
count := adodataset1.RecordCount;
adodataset1.Filtered := true;
if count = 0 then
begin
txtMsg.Caption := '查无结果';
btnFirst.Enabled := false;
btnPrior.Enabled := false;
btnLast.Enabled := false;
btnNext.Enabled := false;
end
else
begin
if count mod pegenum > 0 then
pagecount := count div pegenum + 1
else
pagecount := count div pegenum;
page := 0;
btnFirstclick(btnFirst);
end;
end;
procedure TFrmSjfy.btnFirstClick(Sender: TObject);
begin
page := 0;
adodataset1.Filter := 'rownum >= ' + inttostr(page * pegenum+1) + ' and rownum <=' + inttostr((page+1) * pegenum);
btnFirst.Enabled := false;
btnPrior.Enabled := false;
btnLast.Enabled := true;
btnNext.Enabled := true;
txtMsg.Caption := '总页数:' + inttostr(pagecount) + ' 当前页:' + inttoStr(page +1);
end;
procedure TFrmSjfy.btnPriorClick(Sender: TObject);
begin
if page = 0 then exit;
page := page - 1;
btnLast.Enabled := true;
btnNext.Enabled := true;
if page = 0 then
begin
btnFirst.Enabled := false;
btnPrior.Enabled := false;
end;
adodataset1.Filter := 'rownum >= ' + inttostr(page * pegenum+1) + ' and rownum <=' + inttostr((page+1) * pegenum);
txtMsg.Caption := '总页数:' + inttostr(pagecount) + ' 当前页:' + inttoStr(page+1);
end;
procedure TFrmSjfy.btnNextClick(Sender: TObject);
begin
if page = pagecount-1 then exit;
page := page + 1;
btnFirst.Enabled := true;
btnPrior.Enabled := true;
if page = pagecount-1 then
begin
btnLast.Enabled := false;
btnNext.Enabled := false;
end;
adodataset1.Filter := 'rownum >= ' + inttostr(page * pegenum+1) + ' and rownum <=' + inttostr((page+1) * pegenum);
txtMsg.Caption := '总页数:' + inttostr(pagecount) + ' 当前页:' + inttoStr(page+1);
end;
procedure TFrmSjfy.btnLastClick(Sender: TObject);
begin
page := pagecount - 1;
adodataset1.Filter := 'rownum >= ' + inttostr(page * pegenum+1) + ' and rownum <=' + inttostr((page+1) * pegenum);
btnLast.Enabled := false;
btnNext.Enabled := false;
btnFirst.Enabled := true;
btnPrior.Enabled := true;
txtMsg.Caption := '总页数:' + inttostr(pagecount) + ' 当前页:' + inttoStr(page+1);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -