分享

在vfp中如何实现翻页功能

 lygcw9603 2011-12-19
VFP分页显示数据
*--------------
十豆三
2010.04

此例是每页显示3条记录(每条记录只有一个字段),用 Label 显示
注:如果表有索引,显示的顺序为索引顺序而不是物理顺序

在表单加3个 Label ,分别命名为:Label1 Label2 Label3
在表单加一个按钮:如其 Name 为 Command100 (或用表单方法也可以),其 Visible 属为 .F.,其 Click 事件代码为:
Select Name,Recno() As jlh Into Cursor T2 From T1 Where Between(Recno(),3*gnPage-2,3*gnPage) Order By 2 Desc
Store
'' To Thisform.Label1.Caption,Thisform.Label2.Caption,Thisform.Label3.Caption
Select T2
Scan
    m.lnJ
=Transform(3-Recno()+1)
    Thisform.Label
&lnJ..Caption=Name
Endscan

在表单的 Init 事件加代码:
Public gnPage
Create Cursor T1 (Name C(
10))
For m.lnI=1 To 20
    Insert Into T1 Values (Transform(m.lnI))
Endfor
gnPage
=1 &&初始1 表示第一页
This.Command100.Click()


上一页按钮 的 Click 事件代码:
gnPage
=Max(gnPage-1,1)
Thisform.Command100.Click()


下一页按钮 的 Click 事件代码:
gnPage
=Min(gnPage+1,Ceiling(Reccount('T1')/3))
Thisform.Command100.Click()


-------------------------------------------------------
用 Grid 分页显示
注:如果表有索引,显示的顺序为索引顺序而不是物理顺序

在表单加一个 Grid 控件
在表单加一个按钮:如其 Name 为 Command100 (或用表单方法也可以),其 Visible 属为 .F.,其 Click 事件代码为:
Thisform.Grid1.recordsource
=Null
Thisform.Grid1.ColumnCount
=-1
Select Recno() As jlh,* Into Cursor T2 From "&gnTableName." Where Between(Recno(),gnPageRows*gnPage-(gnPageRows-1),gnPageRows*gnPage) Order By 1
Thisform.Grid1.recordsource
="T2"
Thisform.Grid1.DeleteColumn(
1) && 如果是VFP6,此句改为:Thisform.Grid1.Columns(1).Width=0
Thisform.Grid1.Refresh


在表单的 Load 事件加代码:
Public gnPage,gnPageRows,gnTableName
*--- 生成测试数据
Create Cursor T1 (ID I,Name C(
10),Department C(20))
For m.lnI=1 To 23
    Insert Into T1 Values (m.lnI,
"XM"+Transform(m.lnI),"BM"+Transform(m.lnI))
Endfor
*---
gnPage
=1             && 初始1 表示第一页
gnPageRows
=5         && 每页显示记录数
gnTableName
="T1"     && 分页显示记录的表名


在表单的 Unload 事件加代码:
Release gnPage,gnPageRows,gnTableName


在表单的 Init 事件加代码:
This.Command100.Click()


上一页按钮 的 Click 事件代码:
gnPage
=Max(gnPage-1,1)
Thisform.Command100.Click()


下一页按钮 的 Click 事件代码:
gnPage
=Min(gnPage+1,Ceiling(Reccount(gnTableName)/gnPageRows))
Thisform.Command100.Click()

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多