以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于SQLCrossTableBuilder交叉统计的一个问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149371)

--  作者:1669607010
--  发布时间:2020/4/29 21:07:00
--  [求助]关于SQLCrossTableBuilder交叉统计的一个问题
设置了一个交叉汇总
Dim d1 As Date = e.Form.Controls("StartDate2").Value
Dim d2 As Date =e.Form.Controls("EndDate2").Value
Dim b As New SQLCrossTableBuilder("设备配件年汇总","设备配件采购")
b.C
b.Filter="结算日期 >= \'" & d1 & "\' And 结算日期 <= \'" & d2 & "\'"

b.VGroups.AddExp("年" , "Year(Case When Day(结算日期) > 22 Then DateAdd(d,9,结算日期) Else 结算日期 End)")
b.VGroups.AddExp("月" , "Month(Case When Day(结算日期) > 22 Then DateAdd(d,9,结算日期) Else 结算日期 End)")

b.HGroups.AddDef("申购单位")
b.Totals.AddDef("结算金额", "结算金额")
b.HorizontalTotal = True
b.VerticalTotal = True
b.Build()
以上代码可以正常统计,现在想互换一下水平统计列和垂直统计列,把代码改成下面的问什么提示“输入的字符串格式不正确”,不能正常统计,哪位老师看看,是哪里的问题,谢谢



Dim d1 As Date = e.Form.Controls("StartDate2").Value
Dim d2 As Date =e.Form.Controls("EndDate2").Value
Dim b As New SQLCrossTableBuilder("设备配件年汇总","设备配件采购")
b.C
b.Filter="结算日期 >= \'" & d1 & "\' And 结算日期 <= \'" & d2 & "\'"

b.HGroups.AddExp("年" , "Year(Case When Day(结算日期) > 22 Then DateAdd(d,9,结算日期) Else 结算日期 End)")
b.HGroups.AddExp("月" , "Month(Case When Day(结算日期) > 22 Then DateAdd(d,9,结算日期) Else 结算日期 End)")

b.VGroups.AddDef("申购单位")
b.Totals.AddDef("结算金额", "结算金额")
b.HorizontalTotal = True
b.VerticalTotal = True
b.Build()

我只知道问题出在2行绿色代码上,因为上面绿色的代码改为
b.HGroups.AddDef("结算日期", DateGroupEnum.Year, "年")
b.HGroups.AddDef("结算日期", "月")
就可以正常统计,但是加了表达式后就不行了,哪位老师看看,哪里处理问题?
[此贴子已经被作者于2020/4/29 21:16:11编辑过]

--  作者:有点蓝
--  发布时间:2020/4/30 9:40:00
--  
我测试没有问题

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

试试
b.Totals.AddDef("结算金额", "结算金额")
改为
b.Totals.AddDef("结算金额")