以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 自动汇总 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=14707)
|
-- 作者:bm
-- 发布时间:2011/11/29 15:35:00
-- 自动汇总
查询表代码
Dim jb As new SQLJoinTableBuilder("查询表1","表a") jb.AddCols("作业日期", "客户","发票号码") jb.AddExp("应收款","iif(代付费用_打单费 Is null,0,代付费用_打单费) + iif(代付费用_理货费 Is null,0,代付费用_理货费)) jb.Filter = "状态 <> \'已付费\'"
Dim cb As new CrossTableBuilder("客户欠款",jb.BuildSQL) cb.HGroups.AddDef("客户") cb.HGroups.AddDef("发票号码") cb.VGroups.AddDef("作业日期",DateGroupEnum.month,"{0}月") cb.Totals.AddDef("应收款") cb.HorizontalTotal = True cb.Build() DataTables("客户欠款").SysStyles("EmptyArea").BackColor = Color.DarkTurquoise MainTable = Tables("客户欠款")
汇总模式代码
im t As Table = Tables("客户欠款") Dim g As SubtotalGroup t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False t.SpillNode = True
g = New SubtotalGroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "客户" g.TotalOn = "应收款_1,应收款_2,应收款_3,应收款_4,应收款_5,合计" g.Caption = "{0} 小计" t.SubtotalGroups.Add(g)
g = New SubtotalGroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "*" g.TotalOn = "应收款_1,应收款_2,应收款_3,应收款_4,应收款_5,合计" g.Caption = "总计" t.SubtotalGroups.Add(g)
这个怎么才自动汇总。
此主题相关图片如下:截图50.jpg

[此贴子已经被作者于2011-11-29 15:41:50编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2011/11/29 15:53:00
--
问题似乎没有问到点子上,不明白你的意思。
|
-- 作者:bm
-- 发布时间:2011/11/29 17:13:00
-- 帮忙看看
用代码生成的查询表需要自动汇总
查询表代码见一楼
此主题相关图片如下:截图54.jpg

希望打开为汇总模式
此主题相关图片如下:截图55.jpg

[此贴子已经被作者于2011-11-29 17:18:16编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2011/11/29 17:19:00
--
Dim jb As new SQLJoinTableBuilder("查询表1","表a") jb.AddCols("作业日期", "客户","发票号码") jb.AddExp("应收款","iif(代付费用_打单费 Is null,0,代付费用_打单费) + iif(代付费用_理货费 Is null,0,代付费用_理货费)) jb.Filter = "状态 <> \'已付费\'" Dim cb As new CrossTableBuilder("客户欠款",jb.BuildSQL) cb.HGroups.AddDef("客户") cb.HGroups.AddDef("发票号码") cb.VGroups.AddDef("作业日期",DateGroupEnum.month,"{0}月") cb.Totals.AddDef("应收款") cb.HorizontalTotal = True cb.Build() DataTables("客户欠款").SysStyles("EmptyArea").BackColor = Color.DarkTurquoise m t As Table = Tables("客户欠款") Dim g As SubtotalGroup t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False t.SpillNode = True g = New SubtotalGroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "客户" g.TotalOn = "应收款_1,应收款_2,应收款_3,应收款_4,应收款_5,合计" g.Caption = "{0} 小计" t.SubtotalGroups.Add(g) g = New SubtotalGroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "*" g.TotalOn = "应收款_1,应收款_2,应收款_3,应收款_4,应收款_5,合计" g.Caption = "总计" t.SubtotalGroups.Add(g) t.Subtotal MainTable = t
|
-- 作者:bm
-- 发布时间:2011/11/29 17:23:00
-- bmkk
Dim jb As new SQLJoinTableBuilder("查询表1","表a") jb.AddCols("作业日期", "客户","发票号码") jb.AddExp("应收款","iif(代付费用_打单费 Is null,0,代付费用_打单费) + iif(代付费用_理货费 Is null,0,代付费用_理货费)) jb.Filter = "状态 <> \'已付费\'" Dim cb As new CrossTableBuilder("客户欠款",jb.BuildSQL) cb.HGroups.AddDef("客户") cb.HGroups.AddDef("发票号码") cb.VGroups.AddDef("作业日期",DateGroupEnum.month,"{0}月") cb.Totals.AddDef("应收款") cb.HorizontalTotal = True cb.Build() DataTables("客户欠款").SysStyles("EmptyArea").BackColor = Color.DarkTurquoise m t As Table = Tables("客户欠款") Dim g As SubtotalGroup t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False t.SpillNode = True g = New SubtotalGroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "客户" g.TotalOn = "应收款_1,应收款_2,应收款_3,应收款_4,应收款_5,合计" g.Caption = "{0} 小计" t.SubtotalGroups.Add(g) g = New SubtotalGroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "*" g.TotalOn = "应收款_1,应收款_2,应收款_3,应收款_4,应收款_5,合计" g.Caption = "总计" t.SubtotalGroups.Add(g) t.Subtotal MainTable = t
狐狸爸爸关键在于”作业日期“产生的”月份“不确定。可能是1个月。也可能是12个月。
|
-- 作者:狐狸爸爸
-- 发布时间:2011/11/29 17:28:00
--
问题让人费解,你的代码和图片不一致。
大概: 动态合成TotalOn:
....
Dim fds as string
For Each c as Col in t.Cols
if c.Name.EndsWith("月") Then \'如果是月结尾的列
fds = fds & "," & c.name
enif
Next
fds = fds.Trim(",")
.....
g.TotalOn = fds
|
-- 作者:bm
-- 发布时间:2011/11/29 17:41:00
-- 狐狸爸爸就是这个东东。可是不计算
Dim t As Table = Tables("客户欠款") Dim g As Subtotalgroup Dim fds As String For Each c As Col In t.Cols If c.Name.EndsWith("月") Then \'如果是月结尾的列 fds = fds & "," & c.name End If Next
t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False t.SpillNode = True
g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "客户" g.TotalOn = "fds,合计" g.Caption = "{0} 小计" t.SubtotalGroups.Add(g)
g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "*" g.TotalOn = "fds,合计" g.Caption = "总计" t.SubtotalGroups.Add(g)
t.Subtotal()
[此贴子已经被作者于2011-11-29 18:07:20编辑过]
|
-- 作者:狐狸爸爸
-- 发布时间:2011/11/29 18:07:00
--
千言万语,不如一个简单实例。
|
-- 作者:bm
-- 发布时间:2011/11/29 18:30:00
-- 狐狸爸爸这个实例太难做了。
狐狸爸爸这个实例太难做了。帮忙看看吧
|
-- 作者:狐狸爸爸
-- 发布时间:2011/11/29 18:42:00
--
今天太晚,明天我帮你做个例子。
|