Foxtable(狐表)用户栏目专家坐堂 → 报表模板后台统计表达式


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

主题:报表模板后台统计表达式

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
报表模板后台统计表达式  发帖心情 Post By:2018/11/17 17:03:00 [只看该作者]

我在EXCEL报表模板的单元格里设了以下表达式,我”零号清单“表是分页加载的,共有两页,”图纸金额“列是表达式列,以下公式只汇总出第一页的数量,请问老师怎么修改? 

[$零号清单,Sum(图纸金额),章节 = '800']

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105930 积分:538719 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/17 17:05:00 [只看该作者]


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/11/17 17:07:00 [只看该作者]

我生成报表的代码如下:
Dim Book As New XLS.Book(ProjectPath & "Attachments\中期支付证书.xlsx")
Dim fl As String = ProjectPath & "Reports\中期支付证书.xlsx"
book.AddDataTable("中期支付证书","xlgl","Selec t * ,(Case When 图纸数量 Is null Then 0 Else 图纸数量 End) * (Case When 单价 Is null Then 0 Else 单价 End) As [图纸金额] fro m {零号清单} " & IIF(DataTables("零号清单").LoadFilter > ""," where " & DataTables("零号清单").LoadFilter,"")) 
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105930 积分:538719 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/17 17:24:00 [只看该作者]

有什么问题?

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/11/17 17:32:00 [只看该作者]

应该是代码的问题,我把代码改成以下,红字部分不对,但不知怎么改

Dim Book As New XLS.Book(ProjectPath & "Attachments\中期支付证书.xlsx")

Dim fl As String = ProjectPath & "Reports\中期支付证书.xlsx"

Dim filter As String = IIF(vars("计量汇总filter") > ""," where " & vars("计量汇总filter") & ")

book.AddDataTable("中期支付证书","xlgl","Selec t *, (select sum(Round(Case When 图纸数量 Is null Then 0 Else 图纸数量 End * Case When 单价 Is null Then 0 Else 单价 End,0))  fro m {零号清单} b where a.项目名称=b.项目名称 and a.施工合同段=b.施工合同段) As [图纸金额] fro m {零号清单} a " & filter)

Book.Build()

Book.Save(fl)

Dim Proc As New Process

Proc.File = fl

Proc.Start()


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105930 积分:538719 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/17 17:39:00 [只看该作者]

Dim filter As String = IIF(vars("计量汇总filter") > ""," where " & vars("计量汇总filter"),"")

select a.*,b.图纸金额 from {零号清单} as a inner join (selec项目名称,施工合同段,sum(图纸数量 * 单价) as 图纸金额 from {零号清单} group by 项目名称,施工合同段) as b on a.项目名称=b.项目名称 and a.施工合同段=b.施工合同段

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/11/17 17:50:00 [只看该作者]

老师,后面这名代码能否提供个完整的,象这样

book.AddDataTable("中期支付证书","xlgl","Selec t *, (select sum(Round(Case When 图纸数量 Is null Then 0 Else 图纸数量 End * Case When 单价 Is null Then 0 Else 单价 End,0))  fro m {零号清单} b where a.项目名称=b.项目名称 and a.施工合同段=b.施工合同段) As [图纸金额] fro m {零号清单} a " & filter)

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/18 21:47:00 [只看该作者]

 

把sql语句,直接替换你原来的sql语句即可啊。

 


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/11/19 9:22:00 [只看该作者]

老师,以下代码还是只能统计当前页的数据,其它加载页的数据统计不了
Dim Book As New XLS.Book(ProjectPath & "Attachments\中期支付证书.xlsx")
Dim fl As String = ProjectPath & "Reports\中期支付证书.xlsx"
Dim filter As String = IIF(vars("计量汇总filter") > ""," where " & vars("计量汇总filter"),"")
book.AddDataTable("中期支付证书","xlgl","selec t a.*,b.图纸金额 fro m {零号清单} as a inner join (select 项目名称,施工合同段,sum(图纸数量 * 单价) as 图纸金额 fro m {零号清单} group by 项目名称,施工合同段) as b on a.项目名称=b.项目名称 and a.施工合同段=b.施工合同段")
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/19 9:25:00 [只看该作者]

在sql测试窗口测试你的sql语句,看查找到的数据是否正确

 

http://www.foxtable.com/webhelp/scr/1484.htm

 

如果自己不会调试,做个实例发上来测试


 回到顶部
总数 42 1 2 3 4 5 下一页