Foxtable(狐表)用户栏目专家坐堂 → 排序问题求解


  共有2932人关注过本帖树形打印复制链接

主题:排序问题求解

帅哥哟,离线,有人找我吗?
hitzfeld
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
排序问题求解  发帖心情 Post By:2020/10/10 22:39:00 [显示全部帖子]

主表按输入顺序排序,但是我用下面的代码,把不重复的值抽取到一个新的临时表中的,时候,排序变了,很是困扰
Dim Vals As List(of String())
Vals = DataTables("采购单").GetValues("公司名称|产品名称")
For i As Integer = 0 To Vals.Count - 1
    Dim dr As DataRow = DataTables("批量录入").AddNew()
    dr("公司名称") = Vals(i)(0)
    dr("产品名称") = Vals(i)(1)
Next

原表 (按输入顺序)                                            
产品代码
-------------------------------------
C008
B005
F010

读到新的临时表,排列顺序变成按字母顺序
产品代码
--------------------------
B005
C008
F010
我希望能按原本的输入顺序排列,不要按首字母顺序重新排序。要怎么做?谢谢老师!






 回到顶部
帅哥哟,离线,有人找我吗?
hitzfeld
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/10/12 15:05:00 [显示全部帖子]

蓝老师好,按您的方法修改后,排序问题倒是解决了,但是却把所有值都带进来了。比如下表
原表 (按输入顺序)                                            
产品代码
-------------------------------------
C008
B005
F010
A009
C008
B005
F010
A009
C008
B005
F010
A009
C008
B005
F010
A009
---------------------------------
其中,重复的是C008,B005,F010,A009四项,一共重复了4次,如果不使用,"_sortkey")取到的值是4个没错,但是用了,"_sortkey"则取到了16个值,这个和我的初衷就不一样了。
请您拨冗再指点下,谢谢!



 回到顶部
帅哥哟,离线,有人找我吗?
hitzfeld
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/10/12 15:58:00 [显示全部帖子]

蓝老师,我想把我的系统传给您看下,但是数据库压缩后仍然超过2048K,您看我要怎么传给您呢?或者您看能不能给我个QQ号,您远程看下,我操作给您看看?

 回到顶部
帅哥哟,离线,有人找我吗?
hitzfeld
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/10/12 17:21:00 [显示全部帖子]

蓝老师好,我重建项目之后才发现是我代码写错了!图片点击可在新窗口打开查看
正确的代码是GetValues("公司名称|产品名称","","_sortkey")把中间的两个双引号漏掉了,写成GetValues("公司名称|产品名称","_sortkey")。
现在检索出来的值是正确的了,但是,如果再附加条件还是报错,麻烦您看下
Vals = DataTables("采购单").GetValues("产品编码|产品名称","","_sortkey","[供应商名称]= '"& tab &"'")
不加后面的供应商名称能正确运行,加了就报错。

 回到顶部
帅哥哟,离线,有人找我吗?
hitzfeld
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/10/13 21:16:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:不重复取值问题.table

以下是引用有点蓝在2020/10/12 17:35:00的发言:

语法:

GetValues(ColumnName,Filter,Sort)

ColumnName:列名称,从此列中提取不重复的值。
Filter:     可选参数,指定一个条件表达式,只返回符合此条件的值;请参考表达式的运算符和函数 和 条件表达式
Sort:  


蓝老师好,又来麻烦您了,还是不能得到我要的排序效果,我把测试项目发到附件里,数据库是2005的,请您帮忙看下

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:data.rar


 回到顶部
帅哥哟,离线,有人找我吗?
hitzfeld
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/10/13 22:09:00 [显示全部帖子]

蓝老师好,是这样的,这3个列的值都完全一样才算是重复。然后以编码为基础,编码是第一要素,名称其实取的是编码对应的值。
款型其实也一样,但是,我的困扰是在款型,当编码一致,款型不一致的时候,比如:
G001 赤霞珠 A 佳美
F002 梅洛   A 佳美
A333 品丽珠 A 佳美
Q444 味而多 A 佳美
Z555 佳美娜 A 佳美
G001 赤霞珠 B 佳美
F002 梅洛  B 佳美
A333 品丽珠 B 佳美
Q444 味而多 B 佳美
Z555 佳美娜 B 佳美
就不能正确的显示值了,要嘛就重复取值,要嘛就没有正确的值。


 回到顶部
帅哥哟,离线,有人找我吗?
hitzfeld
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/10/13 22:11:00 [显示全部帖子]

但是还存在部分商品是没有款型的,也就是款型是空值,那空值就按空值处理就可以了。

 回到顶部
帅哥哟,离线,有人找我吗?
hitzfeld
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5039 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2020/10/14 15:13:00 [显示全部帖子]

感谢蓝老师的耐心指点,最终是用SQLGetValues彻底解决了问题!SQLGetValues有个小小小小的缺点,感觉是因为读库的时候,数据是在硬盘上的,加载速度比直接GetValues慢。
没想到忙了两天,做了无数次试验,结果是函数本身有缺陷。真心泪崩。再次谢谢蓝老师两天的耐心指导!

 回到顶部