以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 不加载数据定位到最后一页最后一行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178299) |
-- 作者:swagger -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/6/28 20:13:00 -- 我测试没有问题。请上传实例说明 |
-- 作者:swagger -- 发布时间:2022/6/28 20:28:00 -- 不知道为什么有时候可以,特别刚开始数据还没加载就没问题。但加载之后,编辑一段时间,再测试就会跳到第一行,不是最后一行。试了几个表、不同的窗口都是这样。不过这个不是关键了。主要是有没有其它代码方式?譬如sqlfind,毕竟loadtop有点慢,addnew的时候就感觉出来 |
-- 作者:有点蓝 -- 发布时间:2022/6/28 20:54:00 -- 不知道您的处理逻辑,没有办法回答。不过为什么addnew一定要先加载一下数据? |
-- 作者:swagger -- 发布时间:2022/6/28 21:02:00 -- 是这样的,同事录入经常出现空行,要人工删除。所以目的是判断最后一行有没有空行,有没有填写必填项譬如客户名称,如果是空行,没有填写客户名称就不能新增行。譬如订单表,是外部数据表,初始没加载数据。然后我想到的办法是加载数据,然后定位到最后一页最后一行,然后判断最后是否空行,用这种办法防止录入时出现空行。不知道有没有更好的办法?能直接加载最后一行数据就最好了,譬如sqlfind 以最大编号值,找到最后一行,然后判断是否空行。不知道代码怎么写 |
-- 作者:有点蓝 -- 发布时间: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 |