以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  下面这个汇总什么和统计合一起  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189282)

--  作者:qazlinle6
--  发布时间:2023/11/21 22:15:00
--  下面这个汇总什么和统计合一起
   
        
        
        
        \'根据输入的年月,统计各产品的销售数量
        Dim g As New SQLGroupTableBuilder("统计表1", "标签明细") \'这里使用后台统计,如果数据已经全部加载可以直接用GroupTableBuilder
        g.C \'外部数据表的话要指定数据源名称

        g.Groups.AddDef("对账品名", "对账品名")
        g.Groups.AddDef("库存店名")
        g.Totals.AddDef("数量")
        g.Totals.AddDef("金重")
        g.Totals.AddDef("总重量")
        g.Totals.AddDef("标签价格")
        g.VerticalTotal = True
        g.Filter = "库存备注 = \'柜台货\'  And 库存店名 In (\'周六福(1)\',\'周六福(4)\',\'周六福(7)\')  And 对账品名 In (\'5G黄金\', \'金Au750\', \'足金999‰硬金\', \'足金999‰\', \'足金999.9‰\',\'足金999.9非素\') "\'后台统计才可以使用这种表达式的哦
        With wb.AddTable("", "Table1")

        
            .CreateFromDataTable(g.Build(True))
      

 Dim nms() As String
            Dim qty As Integer
            Dim amt As Double
            .Head.AddRow( "对账品名", "库存店名", "数量", "金重", "总重量", "标签价格")
            For i As Integer = 0 To g.DataRows.count - 1
                Dim r As DataRow = g.DataRows(i)
                If i > 0 Then
                    Dim lr As DataRow = g.DataRows(i - 1)
                    If r("库存店名") <> lr("库存店名") Then
                        qty = g.compute("sum(数量)", "对账品名=\'" & lr("对账品名") & "\' And 库存店名= \'" & lr("库存店名") & "\'")
                        amt = g.compute("sum(金重)", "对账品名=\'" & lr("对账品名") & "\' And 库存店名= \'" & lr("库存店名") & "\'")
                     With .Body.AddRow()
                            .Attribute = "style=\'background-color:#F0FFFF\'"
                            .AddCell("小计 " & lr("库存店名"), "colspan=\'3\'")
                            .AddCells(qty, "", amt, "")
                        End With
                    End If
                    If r("对账品名") <> lr("对账品名") Then
                        qty = g.compute("sum(数量)", "对账品名=\'" & lr("对账品名") & "\'")
                        amt = g.compute("sum(金重)", "对账品名=\'" & lr("对账品名") & "\'")
                        With .Body.AddRow()
                            .Attribute = "style=\'background-color:#FFFFE0\'"
                            .AddCell("小计 " & lr("对账品名"), "colspan=\'3\'")
                            .AddCells(qty, "", amt, "")
                        End With
                    End If
                End If
                .Body.AddRow( r("对账品名"), r("库存店名"), r("数量"), r("金重"), r("总重量"), r("标签价格"))
            Next
            qty = g.compute("sum(数量)")
            amt = g.compute("sum(金重)")
            If EndRow >= Count Then
                .Body.AddRow("总计", "", "", qty, "", amt, "").Attribute = "style=\'background-color:#98FB98\'"
            End If
            
   End With


下面这个汇总什么和统计合一起

--  作者:有点蓝
--  发布时间:2023/11/21 22:40:00
--  
……
       With wb.AddTable("", "Table1")

        dim dt as datatable = g.Build(True)


 Dim nms() As String
            Dim qty As Integer
            Dim amt As Double
            .Head.AddRow( "对账品名", "库存店名", "数量", "金重", "总重量", "标签价格")
            For i As Integer = 0 To dt .DataRows.count - 1
                Dim r As DataRow = dt .DataRows(i)
                If i > 0 Then
                    Dim lr As DataRow = dt .DataRows(i - 1)
                    If r("库存店名") <> lr("库存店名") Then
                        qty = dt .compute("sum(数量)", "对账品名=\'" & lr("对账品名") & "\' And 库存店名= \'" & lr("库存店名") & "\'")
……