Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
直接通过代码统计的话,这样:
Dim g As New GroupTableBuilder("统计表1", DataTables("材料交货"))
g.Groups.AddDef("客户名称")
g.Totals.AddDef("数量1", "品名1")
g.Totals.AddDef("数量2", "品名2")
g.Totals.AddDef("数量3", "品名3")
g.Totals.AddDef("数量4", "品名4")
g.Totals.AddDef("数量5", "品名5")
g.Totals.AddDef("数量6", "品名6")
g.Totals.AddDef("数量7", "品名7")
g.Totals.AddDef("数量8", "品名8")
g.Build()
MainTable = Tables("统计表1")
其实可以用菜单中的分组统计命令直接统计。
另:数量6应该改为数值型
师傅你好:
统计的内容是按客户名称统计品名1-品名8列中不同类型的数量
具体格式:
客户名称 全木盘 铁木盘 等.......
你把你要的统计表格式设计好传上来看看。
你的数据表设计得不太规范,这样无法通过菜单统计,只能写代码。
向这样的结构,可能用关联表解决比较恰当,就像订单表和订单明细表的关系。
师傅你好:我是易表注册用户,看到狐表界面比易表美观,就想换一个,具体不知道灵活性怎样。
上表是在易表上做的,具体就是品名1至品名8列中不同的类型名称反映在标题栏,按客户名称进行统计。
易表的统计公式是:If(Text([%开始日期%])="" Or Text([%结束日期%])="","",SingleFill("送货交接单","客户名称","客户名称","送货日期"," >= ",[%开始日期%],"送货日期"," <= ",[%结束日期%]) And Do(395) And Subtotal("","铁木盘,全木盘,胶木盘,多层板盘,瓦楞盘,平板盘,高速盘,铁盘片,木盘片,木条,芯条,封条,木板,木箱料,木板料,扇形板,三角木,木方子,包装箱,木托架,床架板,货架板,办公桌,更衣橱,工具橱,小方櫈,四方桌,角铁,钢管,情型钢,角铁料,铁板,垫铁,拉丝光元,铁圈,内圈,支撑,螺母,弹垫,垫片,母垫,毛巾,手套,香皂,洗衣粉,电焊手套,安全帽,油漆,锯片,刨刀,条帚,扫帚,畚箕,刀具,工作服,工作鞋,防毒口罩,口罩,轴承,轴套,三角带,割枪,割咀,气管,白玻璃,镜片,桶身,螺栓,铁修理桌,铁桌子,地沟盖板,总计","2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2"))
通过这张表可以设置一张送货单
易表的长处在“易”,要说灵活,Foxtable要比易表灵活得多。
这样的统计,事先设计好统计表和动态生成统计表,是完全不同的。
也就是说要先把统计表设计好后再统计
不先设计好统计表也行。
你先把数量6这一列改为整数型,在命令窗口执行下面的代码,即可动态生成你需要的统计表:
Dim khs As List(of String) = DataTables("材料交货").GetUniqueValues("客户名称 > ''", "客户名称")
Dim pds As List(of String) = DataTables("材料交货").GetUniqueValues("品名1 > ''", "品名1")
Dim dt AS New DataTableBuilder("统计表1")
dt.AddDef("客户", Gettype(String), 32)
For Each pd As String In pds
dt.AddDef(pd, Gettype(Integer))
Next
dt.Build
Dim tb AS Table = Tables("统计表1")
For Each kh As String In khs
Dim r As Row = tb.AddNew()
Dim Sum AS Integer
r("客户") = kh
For Each pd As String In pds
sum = 0
For i As Integer = 1 To 8
sum = sum + DataTables("材料交货").Compute("Sum(数量" & i & ")", "品名" & i & " = '" & pd & "' And 客户名称 = '" & kh & "'")
Next
r(pd) = sum
Next
Next