以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  后台统计设置错误(解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129636)

--  作者:taifeng110
--  发布时间:2019/1/3 0:41:00
--  后台统计设置错误(解决)
Dim dateqi As Date =e.Form.Controls("DateTimePicker1").value
Dim datezhi As Date=e.Form.Controls("DateTimePicker2").value
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("销售订单"))
Dim dt1 As fxDataSource
\'bd1.FromServer = True
bd1.Filter="出库日期 < \'" & dateqi & "\'"
bd1.Groups.AddDef("客户编号") \'根据型号分组
bd1.Groups.AddDef("客户名称") \'根据型号分组
bd1.Totals.AddDef("期初余额","期初欠款_期初金额") \'对期初金额进行统计
bd1.Totals.AddDef("欠发票总金额","期初欠款_欠发票总金额") \'对欠发票总金额统计
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("物流明细"))
Dim dt2  As fxDataSource
\'bd2.FromServer = True
bd2.Filter="出库日期 < \'" & dateqi & "\'"
bd2.Groups.AddDef("客户编号") \'根据型号分组
bd2.Groups.AddDef("客户名称") \'根据型号分组
bd2.Totals.AddDef("出库金额","期初欠款_发货金额") \'对数量进行统计
dt2 = bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表3",DataTables("发票表"))
Dim dt3  As fxDataSource
\'bd3.FromServer = True
bd3.Filter="发票日期 < \'" & dateqi & "\'"
bd3.Groups.AddDef("客户编号") \'根据型号分组
bd3.Groups.AddDef("客户名称") \'根据型号分组
bd3.Totals.AddDef("发票金额","期初欠款_发票金额") \'对数量进行统计
dt3 = bd3.BuildDataSource()

Dim bd4 As New GroupTableBuilder("统计表4",DataTables("收款表"))
Dim dt4  As fxDataSource
\'bd4.FromServer = True
bd4.Filter="日期 < \'" & dateqi & "\'"
bd4.Groups.AddDef("客户编号") \'根据型号分组
bd4.Groups.AddDef("客户名称") \'根据型号分组
bd4.Totals.AddDef("收款金额","期初欠款_收款金额") \'对数量进行统计
dt4 = bd4.BuildDataSource()


Dim bd5 As New GroupTableBuilder("统计表5",DataTables("物流明细"))
Dim dt5  As fxDataSource
\'bd5.FromServer = True
bd5.Filter="出库日期 >= \'" & dateqi & "\' and 出库日期 <= \'" & Datezhi & "\'"
bd5.Groups.AddDef("客户编号") \'根据型号分组
bd5.Groups.AddDef("客户名称") \'根据型号分组
bd5.Totals.AddDef("出库金额","本期发生额_发货金额") \'对数量进行统计
dt5 = bd5.BuildDataSource()

Dim bd6 As New GroupTableBuilder("统计表6",DataTables("发票表"))
Dim dt6  As fxDataSource
\'bd6.FromServer = True
bd6.Filter="发票日期 >= \'" & dateqi & "\' and 发票日期 <= \'" & Datezhi & "\'"
bd6.Groups.AddDef("客户编号") \'根据型号分组
bd6.Groups.AddDef("客户名称") \'根据型号分组
bd6.Totals.AddDef("发票金额","本期发生额_发票金额") \'对数量进行统计
dt6 = bd6.BuildDataSource()

Dim bd7 As New GroupTableBuilder("统计表7",DataTables("收款表"))
Dim dt7  As fxDataSource
\'bd7.FromServer = True
bd7.Filter="日期 >= \'" & dateqi & "\' and 日期 <= \'" & Datezhi & "\'"
bd7.Groups.AddDef("客户编号") \'根据型号分组
bd7.Groups.AddDef("客户名称") \'根据型号分组
bd7.Totals.AddDef("收款金额","本期发生额_收款金额") \'对数量进行统计
dt7 = bd7.BuildDataSource()
Dim nms As String() = {"客户名称"}
dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统计数据
dt1.Combine(nms,dt3,nms) \'将销售统计数据组合到进货统计数据
dt1.Combine(nms,dt4,nms) \'将销售统计数据组合到进货统计数据
dt1.Combine(nms,dt5,nms) \'将销售统计数据组合到进货统计数据
dt1.Combine(nms,dt6,nms) \'将销售统计数据组合到进货统计数据
dt1.Combine(nms,dt7,nms) \'将销售统计数据组合到进货统计数据
\'
\'dt1.Combine("客户名称",dt2,"客户名称") \'将销售统计数据组合到进货统计数据
\'dt1.Combine("客户名称",dt3,"客户名称") \'将销售统计数据组合到进货统计数据
\'dt1.Combine("客户名称",dt4,"客户名称") \'将销售统计数据组合到进货统计数据
\'dt1.Combine("客户名称",dt5,"客户名称") \'将销售统计数据组合到进货统计数据
\'dt1.Combine("客户名称",dt6,"客户名称") \'将销售统计数据组合到进货统计数据
\'dt1.Combine("客户名称",dt7,"客户名称") \'将销售统计数据组合到进货统计数据
\'
Tables("应收账款_Table1").DataSource = dt1 \'将统计结果绑定到Table
With DataTables("应收账款_Table1").DataCols  \'用表达式列计算库存数据
    .Add("期初欠款_期初余额",Gettype(Single), "IsNull([期初欠款_期初金额],0) + ISNULL([期初欠款_发货金额],0) - ISNULL([期初欠款_收款金额],0)")
    .Add("期初欠款_期初欠发票",Gettype(Single), "IsNull([期初欠款_欠发票总金额],0) + ISNULL([期初欠款_发货金额],0) - ISNULL([期初欠款_发票金额],0)")
        .Add("期末欠款_期末欠货款",Gettype(Single), "IsNull([期初欠款_期初金额],0) + ISNULL([期初欠款_发货金额],0) - ISNULL([期初欠款_收款金额],0)+ISNULL([本期发生额_发货金额],0)+ISNULL([本期发生额_收款金额],0)")
    .Add("期末欠款_期末欠发票",Gettype(Single), "IsNull([期初欠款_欠发票总金额],0) + ISNULL([期初欠款_发货金额],0) - ISNULL([期初欠款_发票金额],0)+ISNULL([本期发生额_发货金额],0)-ISNULL([本期发生额_发票金额],0)")
End With
Tables("应收账款_Table1").Cols("期初欠款_期初金额").Visible = False
Tables("应收账款_Table1").Cols("期初欠款_欠发票总金额").Visible = False
Tables("应收账款_Table1").Cols("期初欠款_发货金额").Visible = False
Tables("应收账款_Table1").Cols("期初欠款_发票金额").Visible = False
Tables("应收账款_Table1").Cols("期初欠款_收款金额").Visible = False
Tables("应收账款_Table1").Filter ="客户编号 is not  null"
Tables("应收账款_Table1").SetColVisibleWidth("客户编号|60|客户名称|290|期初欠款_期初余额|90|期初欠款_期初欠发票|90|本期发生额_发货金额|90|本期发生额_发票金额|90|本期发生额_收款金额|90|期末欠款_期末欠货款|90|期末欠款_期末欠发票|90")
Tables("应收账款_Table1").Cols("期初欠款_期初余额").GrandTotal = True \'指定要合计的列\'
Tables("应收账款_Table1").Cols("期初欠款_期初欠发票").GrandTotal = True \'指定要合计的列\'
Tables("应收账款_Table1").Cols("本期发生额_发货金额").GrandTotal = True \'指定要合计的列\'
Tables("应收账款_Table1").Cols("本期发生额_发票金额").GrandTotal = True \'指定要合计的列\'
Tables("应收账款_Table1").Cols("本期发生额_收款金额").GrandTotal = True \'指定要合计的列\'
Tables("应收账款_Table1").Cols("期末欠款_期末欠货款").GrandTotal = True \'指定要合计的列\'
Tables("应收账款_Table1").Cols("期末欠款_期末欠发票").GrandTotal = True \'指定要合计的列\'
Tables("应收账款_Table1").GrandTotal = True \'显示合计模式

上面这段代码,但是把所有都设成FromServer = True,就提示
.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.3.9.1
错误所在事件:窗口,应收账款,Button1,Click
详细错误信息:
无法找到列 客户名称。

[此贴子已经被作者于2019/1/6 18:36:31编辑过]

--  作者:y2287958
--  发布时间:2019/1/3 8:26:00
--  
无法找到列 客户名称。


--  作者:有点甜
--  发布时间:2019/1/3 9:03:00
--  

提示很明显,你某一个表,没有【客户名称】列。

 

请分别屏蔽代码测试,看哪一段开始有问题。或者你把BuildDataSource改成build,看生成的统计表是否正确。

 

不会做上传具体实例测试。


--  作者:taifeng110
--  发布时间:2019/1/3 9:25:00
--  
为什么会这样呢?
我想让他开启后台统计的功能。

--  作者:有点甜
--  发布时间:2019/1/3 9:29:00
--  

提示很明显,你某一个表,没有【客户名称】列。

 

请分别屏蔽代码测试,看哪一段开始有问题。或者你把BuildDataSource改成build,看生成的统计表是否正确。

 

不会做上传具体实例测试


--  作者:有点甜
--  发布时间:2019/1/3 9:29:00
--  
以下是引用taifeng110在2019/1/3 9:25:00的发言:
为什么会这样呢?
我想让他开启后台统计的功能。

 

是不是你后台的表没有【客户名称】列?你【客户名称】列是表达式列?


--  作者:taifeng110
--  发布时间:2019/1/3 10:31:00
--  
我的意思是说,这段代码FromServer = True去掉后,代码都正常了
--  作者:有点甜
--  发布时间:2019/1/3 10:39:00
--  
以下是引用taifeng110在2019/1/3 10:31:00的发言:
我的意思是说,这段代码FromServer = True去掉后,代码都正常了

 

那你后台的表(数据库里面)没有【客户名称】列?你【客户名称】列是表达式列?

 

请分别屏蔽代码测试,看哪一段开始有问题。或者你把BuildDataSource改成build,看生成的统计表是否正确。

 

不会做上传具体实例测试