以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 后台打印报表表达式错误 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119723) |
-- 作者:aza520 -- 发布时间:2018/5/30 19:48: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() |
-- 作者:有点甜 -- 发布时间:2018/5/30 21:19:00 -- msgbox弹出很长的sql语句是否正确
msgbox("Selec t * ,(Case When 数量 Is null Then 0 Else 数量 End) * (Case When 单价 Is null Then 0 Else 单价 End) As [金额] from {安全费用表} " & IIF(DataTables("安全费用表").LoadFilter > ""," where " & DataTables("安全费用表").LoadFilter,""))
然后拷贝生成的语句,在sql测试窗口测试,看报什么错 http://www.foxtable.com/webhelp/scr/1484.htm
|
-- 作者:aza520 -- 发布时间:2018/5/30 21:38:00 -- .NET Framework 版本:2.0.50727.8830 Foxtable 版本:2017.12.18.1 错误所在事件: 详细错误信息: 缺少对象或列名,或者对象或列名为空。对于 SELEC T INTO 语句,请确保每列均具有名称。对于其他语句,请查找空的别名。不允许使用定义为 "" 或 [] 的别名。请将别名更改为有效名称。 缺少对象或列名,或者对象或列名为空。对于 SELEC T INTO 语句,请确保每列均具有名称。对于其他语句,请查找空的别名。不允许使用定义为 "" 或 [] 的别名。请将别名更改为有效名称。 \'Selec t * ,(Case When 数量 Is null Then 0 Else 数量 End) * (Case When 单价 Is null Then 0 Else 单价 End) As [金额] fro m [安全费用表] \' 附近有语法错误。 |
-- 作者:有点甜 -- 发布时间:2018/5/30 21:52:00 -- 弹出什么?
msgbox("Select * ,(Case When 数量 Is null Then 0 Else 数量 End) * (Case When 单价 Is null Then 0 Else 单价 End) As [金额] from {安全费用表} " & IIF(DataTables("安全费用表").LoadFilter > ""," where " & DataTables("安全费用表").LoadFilter,""))
你得到的sql语句是什么? |
-- 作者:aza520 -- 发布时间:2018/5/31 10:11:00 -- 得到的语句是: Selec t * ,(Case When 数量 Is null Then 0 Else 数量 End) * (Case When 单价 Is null Then 0 Else 单价 End) As [金额] from {安全费用表} 执行SQL得到下图:
|
-- 作者:有点甜 -- 发布时间:2018/5/31 10:15:00 -- 代码没有问题,如果出错,请做一个具体实例发上来测试。 |