Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共15 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:合并后汇总的代码疑问

1楼
唐尸三摆手 发表于:2011/1/11 16:30:00
合并后统计的代码如下,为何不是完全合并呢,请看图片的部门为什么有不完全合并的情况呢,第二列的0148就是部门代码?
图片点击可在新窗口打开查看此主题相关图片如下:screenshot.jpg
图片点击可在新窗口打开查看

'以下为合并后统计结果显示代码
With Tables("sos")
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
    .MergeCols.Add("排产日期")
    .MergeCols.Add("部门")
    .MergeCols.Add("班组")
    .MergeCols.Add("订单编号")
    .MergeSort = "排产日期,部门,班组,订单编号"
    .AllowMerge = True
End With
Dim t As Table = Tables("sos")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "排产日期"
g.DateGroup = DateGroupEnum.day
g.Caption = "{0}"
t.SubtotalGroups.Add(g)
t.Subtotal()
Dim r As Row
Dim r1 As Row
For i As Integer = 1 To t.Rows.Count(True) - 1
    r = t.Rows(i,True)
    r1 = t.Rows(i-1,True)
    If r.IsGroup '如果是分组行
        Dim f As String = "排产日期 = #" & r1("排产日期") & "#"
        Dim x1 As String = "排产日期 = #" & r1("排产日期") & "# and 大类 = '分类一'"
        Dim x2 As String = "排产日期 = #" & r1("排产日期") & "# and 大类 = '分类二'"
        Dim x3 As String = "排产日期 = #" & r1("排产日期") & "# and 大类 = '分类三'"
        Dim x4 As String = "排产日期 = #" & r1("排产日期") & "# and 大类 = ''分类四"
        Dim x5 As String = "排产日期 = #" & r1("排产日期") & "# and 大类 = ''分类五"
        Dim x6 As String = "排产日期 = #" & r1("排产日期") & "# and 大类 = ''分类六"
        Dim v As String =  "销售金额:" & t.Compute("Sum(销售)",f)
        v = v & " /产值:" & t.Compute("Sum(产值)",f)
        v = v & "/分类一:" & t.Compute("Sum(约当量)",x1)
        v = v & "/分类二:" & t.Compute("Sum(约当量)",x2)
        v = v & "/分类三:" & t.Compute("Sum(约当量)",x3)
        v = v & "/分类四:" & t.Compute("Sum(约当量)",x4)
        v = v & "/分类无:" & t.Compute("Sum(约当量)",x5)
        v = v & "/分类六:" & t.Compute("Sum(约当量)",x6)
        r("排产日期") = format(r1("排产日期"),"yyyy年MM月dd日") & "排产信息提示:" & v
        Tables("sos").AutoSizeRow(i)
    End If
Next

[此贴子已经被作者于2011-1-11 16:35:05编辑过]
2楼
czy 发表于:2011/1/11 16:48:00
原来合并的效果被g.GroupOn = "排产日期" 干掉了。
3楼
唐尸三摆手 发表于:2011/1/11 16:57:00
如何更改
4楼
czy 发表于:2011/1/11 17:04:00

没办法。

除非汇总分组等于合并列。

5楼
唐尸三摆手 发表于:2011/1/11 17:14:00
老大有无方法达到要求
6楼
blackzhu 发表于:2011/1/12 7:32:00
好像合并要先排序的吧,就是把0148的先排好序,才会将同样内容的合并.
7楼
狐狸爸爸 发表于:2011/1/12 8:31:00
g.DateGroup = DateGroupEnum.day
 
改为:
 
g.DateGroup = DateGroupEnum.None
 
看看
8楼
唐尸三摆手 发表于:2011/1/12 13:46:00
老大,这个问题跟这个是一个例子:
http://www.foxtable.com/dispbbs.asp?boardid=2&Id=8941&page=2
9楼
唐尸三摆手 发表于:2011/1/12 16:24:00
高手们请不吝赐教
10楼
狐狸爸爸 发表于:2011/1/12 16:51:00
With Tables("sop")
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
    .MergeCols.Add("排产日期")
    .MergeCols.Add("部门")
    .MergeCols.Add("班组")
    .MergeCols.Add("订单编号")
    .MergeSort = "排产日期,部门,班组,订单编号"
    .AllowMerge = True
End With
Dim t As Table = Tables("sop")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "排产日期"
g.DateGroup = DateGroupEnum.day
g.Caption = "{0}"
t.SubtotalGroups.Add(g)
t.Subtotal(True)
messagebox.show(CurrentTable.sort)
共15 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 2 queries.