一次显示1到N条,然后我按“下一页”Button,然后就从N+1显示!
解决方案 »
- 这个T f s B i t B t n 是什么控件?
- 请问有谁知道如何实现对任一个窗口进行透明化处理,谢谢!
- 路过者请进
- 有上海的兄弟吗?
- 怎么样得到 treeview中父节点下的子节点的所有内容?
- 请问在程序中如何实现类似于CPU-Z一样的功能?
- Microsoft Access的表的最多能保存多少条记录,对Access数据库备份时,可否对某一个表单独备份?
- quickreport报表,多列显示时,怎样控制数据排列的方向(垂直方向优先或水平方向优先)?
- 窗体之间如何传递值呢(小问题,只给50)!
- dbgrid 垂直滚动条的隐藏???????
- 关于DCOMConnection的问题,请高手指点
- 用Delphi做数据库的高人请进,有问题请教
//------------------------------------------------------------------------------
//过程名:PrePage ,NextPage
//功能: 数据集翻页显示
//说明:ID为数据表ID
//创建人:CWJ
//创建日期:02-01-18
//
//------------------------------------------------------------------------------procedure PrePage(CurrClientDataSet: TClientDataSet;
FYInfo: QueryDataInfo; ID: string);
var
StrSql : string;
n, k, CurrID, tem : integer;
begin
if FYInfo^.CurrPage = 1 then begin
messageShow('对不起,你已经在第一页了。', '系统提示', 1000);
exit;
end;
CurrID := FYInfo^.CurrPage - 2; if CurrID < -1 then begin
messageShow('对不起,你已经在第一页了。', '系统提示', 1000);
exit;
end;
tem := CurrID;
if CurrID = -1 then begin
CurrID := 0;
end; Screen.Cursor := crHourGlass;
with CurrClientDataSet do
begin
StrSql := CommandText;
//去掉order by 子句
n := pos('order by', lowerCase(StrSql));
if n > 0 then StrSql := copy(StrSql, 1, n - 1); n := pos('and ' + LowerCase(ID), lowerCase(StrSql));
if n > 0 then StrSql := copy(StrSql, 1, n - 1); k := pos(lowerCase(ID), lowerCase(StrSql));
if k > 0 then begin
k := pos('where', lowerCase(StrSql));
StrSql := copy(StrSql, 1, k - 1);
end; n := pos('where', lowerCase(StrSql));
if n > 0 then StrSql := StrSql + format(' and ' + ID + ' > %d', [FYInfo^.RecordID[CurrID]])
else begin
StrSql := StrSql + ' where ' + format(ID + ' > %d', [FYInfo^.RecordID[CurrID]]);
end;
DisableControls;
Close;
CommandText := StrSql;
open;
if tem >= -1 then begin //不是第一页
last;
FYInfo^.RecordID[FYInfo^.CurrPage - 1] := FieldByName(ID).asInteger;
FYInfo^.CurrPage := FYInfo^.CurrPage - 1;
first;
end;
EnableControls;
end;
Screen.Cursor := crDefault;
end;