Foxtable(狐表)用户栏目专家坐堂 → 分页只加载分页后的多余行


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

主题:分页只加载分页后的多余行

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
分页只加载分页后的多余行  发帖心情 Post By:2018/8/17 16:51:00 [显示全部帖子]

老师,我现在分页加载如下:

With DataTables("采购申请表")
    .LoadFilter = ""
    .LoadPage = 0 '加载第一页
    .LoadTop =  20 '每页20行
    .LoadOver =  "申请单号"
    .LoadReverse = True
    .Load()
    e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages
End  With

想修改为这样:当我每页20行,总行数50行时/3页,只显示最后面10行,不是显示最后的20行,怎么弄?


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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/8/17 17:21:00 [显示全部帖子]

谢谢有点蓝老师,解决了,个人觉得这样更符合加载的逻辑。

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/8/21 9:00:00 [显示全部帖子]

老师还有个疑问,我初始加载的是最后一页,筛选后,在重置取消筛选,加载出来的是第一页呢,不是最后一页了呢?

Tables("中标统计").ApplyFilter = False


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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/8/21 9:19:00 [显示全部帖子]

筛选后也分页了,是触发了重新加载,现在代码是这样的,怎么修改?

Dim dt As Table = CurrentTable
dt.DataTable.LoadFilter =  iif(filter > "", "(" & filter & ") And ", "") & "(" & Functions.Execute("单表加载") & ")"
dt.DataTable.LoadPage = 0
dt.DataTable.LoadTop =  20
dt.DataTable.Load()
e.Form.Controls("TextBox1").Value = 1 & "/" & dt.DataTable.TotalPages

[此贴子已经被作者于2018/8/21 9:20:36编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/8/21 9:33:00 [显示全部帖子]

以下是引用有点蓝在2018/8/21 9:27:00的发言:
用法完全一样啊,看2楼

With CurrentTable.DataTable
    .LoadFilter =  iif(filter > "", "(" & filter & ") And ", "") & "(" & Functions.Execute("单表加载") & ")"
    .LoadPage = .TotalPages - 1
    .LoadTop =  20
    .Load()
    e.Form.Controls("TextBox1").Value = (.LoadPage + 1) & "/" & .TotalPages
End  With

红色代码位置就只能这样改成这样,先显示最后一页呢?

 

按照帮助,最后一页显示为1,上一页,下一页代码怎么修改?

e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages

 

上一页

With DataTables("中标统计")
    If .LoadPage > 0  Then
        .LoadPage = .LoadPage - 1
        .Load()
        e.Form.Controls("TextBox1").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With

下一页

With DataTables("中标统计")
    If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage + 1
        .Load()
        e.Form.Controls("TextBox1").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With

 


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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/8/21 9:52:00 [显示全部帖子]

目前加载出来结果是24/24,上一页,下一页没问题,

想加载出来是1/24的效果,现在点上一页出来结果就是23/24,2224......,点下一页没反应,一直是1/24

With CurrentTable.DataTable
    .LoadFilter =  iif(filter > "", "(" & filter & ") And ", "") & "(" & Functions.Execute("单表加载") & ")"
    .LoadPage = .TotalPages - 1
    .LoadTop =  20
    .Load()
    e.Form.Controls("TextBox1").Value = 1 "/" & .TotalPages
End  With

[此贴子已经被作者于2018/8/21 9:52:53编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/8/21 10:01:00 [显示全部帖子]

这样好像对了

上一页

With DataTables("中标统计")
    If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .LoadPage +1
        .Load()
        e.Form.Controls("TextBox1").Value = (.TotalPages - .LoadPage) & "/" & .TotalPages
    End If
End With

下一页

With DataTables("中标统计")
    If .LoadPage > 0  Then
        .LoadPage = .LoadPage - 1
        .Load()
        e.Form.Controls("TextBox1").Value = (.TotalPages - .LoadPage) & "/" & .TotalPages
    End If
End With

第一页

With DataTables("中标统计")
    If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .TotalPages - 1
        .Load()
        e.Form.Controls("TextBox1").Value = 1  & "/"  & .TotalPages
    End If
End With

最末页

With DataTables("中标统计")
    If .LoadPage <> 0 Then
        .LoadPage = 0
        .Load
        e.Form.Controls("TextBox1").Value = .TotalPages & "/" & .TotalPages
    End If
End With

[此贴子已经被作者于2018/8/21 10:04:16编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/8/21 10:06:00 [显示全部帖子]

是有点混乱,还是现实总页数算了,谢谢老师。

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/8/21 13:15:00 [显示全部帖子]

以下是引用有点蓝在2018/8/21 10:03:00的发言:
这不合理啊,加载的本来就是最后一页,怎么能显示为第一页,而且也容易导致计算混乱。不然你倒序加载好了,

老师,新问题,窗口的AfterLoad代码

With DataTables("介绍信管理")
    .LoadFilter = Functions.Execute("单表加载")
    .LoadPage = .TotalPages - 1 '加载最后一页
    .LoadTop =  20 '每页10行
    .LoadOver =  "介绍信编号"
    .Load()
    e.Form.Controls("TextBox1").Value = .TotalPages & "/" & .TotalPages
End  With

直接在窗口应用时,加载的是最后一页数据,但打开这个页签窗口时,加载出来的数据不是最后一页数据呢?,而且点下一页,下面页码会变成:0/2,1/2,2/2

 

做了个示例,当加载依据列为整数型时没问题,字符型有不对,怎么解决字符型的问题嗯,我有的项目编号为201801-0001类似格式。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:分页加载.table

[此贴子已经被作者于2018/8/21 13:37:23编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/8/21 14:23:00 [显示全部帖子]

老师,用sql数据库怎么计算呢?我全部采用的外部数据。

 回到顶部
总数 11 1 2 下一页