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


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

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

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


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

核实过,是零号清单没错,全部数据加载会很多,还有什么办法在报表模板里统计分页加载的数据

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/11/20 9:36: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") & " and 承包人申报=1"," where 承包人申报=1")
book.AddDataTable("变更一览表","xlgl","Selec t *, (selec t sum(Round(Case When 变更后数量 Is null Then 0 Else 变更后数量 End * Case When 单价 Is null Then 0 Else 单价 End,0) - 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()

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


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

1、excel模板,只能统计已经加载的数据;

 

2、你可以通过load或者AddDataTable等方式加载表数据以后,再统计;

 

3、不然,你就请使用var变量。模板那里用变量,然后你使用sqlcompute计算给变量赋值。


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/11/20 16:04: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.图纸金额 from {零号清单} as a inner join (selec t 项目名称,施工合同段,sum(图纸数量 * 单价) as 图纸金额 from {零号清单} 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()

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2018/11/20 18:00:00 [只看该作者]

请在模板那里,把统计的表名改成 【中期支付证书】,而不是 【零号清单】


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


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

老师,改了模板之后,会统计所有的后台数据,我只想统计当前加载的数据,比如我当前分页加载了N0.3合同段的数据,那只统计N0.3合同段的数据。而不会把未加载的N0.2合同段的数据也统计进来。请问老师该怎么改生成报表代码?

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


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

改成

 

Dim filter As String = IIF(vars("计量汇总filter") > ""," where " & vars("计量汇总filter"),"")
msgbox(filter)
book.AddDataTable("中期支付证书","xlgl","selec t a.*,b.图纸金额 from {零号清单} as a inner join (selec t 项目名称,施工合同段,sum(图纸数量 * 单价) as 图纸金额 from {零号清单} group by 项目名称,施工合同段) as b on a.项目名称=b.项目名称 and a.施工合同段=b.施工合同段" & filter)

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/11/27 15:52: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"),"")
msgbox(filter)
book.AddDataTable("中期支付证书","xlgl","selec t a.*,b.图纸金额 from {零号清单} as a inner join (selec t 项目名称,施工合同段,sum(图纸数量 * 单价) as 图纸金额 from {零号清单} group by 项目名称,施工合同段) as b on a.项目名称=b.项目名称 and a.施工合同段=b.施工合同段" & filter)
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

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


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

无法理解你的意思。

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\中期支付证书.xlsx")
Dim fl As String = ProjectPath & "Reports\中期支付证书.xlsx"
Dim filter As String = "where 在这里加上你的条件"
book.AddDataTable("中期支付证书","xlgl","selec t a.*,b.图纸金额 from {零号清单} as a inner join (selec t 项目名称,施工合同段,sum(图纸数量 * 单价) as 图纸金额 from {零号清单} group by 项目名称,施工合同段) as b on a.项目名称=b.项目名称 and a.施工合同段=b.施工合同段" & filter)
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()


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


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

老师,我传上实例,麻烦老师帮看下。
实例中我是通过在计量统计窗口中选定行来加载零号清单表的数据,比如我选定NO.3合同段的行,则此时零号清单表会自动加载NO.3合同段的数据,共为两页,图纸金额汇总就是1100,我想此时点击计量统计窗口中的中间支付证书按钮,生成的报表里,100章的图纸金额为1100.请老师帮改下生成报表的代码

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip



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