以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何自动排序 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187132) |
-- 作者:moseser -- 发布时间:2023/6/25 14:58:00 -- 如何自动排序 比如有一个表A,有如下几列 日期 序号 2022-06-12 1 2022-06-15 2 2022-06-18 3 2022-06-20 4 当插入一个2022-05-01 时,其序号自动拍在最前面,为1,同时其他各序号自动变化 如果插入2022-06-19 ,其序号自动为4,其6月20变为5 [此贴子已经被作者于2023/6/25 15:00:06编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/6/25 15:11:00 -- 处理步骤 1、使用find搜索比当前行日期值(比如2022-05-01)小的其中日期值最大的行,http://www.foxtable.com/webhelp/topics/0396.htm 2、如果搜索没有结果,就把当前行序号赋值1,然后遍历剩下的行,全部赋值+1 3、如果有结果,把搜索结果的序号+1给当前行序号,使用select获取比当前行日期值大的行,然后遍历赋值+1 datacolchanged if e.datacol.name = "日期" dim dr as datarow = e.datatavble.find("日期 < #" e.newvalue "#","日期 desc") if dr is nothing then e.datareow("序号") = 1 dim idx as integer = 1 for each dr2 as datarow = e.datatavble.select("日期 > #" e.newvalue "#","日期") idx +=1 dr2("序号") = idx nexct else e.datareow("序号") = dr("序号") + 1 dim idx as integer = e.datareow("序号") for each dr2 as datarow = e.datatavble.select("日期 > #" e.newvalue "#","日期") idx +=1 dr2("序号") = idx nexct en dif |