以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  折叠状态下移动行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188803)

--  作者:lesei
--  发布时间:2023/10/19 21:30:00
--  折叠状态下移动行
表a,我使能了折叠功能,然后在代码里:
(1)用addnew新增行
(2)用move移动新增行。

问题:
上面行为会报错,显示:
不能在排序状态下移动行。

--  作者:有点蓝
--  发布时间:2023/10/19 21:47:00
--  
提示很明显了,排序状态下不能移动行,需要取消排序才能移动
--  作者:lesei
--  发布时间:2023/10/20 7:51:00
--  
在“日常工作”菜单下的“排序与筛选”里有个“切换”按钮,我点击一下“切换”后,我发现行的排序变了。
我试着移动行,这回可以了。
问题:
1.这个“切换”是什么含义?我在帮助里没找到。
2.我点击“切换”前,说明表格已经按某种规则排序了,请问我如何知道是按什么规则拍的序?因为我完全不记得自己啥时候点过这个按钮……
3.多人都安装了程序终端,每个人都可能对数据按照自己的意愿排序,请问张三的显示排序会显示在李四的电脑上吗?为啥啊?

--  作者:有点蓝
--  发布时间:2023/10/20 8:35:00
--  
1、http://www.foxtable.com/webhelp/topics/0116.htm
msgbox(Tables("订单").Sort)
3、不会。程序都是独立的个体,不会互相影响

--  作者:lesei
--  发布时间:2023/10/20 9:21:00
--  
关于上面问题3,我重问一下:
(1)张三在自己电脑上对数据进行了排序,那这种排序会不会同步到数据库里?
(2)如果第(1)的答案是:张三自己个人的排序结果会同步到数据库里,那么李四从数据库里读取数据时,就应该是按张三的排序显示的,对吗?

--  作者:有点蓝
--  发布时间:2023/10/20 9:35:00
--  
不会同步到数据库里。排序只是一种临时状态,不会影响数据的存储
--  作者:lesei
--  发布时间:2023/10/20 18:47:00
--  
已知:
有两个表:表a和表b。在这两个表都有列:企业名称、名称简码。
我想让表a的行显示顺序与表b的行显示顺序一样。

问题4:
(1)我打算在表a增加一个“排序序号”列(integer类型),然后表b以表a的序号为基准,进行排序就可以了,对吧?
(2)这会不会导致一个问题:就是张三按自己的意愿排序了,李四把表调出来,显示的是张三的排序,我说的对吧?因为行顺序是由“排序序号”列决定的。
问题5:
如果我把“排序序号”列,用datacols.add方法创建,那就是临时列,这样张三的排序是不是就不会影响李四的显示了(因为是临时列,没被同步到数据库,李四的程序也会创建临时列,但那个临时列只作用于李四)?

--  作者:有点蓝
--  发布时间:2023/10/21 8:47:00
--  
首先,基本所有的数据库存储数据都是无序的,在数据库里,是没有顺序这个概念的。

其次,排序基本上都是程序界面上的一个临时性的结果。对应Foxtable来说,如果没有插入标记列_sortkey,那么加载数据后默认是按照主键列_identify排序显示,如果有插入标记列_sortkey,就会按照_sortkey里排序显示。在Foxtable里做移动行操作并保存后,会改变_sortkey的值,所以会影响数据库里的数据,其它电脑打开后才会有影响。否则不管在程序做什么排序的操作都不会对其它电脑有任何的影响

临时列顾名思义就是临时性的东西,只在本程序运行时有效,关闭后就没有了,更不会影响到任何其它程序