以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]语法错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102601)

--  作者:lgj716330
--  发布时间:2017/6/22 19:04:00
--  [求助]语法错误
Dim b As New SQLCrossTableBuilder("利润附表","科目余额")
b.AddTable("科目余额","项目明细","店铺基础档案","店铺名称") \'添加统计表
b.AddTable("科目余额","科目代码","科目档案表","科目编码") \'添加统计表
b.HGroups.AddDef("日期",DateGroupEnum.year,"年")
b.HGroups.AddDef("日期",DateGroupEnum.month,"月")
b.HGroups.AddDef("公司")
b.HGroups.AddDef("汇总部门","部门")
b.HGroups.AddDef("店铺类型")
b.VGroups.AddDef("成本大类") \'添加一级科目名称列用于垂直分组
b.Totals.AddExp("本月","case when 收支性质=\'收入\' then 本期发生额_贷方 else 本期发生额_借方 end")
b.Totals.AddExp("累计","case when 收支性质=\'收入\' then 本年累计_贷方 else 本年累计_借方 end")
b.Decimals = 2 \'小数点取0位
b.Build \'生成统计表

Dim dic As new Dictionary(of String, String)
For Each c As Col  In Tables("利润附表").cols
    dic.add(c.Caption, c.name)
Next

If dic.ContainsKey("6603财务费用_利息成本_本月") = False Then
    DataTables("利润附表").dataCols.add("6603财务费用_利息成本_本月", Gettype(Double))
    DataTables("利润附表").dataCols.add("6603财务费用_利息成本_累计", Gettype(Double))
    dic.add("6603财务费用_利息成本_本月", "6603财务费用_利息成本_本月")
    dic.add("6603财务费用_利息成本_累计", "6603财务费用_利息成本_累计")
End If

DataTables("利润附表").dataCols.add("6603财务费用_合计_本月", Gettype(Double),"isnull(" & dic("6603财务费用_利息成本_本月") & ",0)+isnull(" & dic("6603财务费用_其他成本_本月") & ",0)")

我的统计表里没有“6603财务费用_利息成本”的数据,但后面的代码都用到了这列,所以必须把这列动态生成出来,但结果仍提示以下错误:
无法设置列“6603财务费用_合计_本月“的表达式,原因:语法错误:“6603财务费用_利息成本_本月”运算符后缺少操作数。
最后提示“给定关键字不在字典中”。

然后我在统计表里录入一条“6603财务费用_利息成本”的虚拟数据,就没有错误提示了
不知如何解决。(附件上传不了)
[此贴子已经被作者于2017/6/22 19:13:20编辑过]

--  作者:有点色
--  发布时间:2017/6/22 19:23:00
--  

 不存在列 【6603财务费用_其他成本_本月】 吧?

 

 代码基本没问题,上传实例测试。


--  作者:lgj716330
--  发布时间:2017/6/22 20:51:00
--  
列6603财务费用_其他成本_本月,是有数据的,所以没问题
实例上传不了,可能是我的IE版本的问题


--  作者:有点色
--  发布时间:2017/6/22 23:58:00
--  

弹出值看看

 

msgbox(dic("6603财务费用_利息成本_本月"))

 

msgbox("isnull(" & dic("6603财务费用_利息成本_本月") & ",0)+isnull(" & dic("6603财务费用_其他成本_本月") & ",0)")

 

 


--  作者:lgj716330
--  发布时间:2017/6/23 9:24:00
--  
弹不出来。
不知是不是在科目前面加了一个编码的关系,我把编码去掉,问题就没了。编码我主要是用于排序用。

--  作者:有点蓝
--  发布时间:2017/6/23 9:26:00
--  
请上传实例测试
--  作者:lgj716330
--  发布时间:2017/6/23 9:57:00
--  
附件搞不上来,我还是把前面的编码去掉,用代码排序得了