以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  列表排序问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=135340)

--  作者:yellow
--  发布时间:2019/5/24 9:08:00
--  列表排序问题

有一个牵涉到多人的工作任务表。每个人访问时会显示这个列表(表格),现在想要达到这样的效果:1. 按日期排序; 2. 未完成的排在最前面;

因为每个项目不同的个人完成情况不同,所以每个人的列表排序都是不同的。这样要怎么做呢?谁能指点指点,给个思路?


--  作者:有点甜
--  发布时间:2019/5/24 9:45:00
--  

按照两列排序即可,如 根据完成情况和日期列 一起排序。

 

或者,加一个排序列。对于未完成的,赋值为00000001;对于其它,根据日期计算赋值,如 19990308。根据此列赋值。

 


--  作者:yellow
--  发布时间:2019/5/24 10:41:00
--  
问题是每个人完成情况不一样。例如有一项工作,A完成了,B没完成。那A的这项工作是按日期排序,排到后面。而B的这项工作因为没完成而排在前面,其他的按日期排序。如果是加一排序列,那A和B看到的排序是一样的,达不到想要的效果啊?
--  作者:有点甜
--  发布时间:2019/5/24 11:05:00
--  
动态生成排序列的内容。进入系统后,根据用户名称,判断每一行的情况,给排序列赋值。
--  作者:yellow
--  发布时间:2019/5/24 14:43:00
--  

这是一个移动端系统,表格是通过SQLCommand查询后手工编码生成的。

 

Dim cmd As New SQLCommand

cmd.CommandText = ……

Dim dt As DataTable = cmd.ExecuteReader 

For Each r As DataRow In dt.DataRows 

    ……

Next

 

那我应该在什么时候动态生成排序列的内容?


--  作者:有点甜
--  发布时间:2019/5/24 15:06:00
--  

可以直接在sql语句那里处理吧?如

 

cmd.CommandText = "select * from {表A} order by 第一列, [_Identify]"

 

具体问题,做一个例子发上来测试