以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 从不同的表调用数据生成报表 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128652) |
-- 作者:aza520 -- 发布时间:2018/12/12 11:40:00 -- 从不同的表调用数据生成报表 老师,我想从不同的表调用数据生成报表,请问以下两段代码怎么合并 Dim Book
As New XLS.Book(ProjectPath & "Attachments\\分项工程中期支付汇总表.xlsx") Dim fl
As String = ProjectPath & "Reports\\分项工程中期支付汇总表.xlsx" Dim filter
As String = DataTables("中间计量表").loadfilter filter = IIF(filter > ""," where
" & filter,"") book.AddDataTable("分项工程中期支付汇总表","xlgl","selec t
项目名称,施工合同段,章节,支付编号,细目名称,单位,sum(申报数量) as 申报数量,sum(申报数量 * 单价) as 申报金额 fro m {中间计量表} " & filter & " group by 项目名称,施工合同段,章节,支付编号,细目名称,单位") Book.Build() Book.Save(fl) Dim Proc As New Process Proc.File = fl Proc.Start()
Dim Book
As New XLS.Book(ProjectPath & "Attachments\\分项工程中期支付汇总表.xlsx") Dim fl
As String = ProjectPath & "Reports\\分项工程中期支付汇总表.xlsx" Dim filter
As String = DataTables("工程量清单").loadfilter filter = IIF(filter > ""," where
" & filter,"") book.AddDataTable("分项工程中期支付汇总表","xlgl","selec t
项目名称,施工合同段,章节,支付编号,细目名称,单位,sum(合同数量) as 合同数量,sum(合同数量 * 单价) as 合同金额 fro m {工程量清单} " & filter & " group by 项目名称,施工合同段,章节,支付编号,细目名称,单位") Book.Build() Book.Save(fl) Dim Proc As New Process Proc.File = fl Proc.Start() 报表模板: |
-- 作者:有点甜 -- 发布时间:2018/12/12 11:49:00 -- 1、你要把两个表的数据合并在一起再导出,还是说一个表导出一个sheet,然后得到两个sheet?
2、合并两个表,用union all即可,如
http://www.foxtable.com/webhelp/scr/0688.htm
|
-- 作者:aza520 -- 发布时间:2018/12/12 16:01:00 -- "中间计量表"和”工程量清单表“都有项目名称,施工合同段,章节,支付编号列,老师,以下代码想从工程量清单提取数据生成模板报表中的{合同数量}和{合同金额}列,怎么处理? Dim Book
As New XLS.Book(ProjectPath & "Attachments\\分项工程中期支付汇总表.xlsx") Dim fl
As String = ProjectPath & "Reports\\分项工程中期支付汇总表.xlsx" Dim filter
As String = DataTables("中间计量表").loadfilter filter = IIF(filter > ""," where
" & filter,"") book.AddDataTable("分项工程中期支付汇总表","xlgl","selec t
项目名称,施工合同段,章节,支付编号,细目名称,单位,sum(申报数量) as 申报数量,sum(申报数量 * 单价) as 申报金额 fro m {中间计量表}, selec t 数量 as 合同数量,数量
* 单价 as 合同金额 fro m {工程量清单} INNER JOIN {中间计量表} ON {工程量清单}.项目名称 = {中间计量表}.项目名称 and {工程量清单}.施工合同段 = {中间计量表}.施工合同段 and {工程量清单}.章节 = {中间计量表}.章节 and {工程量清单}.支付编号= {中间计量表}.支付编号 " & filter & " group by 项目名称,施工合同段,章节,支付编号,细目名称,单位") Book.Build() Book.Save(fl) Dim Proc As New Process Proc.File = fl Proc.Start() |
-- 作者:有点甜 -- 发布时间:2018/12/12 16:55:00 -- 没看懂你的问题。把两个表用union all合并起来,然后再处理啊
http://www.foxtable.com/webhelp/scr/0688.htm
五、UNION 运算符 UNION运算符用于组合两个查询的结果。 默认情况下,UNION会自动排除重复的行,然后你可以用ALL关键词来确保返回所有的行,例如: SELECT 公司名称, 地址 FROM {客户} WHERE 国家 = \'中国\' UNION ALL SELECT 公司名称, 地址 FROM {供应商} WHERE 国家 = \'中国\' |
-- 作者:aza520 -- 发布时间:2018/12/12 17:38:00 -- 就是报表中的【合同数量】、【合同金额】数据来自”工程量清单“表,【申报数量】和【申报金额】数据来自”中间计量表”,不知道该怎么合并 |
-- 作者:有点甜 -- 发布时间:2018/12/12 18:23:00 -- 这样,比如
SELECT 公司名称, 地址, 合同数量, 合同金额, 0.0 as 申报数量, 0.0 as 申报金额 FROM {客户} UNION ALL SELECT 公司名称, 地址, 0, 0, 申报数量, 申报金额 FROM {供应商} |
-- 作者:aza520 -- 发布时间:2018/12/13 9:58:00 -- 合同金额=合同数量 * 单价, 申报金额=申报数量 * 单价。老师,以下代码有什么不对 SELEC T 项目名称,施工合同段,章节,支付编号,细目名称,单位, 合同数量, 合同数量 * 单价, 0.0 as 申报数量, 0.0 as 申报数量 * 单价 FRO M {工程量清单} UNION
ALL SELEC T 项目名称,施工合同段,章节,支付编号,细目名称,单位, 0, 0, 申报数量, 申报数量 * 单价 FRO M {中间计量表} |
-- 作者:有点甜 -- 发布时间:2018/12/13 10:37:00 -- SELEC T 项目名称,施工合同段,章节,支付编号,细目名称,单位, 合同数量, 合同数量 * 单价 as 合同金额, 0.0 as 申报数量, 0.0 as 申报金额 FRO M {工程量清单} UNION ALL SELEC T 项目名称,施工合同段,章节,支付编号,细目名称,单位, 0, 0, 申报数量, 申报数量 * 单价 FRO M {中间计量表} |
-- 作者:aza520 -- 发布时间:2018/12/13 17:00:00 -- 老师,下面的代码生的报表是把每次计量的支付编号都分开生成,如图,我想相同的支付编号只生成一行,各类数量和金额则汇总生成到对应支付编号下 Dim Book As New XLS.Book(ProjectPath & "Attachments\\分项工程中期支付汇总表.xlsx") Dim fl As String = ProjectPath & "Reports\\分项工程中期支付汇总表.xlsx" Dim filter As String = DataTables("中间计量表").loadfilter filter = IIF(filter > ""," where " & filter,"") book.AddDataTable("分项工程中期支付汇总表","xlgl"," SELEC T 项目名称,施工合同段,章节,支付编号,细目名称,单位, 数量, 数量 * 单价 as 合同金额, 0.0 as 申报数量, 0.0 as 申报金额 FRO M {工程量清单} UNION ALL SELEC T 项目名称,施工合同段,章节,支付编号,细目名称,单位, 0, 0, 申报数量, 申报数量 * 单价 FRO M {中间计量表}") Book.Build() Book.Save(fl) Dim Proc As New Process Proc.File = fl Proc.Start() |
-- 作者:有点甜 -- 发布时间:2018/12/13 18:00:00 -- 再分组统计一次,如
select 项目名称,施工合同段,章节,支付编号,细目名称,单位, sum(数量) as 数量, sum(金额合同) as 金额合同,sum(申报数量) as 申报数量, sum(申报金额) as 申报金额 from (SELEC T 项目名称,施工合同段,章节,支付编号,细目名称,单位, 数量, 数量 * 单价 as 合同金额, 0.0 as 申报数量, 0.0 as 申报金额 FRO M {工程量清单} UNION ALL SELEC T 项目名称,施工合同段,章节,支付编号,细目名称,单位, 0, 0, 申报数量, 申报数量 * 单价 FRO M {中间计量表}) as a group by 项目名称,施工合同段,章节,支付编号,细目名称,单位 |