以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  滚动条的位置控制动态加载  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191344)

--  作者:lur320
--  发布时间:2024/4/12 9:45:00
--  滚动条的位置控制动态加载
 是否可以通过滚动条的位置来动态加载?

例如加载500行,滚动到底部1/5时,动态加载另外500行?


--  作者:有点蓝
--  发布时间:2024/4/12 9:52:00
--  
滚动可以参考这里AfterScroll的用法:http://www.foxtable.com/webhelp/topics/2355.htm

追加加载数据可以使用appendload:http://www.foxtable.com/webhelp/topics/2276.htm

--  作者:lur320
--  发布时间:2024/4/12 9:56:00
--  
 这里面只有判断第一行,如何得知滚动条的位置呢?


If Forms("窗口1").Opened Then
   Dim
tbl As Table = Tables("窗口1_Table2")
  
If e.Table.TopVisibleRow <> tbl.TopVisibleRow Then
      tbl.TopVisibleRow = e.
Table.TopVisibleRow
      e.
Table.TopVisibleRow = e.Table.TopVisibleRow \'此行不可少,确保第一个可见行完整显示
  
End If
   Functions.Execute(
"SetGanntLeftCol")
End
If

--  作者:有点蓝
--  发布时间:2024/4/12 9:59:00
--  
http://www.foxtable.com/webhelp/topics/2357.htm
--  作者:lur320
--  发布时间:2024/4/12 10:03:00
--  
 这个CurrentTable.ScrollPosition.Y,显示的是什么单位?像素?
怎么得到总的长度?
我发现调整窗体大小,拉到底显示的数值有略微差异。怎么判断与窗体的位置比例么?
basemainform.height?

[此贴子已经被作者于2024/4/12 10:03:49编辑过]

--  作者:有点蓝
--  发布时间:2024/4/12 10:22:00
--  
像素。如果是窗口表,滚动区域高度就是表控件的高度-标题行的高度,大概的位置就可以开始加载了,没有必要完全准确

其实也不需要判断滚动,可以通过BottomVisibleRow来判断,比如现在总共有100行,当BottomVisibleRow =90(还有100-90=10行没有显示)的时候就开始加载

--  作者:lur320
--  发布时间:2024/4/12 10:41:00
--  
还有,我刚在测试这个加载的,发现如果员工在表里面新增一行,表格会直接把新增行放在最末尾。即使表格已经按照一定规则排序,新增的红字行还在是末尾,怎么让新增的行跑第一行去?

--  作者:有点蓝
--  发布时间:2024/4/12 11:15:00
--  
把新行所说的【按照一定规则】填入必要的数据。

比如按编号排序,当前第一行的编号是50,那么新增行的时候就给新行的编号填入小于50的值。


--  作者:lur320
--  发布时间:2024/4/12 11:34:00
--  
 我在同一个项目里面发现两个表,通过相同的addnew增加行的时候,一个是在最末尾,一个是在最前面。在最末尾的无视排序规则,在最前面的与排序规则一致。
在最末尾的表,可以在开发界面二次按排序的按钮进行调整,就是用户界面不行。



不知道为何


第一个排序规则不起作用的,是通过免费版转开发版的时就存在的旧表。而第二个表,是在开发版新建的。


--  作者:lur320
--  发布时间:2024/4/12 11:42:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:捕获1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

这是一个表的2个不同位置,我分别在上下截的图。新增行一直在下方。无论排序规则如何,甚至第一次新增的行都跑上面去了,新增的还是在下面出现。