Foxtable(狐表)用户栏目专家坐堂 → 请教这个形式的表格如何生成


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

主题:请教这个形式的表格如何生成

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


加好友 发短信
等级:三尾狐 帖子:780 积分:5756 威望:0 精华:0 注册:2012/10/21 7:57:00
请教这个形式的表格如何生成  发帖心情 Post By:2016/1/19 21:59:00 [只看该作者]

如图示

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160119215738.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目费用.table




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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/19 22:20:00 [只看该作者]

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("科目", Gettype(String), 16)
dtb.AddDef("预算", Gettype(Double))
Dim prds As List(of String) = DataTables("负责人").GetValues("负责人")
Dim str As String = ""
For Each prd As String In prds
    dtb.AddDef(prd, Gettype(Double))
    str &= "isnull(" & prd & ",0)+"
Next
dtb.AddDef("累计", Gettype(Double), str.trim("+"))
dtb.Build()
Dim t As Table = Tables("统计")
For Each km As String In DataTables("科目").GetValues("科目")
    Dim nr As Row = t.AddNew
    nr("科目") = km
Next
For Each prd As String In prds
    t.cols(prd).GrandTotal = True
Next
t.cols("预算").GrandTotal = True
t.cols("累计").GrandTotal = True
t.GrandTotal = True

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


加好友 发短信
等级:三尾狐 帖子:780 积分:5756 威望:0 精华:0 注册:2012/10/21 7:57:00
  发帖心情 Post By:2016/1/20 10:35:00 [只看该作者]

测试好用,谢谢!

请教:str &= "isnull(" & prd & ",0)+"   红色部分是啥意思?

哪里有资料可以参考?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/20 10:56:00 [只看该作者]

这里是为了合成一个公式。

 

http://www.foxtable.com/help/topics/0602.htm

 


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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
回复:(李睿涵)测试好用,谢谢!请教:str &=...  发帖心情 Post By:2016/1/20 11:03:00 [只看该作者]

这是获取表达式字符串的意思,isnull(张三,0)+isnull(李四,0)+...
最后通过str.trim("+")去掉最后的一“+”

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


加好友 发短信
等级:三尾狐 帖子:780 积分:5756 威望:0 精华:0 注册:2012/10/21 7:57:00
  发帖心情 Post By:2016/1/20 12:36:00 [只看该作者]

原来如此,我以为是正则表达式

谢谢各位


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


加好友 发短信
等级:三尾狐 帖子:780 积分:5756 威望:0 精华:0 注册:2012/10/21 7:57:00
  发帖心情 Post By:2016/3/16 20:19:00 [只看该作者]

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("科目", Gettype(String), 16)
dtb.AddDef("预算", Gettype(Double))
Dim prds As List(of String) = DataTables("负责人").GetValues("负责人")
Dim str As String = ""
For Each prd As String In prds
    dtb.AddDef(prd, Gettype(Double))
    str &= "isnull(" & prd & ",0)+"
Next

 

再问一下,若科目里有特殊字符(-  *) ,红色代码合成出来的结果是:

isnull(川藏线,0)+isnull(云贵线,0)+isnull(北京-深圳*广州,0)

整段代码运行时,会报错:找不到[北京]列

应该是把横杠当成了减号,估计后面的星号也会当成乘号 而报错

 

请教:如何让[北京-深圳*广州] 能当成一个字符串处理,而不是运算符号

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 20:24:00 [只看该作者]

str &= "isnull([" & prd & "],0)+"


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


加好友 发短信
等级:三尾狐 帖子:780 积分:5756 威望:0 精华:0 注册:2012/10/21 7:57:00
  发帖心情 Post By:2016/3/16 20:31:00 [只看该作者]

以下是引用大红袍在2016/3/16 20:24:00的发言:

str &= "isnull([" & prd & "],0)+"

神回复,谢谢!


 回到顶部