Foxtable(狐表)用户栏目专家坐堂 → 分页加载问题


  共有1825人关注过本帖树形打印复制链接

主题:分页加载问题

帅哥哟,离线,有人找我吗?
qaz17909
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:772 积分:8802 威望:0 精华:0 注册:2017/1/26 14:38:00
分页加载问题  发帖心情 Post By:2018/6/18 0:04:00 [只看该作者]

表格有三列,分别是产品编号、产品类别和订单号,同一个订单号对应多个产品编号。现在做一个查询窗口,设置查询结果为分页加载,可以按照不同的字段升降序排序,按照帮助里面尽量以不重复值的列或者主键列为分页列,如果loadover=产品编号,结果是准确的,但是现在想灵活加载排序,但是设置loadover= 产品类别或者订单号,结果出现错误,会少一些记录没有显示,如何改进。
查询按钮代码如下:
Dim pxzd As WinForm.ComboBox = e.Form.Controls("ComboBox排序字段")
Dim px As WinForm.ComboBox = e.Form.Controls("ComboBox排序")
 With dt
            .LoadFilter = ""
            .LoadTop = e.Form.Controls("TextBox每页记录数").value '每页行数
            .LoadPage = 0 '加载第一页
            .LoadOver = pxzd.value
            If px.value = "升序" Then
                .LoadReverse = False
            Else If px.value = "降序" Then
                .LoadReverse = True
            End If
            .Load()
下页按钮的代码如下:
With dt
            If .LoadPage < .TotalPages - 1
                .LoadPage = .LoadPage  + 1
                .Load()
            End If
        End With

[此贴子已经被作者于2018/6/18 20:37:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/19 8:38:00 [只看该作者]

示例四

分页加载的时候,默认是根据主键分页的,可以用LoadOver属性改变分页列。

例如:

With DataTables("订单")
    .LoadTop = 
20

    .LoadPage = 
3
    .LoadOver = 
"日期"
    .Load()

End
 With

表示根据日期列分页,每页20行,加载第四页。

我们的建议是:尽量采用主键列或者其他值不会重复的列(如身份证号码)作为分页依据列,因为如果分页依据列的值有重复,将会影响分页的准确性,例如上面的代码根据日期分页,每页显示20行,如果某一天有40个订单,那么这40个订单会显示在同一个页面中,而不会按我们期望的那样分成两页显示。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/19 9:07:00 [只看该作者]

如果是sqlserver数据库,你可以用sqlLoad的方法处理,如

 

http://www.foxtable.com/webhelp/scr/2721.htm

 

如果是内部表或者access就比较麻烦了,基本无法解决。变通方法就是加一列编号列,排序后给编号列从1到n赋值,根据编号列分页。


 回到顶部