以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 查询表生成器中带有逻辑判断的表达式 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148323) |
-- 作者:tld -- 发布时间:2020/4/5 9:40:00 -- 查询表生成器中带有逻辑判断的表达式 老师好。我用查询表生成器生成查询表,出现了错误,请您帮忙解决下,谢谢老师! Dim jb As New SQLJoinTableBuilder("查询表1","设备表") jb.AddCols("设备名称", "数量","单价") jb.AddExp("金额",iif("是否含税" = True,("数量 * 单价"),("数量 * 单价*1.06"))) Tables("窗口3_Table1").Fill(jb.BuildSql,"",True) 错误提示: .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.1.19.19 错误所在事件:窗口,窗口3,AfterLoad 详细错误信息: 从字符串“是否含税”到类型“Boolean”的转换无效。 输入字符串的格式不正确。 [此贴子已经被作者于2020/4/5 23:22:38编辑过]
|
-- 作者:sloyy -- 发布时间:2020/4/5 10:08:00 -- jb.AddExp("金额",iif("是否含税" = 1,("数量 * 单价"),("数量 * 单价*1.06"))) |
-- 作者:tld -- 发布时间:2020/4/5 17:16:00 -- 老师,把true 改 为 1 后,出现同样的错误。 |
-- 作者:sloyy -- 发布时间:2020/4/5 20:52:00 -- 哦 格式如下 : jb.AddExp("金额", "数量 * 单价") 你的整个表达式都写错了,表达式要用""包围起来, 你好好想想怎么构建这个表达式,先自己做,如果搞不定,我晚点再告诉你. |
-- 作者:有点蓝 -- 发布时间:2020/4/5 22:40:00 -- jb.AddExp("金额","iif(是否含税 = True,数量 * 单价,数量 * 单价*1.06)") 如果是SqlServer,iif改为case when用法:http://www.foxtable.com/webhelp/topics/1827.htm
|
-- 作者:tld -- 发布时间:2020/4/6 0:05:00 -- 蓝老师,我最终使用sqlserver,但我实在想不出用case或when如何代替iif。iif是一行语句,jb.AddExp 在一行语句中完成,如果改成case或when,就得多行。如何写代码? |
-- 作者:有点蓝 -- 发布时间:2020/4/6 10:07:00 -- jb.AddExp("金额"," case when 是否含税 = True then 数量 * 单价 else 数量 * 单价*1.06 end") |