以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  在datatable里怎么对某列数字的绝对值排序,高手帮我看看把  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=30644)

--  作者:jljacky
--  发布时间:2013/4/1 14:41:00
--  在datatable里怎么对某列数字的绝对值排序,高手帮我看看把

要在在datatable(套装)中,对上月销售量进行降序排序,并提取datarow,可是下面的代码总是出问题,高手帮我看看吧

Dim drs As List(Of DataRow)=DataTables("套装").Select("",Math.Abs("上月销售量") Desc)


--  作者:jljacky
--  发布时间:2013/4/1 14:50:00
--  
自己顶
--  作者:jljacky
--  发布时间:2013/4/1 15:08:00
--  
如果我用IIF表达式在"上月销售量"列里面先把数字设成绝对值的话, 代码出错又会显示
图片点击可在新窗口打开查看此主题相关图片如下:snag-001.jpg
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2013/4/1 15:12:00
--  
表达式列是不可更改的。你可以试着更改计算出这个表达式列的 相关列
--  作者:jljacky
--  发布时间:2013/4/1 15:21:00
--  
以下是引用Bin在2013-4-1 15:12:00的发言:
表达式列是不可更改的。你可以试着更改计算出这个表达式列的 相关列

不太理解,因为原来的"上月销售量"列也是引用关联的父表的内容


--  作者:Bin
--  发布时间:2013/4/1 15:22:00
--  
那你改父表就可以了
--  作者:jljacky
--  发布时间:2013/4/1 15:25:00
--  
可是父表有2万条,实在麻烦,所以才想用代码的办法呀
--  作者:Bin
--  发布时间:2013/4/1 15:28:00
--  
以下是引用jljacky在2013-4-1 15:25:00的发言:
可是父表有2万条,实在麻烦,所以才想用代码的办法呀
用代码更改的话怎么会麻烦呢。又不是要你手动来。


--  作者:FoxMan
--  发布时间:2013/4/1 16:04:00
--  

Dim dt1 As  DataTable = DataTables("套装")

If dt1.DataCols.Contains("上月销售量ABS ") = False Then
    
dt1.DataCols.Add("上月销售量ABS ", GetType(Double), "iif([上月销售量]< 0,-1,1)*[上月销售量]") 
End If


Dim drs As List(Of DataRow)=DataTables("套装").Select("","上月销售量 ABS " Desc)

....

--  作者:FoxMan
--  发布时间:2013/4/1 16:04:00
--  

Dim dt1 As  DataTable = DataTables("套装")

If dt1.DataCols.Contains("上月销售量ABS ") = False Then
    
dt1.DataCols.Add("上月销售量ABS ", GetType(Double), "iif([上月销售量]< 0,-1,1)*[上月销售量]") 
End If


Dim drs As List(Of DataRow)=DataTables("套装").Select("","上月销售量 ABS " Desc)

....