以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  某列为空时,报表不生成该行数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124185)

--  作者:aza520
--  发布时间:2018/9/1 9:45:00
--  某列为空时,报表不生成该行数据
用报表模板生成报表,以下是生成报表代码,想实现当“费用类别”列为空时,报表不生成该行数据,如报表中的序号1行,请问老师,该怎么处理?
Dim Book As New XLS.Book(ProjectPath & "Attachments\\资金使用状况表.xlsx")
Dim fl As String = ProjectPath & "Reports\\资金使用状况表.xlsx"
book.AddDataTable("资金使用状况表","xlgl","Selec t *, (selec t sum(Case When 结算金额 Is null Then 0 Else 结算金额 End * 1) fro m {合同执行明细} b where a.项目名称=b.项目名称 and a.合同编号=b.合同编号) As [结算金额] fro m {合同信息表} a " & IIF(DataTables("合同信息表").LoadFilter > ""," where " & DataTables("合同信息表").LoadFilter,""))
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

报表模板:

图片点击可在新窗口打开查看此主题相关图片如下:1111.png
图片点击可在新窗口打开查看


生成的报表:

图片点击可在新窗口打开查看此主题相关图片如下:1111.png
图片点击可在新窗口打开查看



--  作者:有点蓝
--  发布时间:2018/9/1 10:02:00
--  
book.AddDataTable("资金使用状况表","xlgl","Select *, (selec t sum(Case When 结算金额 Is null Then 0 Else 结算金额 End * 1) from {合同执行明细} b where a.项目名称=b.项目名称 and a.合同编号=b.合同编号) As [结算金额] from {合同信息表} a  where a.费用类别 is not null " & IIF(DataTables("合同信息表").LoadFilter > ""," and " & DataTables("合同信息表").LoadFilter,""))
--  作者:aza520
--  发布时间:2018/9/1 10:15:00
--  
Dim Book As New XLS.Book(ProjectPath & "Attachments\\资金使用状况表.xlsx")
Dim fl As String = ProjectPath & "Reports\\资金使用状况表.xlsx"
book.AddDataTable("资金使用状况表","xlgl","Selec t *, (selec t sum(Case When 结算金额 Is null Then 0 Else 结算金额 End * 1) from {合同执行明细} b where a.项目名称=b.项目名称 and a.合同编号=b.合同编号) As [结算金额] from {合同信息表} a  where a.费用类别 is not null " & IIF(DataTables("合同信息表").LoadFilter > ""," and " & DataTables("合同信息表").LoadFilter,""))
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

老师,改成这样,还是不行

--  作者:有点蓝
--  发布时间:2018/9/1 10:29:00
--  
请上传实例说明