Foxtable(狐表)用户栏目专家坐堂 → 查询表可以用代码将为0的单元格设置为Nothing,希望表达式列也可以


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

主题:查询表可以用代码将为0的单元格设置为Nothing,希望表达式列也可以

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/6/22 13:28:00 [显示全部帖子]

哈哈,同烦!
不过应该可以简化点:利用数组及For ...Next
[此贴子已经被作者于2011-6-22 13:30:22编辑过]

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/6/22 17:17:00 [显示全部帖子]

这样是否没这么烦:

 

Dim Ls As New List(Of String)
Ls.Add("Convert(([总版数_今年]/[总版数_去年]-1)*10000,'System.Int64')/10000")
Ls.Add("Convert([总版数_今年]/[出版天数_今年] ,'System.Int32')")
Ls.Add("Convert([总版数_去年]/[出版天数_去年],'System.Int32')")
Ls.Add("Convert([总版数_今年]/[出版天数_今年]-[总版数_去年]/[出版天数_去年],'System.Int32')")
Ls.Add("Convert([广告面积_今年]/[总面积_今年]*10000,'System.Int64')/10000")
Ls.Add("Convert([广告面积_去年]/[总面积_去年]*10000,'System.Int64')/10000")
Ls.Add("Convert(([广告面积_今年]/[总面积_今年]-[广告面积_去年]/[总面积_去年])*10000,'System.Int64')/10000")
Ls.Add("Convert(([广告占版数_今年]/[广告占版数_去年]-1])*10000,'System.Int64')/10000")
Ls.Add("Convert(([广告推算数_今年]/[广告推算数_去年]-1])*10000,'System.Int64')/10000")

Dim v1() As String = {"总版数_同比增幅","日均版数_今年","日均版数_去年","日均增幅数_去年","广告占版率_今年"}
Dim v2() As String = {"广告占版率_去年","广告占版率_变动数","广告占版率_同比增幅","广告推算额_同比增幅"}

Dim Ls1 As New List(Of String)
Ls1.AddRange(v1)
Ls1.AddRange(v2)

Dim t = Tables("窗口1_Table1")
Dim s As String
For n as  Integer = 0 to ls.Count-1
     s = "IIF("  & Ls(n) & "=0,Null," & Ls(n) & ")"
     t.DataTable.DataCols.Add(Ls1(n),Gettype(Double),s)
Next

 

[此贴子已经被作者于2011-6-22 17:17:43编辑过]

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/6/22 21:25:00 [显示全部帖子]

以下是引用reachtone在2011-6-22 19:40:00的发言:
添加的表达式列,类型不一样的。不完全是Double。

......

For n as  Integer = 0 to ls.Count-1
     s = "IIF("  & Ls(n) & "=0,Null," & Ls(n) & ")"

     t.DataTable.DataCols.Add(Ls1(n),Gettype(iif(n In (1,2,3),Integer,Double)),s)

Next   


 回到顶部