Foxtable(狐表)用户栏目专家坐堂 → 不加载数据定位到最后一页最后一行


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

主题:不加载数据定位到最后一页最后一行

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
不加载数据定位到最后一页最后一行  发帖心情 Post By:2022/6/28 19:20:00 [只看该作者]

With DataTables("订单")
    .LoadFilter = "" 
    .LoadTop = 20
    .LoadPage = 0

    If .LoadPage < .TotalPages - 1 Then
        .LoadPage = .TotalPages - 1
        .Load()
    End If
End With


With Tables("订单")
    .Position = .Rows.Count - 1
End With


表初始不加载数据。上述代码有问题,有时候会跳到最后一页第一行。怎么写才正确呢?目的是新增行的时候直接定位到最后一行, 是否最后一页都不必要
[此贴子已经被作者于2022/6/28 19:41:44编辑过]

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


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/28 20:13:00 [只看该作者]

我测试没有问题。请上传实例说明

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By:2022/6/28 20:28:00 [只看该作者]

不知道为什么有时候可以,特别刚开始数据还没加载就没问题。但加载之后,编辑一段时间,再测试就会跳到第一行,不是最后一行。试了几个表、不同的窗口都是这样。不过这个不是关键了。主要是有没有其它代码方式?譬如sqlfind,毕竟loadtop有点慢,addnew的时候就感觉出来

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


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/28 20:54:00 [只看该作者]

不知道您的处理逻辑,没有办法回答。不过为什么addnew一定要先加载一下数据?

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5362 威望:0 精华:0 注册:2012/8/25 20:50:00
  发帖心情 Post By:2022/6/28 21:02:00 [只看该作者]

是这样的,同事录入经常出现空行,要人工删除。所以目的是判断最后一行有没有空行,有没有填写必填项譬如客户名称,如果是空行,没有填写客户名称就不能新增行。譬如订单表,是外部数据表,初始没加载数据。然后我想到的办法是加载数据,然后定位到最后一页最后一行,然后判断最后是否空行,用这种办法防止录入时出现空行。不知道有没有更好的办法?能直接加载最后一行数据就最好了,譬如sqlfind 以最大编号值,找到最后一行,然后判断是否空行。不知道代码怎么写

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


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/28 21:54:00 [只看该作者]

很多的方法可以避免啊,比如保存的时候判断是否有客户名称为空的行

if DataTables("订单").find("客户名称 is null") isnot nothing then
if messagebox.show("是否删除客户名称为空的行"""提示", MessageBoxButtons.YesNo) = DialogResult.Yes then
DataTables("订单").deletefor("客户名称 is null")
en dif
endif
DataTables("订单").save

如果要追加其它同事录入的客户名称为空的行
DataTables("订单").removefor("客户名称 is null") 移除当前表客户名称为空的行
DataTables("订单").appendload("客户名称 is null")追加当前表客户名称为空的行
dim idx as integer = Tables("订单").findrow("客户名称 is null")
if idx > -1 then
Tables("订单").Position = idx 定位到当前表客户名称为空的行
else
msgbox("没有客户名称为空的行")
en dif


 回到顶部