以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  SQLGroupTableBuilder语句建立查询出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133929)

--  作者:18504175995
--  发布时间:2019/4/23 17:01:00
--  SQLGroupTableBuilder语句建立查询出错
老师好,我用SQLGroupTableBuilder语句做了一个查询,执行不了,又不太明白错误的原因,请帮忙指正
sql sever 数据源,名称“易通宝”,数据表名称“海运发运明细”,执行后希望在窗口中的table控件中显示,具体语句如下:
Dim g As New SQLGroupTableBuilder("后段利润统计表","海运发运明细")
g.c o n n e c t i o n N a m e = "易通宝"
g.Groups.AddDef("后程日期组_发送日期", DateGroupEnum.None, "报告发送日期")
g.Groups.AddDef("委托方")
g.Groups.AddDef("装货地")
g.Groups.AddDef("上货计划号")
g.Groups.AddDef("计划批次")
g.Groups.AddDef("计划门点")
g.Groups.AddDef("品名")
g.Groups.AddDef("规格")
g.Groups.AddDef("出港箱属")
g.Groups.AddDef("流向")
g.Groups.AddDef("船名航次")
g.Groups.AddDef("运单号")
g.Groups.AddDef("后程日期组_离港日期", DateGroupEnum.None, "离港日期")
g.Groups.AddDef("操作员")
g.Totals.AddDef("箱量统计标记", "箱量")
g.Totals.AddDef("吨数")
g.Totals.AddDef("吨数", AggregateEnum.Average)
g.Totals.AddDef("应收_应收后段", AggregateEnum.Average, "应收后段_单价")
g.Totals.AddDef("应收_应收后段", "应收后段_总额")
g.Totals.AddDef("保险_保险费", AggregateEnum.Average, "保险费_单价")
g.Totals.AddDef("保险_保险费", "保险费_总额")
g.Totals.AddDef("应付船公司_应付船公司总计", AggregateEnum.Average, "应付船公司_单价")
g.Totals.AddDef("应付船公司_应付船公司总计", "应付船公司_总额")
g.Totals.AddDef("应付达驳车队_应付达驳总计", AggregateEnum.Average, "应付达驳车队_单价")
g.Totals.AddDef("应付达驳车队_应付达驳总计", "应付达驳车队_总额")
g.Totals.AddExp("利润","应收后段_总额-保险费_总额-应付船公司_总额-应付达驳车队_总额")
g.VerticalTotal = True
g.Decimals = 2
g.Filter = "[是否发送]=true"
Tables("主页_前段利润表").DataSource = g.BuildDataSource()
出错提示:

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

图片点击可在新窗口打开查看此主题相关图片如下:f13da9f203a82af007e7e64c9547a72.png
图片点击可在新窗口打开查看
请问我的语句是哪里不对?这些字段名称和后台都是一致的啊
[此贴子已经被作者于2019/4/23 17:04:36编辑过]

--  作者:18504175995
--  发布时间:2019/4/23 17:03:00
--  
第二句没复制上,实际是g.C
--  作者:18504175995
--  发布时间:2019/4/23 17:06:00
--  
我发现C o n n e c t i o n N a m e 这个单词在这里如果不打空格发表不出来,只剩个C了
--  作者:有点甜
--  发布时间:2019/4/23 17:27:00
--  

把你的代码逐句逐句删除,然后测试是否报错。

 

提示的报错,意思是:你数据库那里,没有对应名称的列名,请你去数据库那里确认(表达式列不能直接使用)


--  作者:18504175995
--  发布时间:2019/4/24 8:50:00
--  
有点甜老师,其实我这个表可用分组统计的方法实现前面的那些列,如下
Dim g As New GroupTableBuilder("后段利润统计表",datatables("海运发运明细"))
g.Groups.AddDef("后程日期组_发送日期", DateGroupEnum.None, "报告发送日期")
g.Groups.AddDef("委托方")
g.Groups.AddDef("装货地")
g.Groups.AddDef("上货计划号")
g.Groups.AddDef("计划批次")
g.Groups.AddDef("计划门点")
g.Groups.AddDef("品名")
g.Groups.AddDef("规格")
g.Groups.AddDef("出港箱属")
g.Groups.AddDef("流向")
g.Groups.AddDef("船名航次")
g.Groups.AddDef("运单号")
g.Groups.AddDef("后程日期组_离港日期", DateGroupEnum.None, "离港日期")
g.Groups.AddDef("操作员")
g.Totals.AddDef("箱量统计标记", "箱量")
g.Totals.AddDef("吨数")
g.Totals.AddDef("吨数", AggregateEnum.Average)
g.Totals.AddDef("应收_应收后段", AggregateEnum.Average, "应收后段_单价")
g.Totals.AddDef("应收_应收后段", "应收后段_总额")
g.Totals.AddDef("保险_保险费", AggregateEnum.Average, "保险费_单价")
g.Totals.AddDef("保险_保险费", "保险费_总额")
g.Totals.AddDef("应付船公司_应付船公司总计", AggregateEnum.Average, "应付船公司_单价")
g.Totals.AddDef("应付船公司_应付船公司总计", "应付船公司_总额")
g.Totals.AddDef("应付达驳车队_应付达驳总计", AggregateEnum.Average, "应付达驳车队_单价")
g.Totals.AddDef("应付达驳车队_应付达驳总计", "应付达驳车队_总额")
g.Totals.AddExp("利润","应收后段_总额-保险费_总额-应付船公司_总额-应付达驳车队_总额")
g.VerticalTotal = True
g.Decimals = 2
g.Filter = "[是否发送]=true"
Tables("主页_前段利润表").DataSource = g.BuildDataSource()
可是唯独这个表达式列出不来,g.Totals.AddExp("利润","应收后段_总额-保险费_总额-应付船公司_总额-应付达驳车队_总额") 能不能有办法解决?
[此贴子已经被作者于2019/4/24 8:58:28编辑过]

--  作者:有点甜
--  发布时间:2019/4/24 9:12:00
--  

生成统计表后,添加表达式列计算,如

 

http://www.foxtable.com/webhelp/scr/1428.htm

 


--  作者:18504175995
--  发布时间:2019/4/24 10:16:00
--  
老师,你救了我,哈哈哈哈哈