以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教从关联表中取数问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=19158)

--  作者:wkq001
--  发布时间:2012/4/29 11:11:00
--  请教从关联表中取数问题

请教狐爸:

     我设了两个表,一个表是明细表,主要的列包括费用项目,车辆号,用车部门、金额;

                        另一个表是统计表,就是按车辆号进行统计

     本来在FOXTABLE里面可以进行很方便的交叉统计,但交叉统计生成的是一个临时文件,我想做成固定的表,

     我试了很久,都不知道如何设条件,我看帮助,有些语句还是看不大明白,所以请教狐爸如何按我自己的想法生成统计表?

     先行感谢!

     顺致节日快乐!


--  作者:shenyl0211
--  发布时间:2012/5/1 18:53:00
--  

顶一下。这是一个很现实的问题。

我也遇到这个问题了。对于到款分月统计,不仅宽度超出屏幕,而且不知怎么地设计且保存了的统计,在一次意外退出后,不仅数据没保存,连交叉统计方法竟然也没了。只能自己设计固定的表格。

但是,对于水平先按实体名称、每个实体名称再按两种状态(在建、完工)、竖向按12个月的交叉统计,按照帮助的简单讲解根本无法实现。

 

我现在已经变相、基本解决了,虽然有什么就统计什么,但没有到款的实体有哪些就不知道了——另外,不知道交叉统计中为什么只能查看代码、不能编辑代码

If MainTable.Name = "开票到款管理" Then \'交叉统计来自该表,故不需专门设计按钮,只要点该表名就行了。
    Dim g As New CrossTableBuilder("到款统计", DataTables("开票到款管理"), "[实体名称]>\'\' and [状态]>\'\' and [到款金额]>0") \'考虑到开票有废票,造成项目名称为空,因此状态也为空、到款也为空,故剔除这些记录
    g.HGroups.AddDef("实体名称") \'按实体名称分类
    g.HGroups.AddDef("状态") \'建二级分类
    g.VGroups.AddDef("到款日期", DateGroupEnum.Year, "{0}年") \'考虑到有上年的到款
    g.VGroups.AddDef("到款日期", "{0}月") \'分月统计
    g.Totals.AddDef("到款金额", "到款金额") \'统计到款金额
    g.OrderByTotal = True
    g.HorizontalTotal = True \'水平方向自动合计
    g.VerticalTotal = True \'垂直方向自动合计
    g.Filter = "[实体名称]>\'\' and [状态]>\'\' and [到款金额]>0" \'过滤条件,不知道为什么还会需要这句——前面已经有了
    g.Build()
    With Tables("到款统计") \'合并相同的实体名称
        .MergeMode = MergeModeEnum.Standard
        .MergeCols.Clear()
        .MergeCols.Add("实体名称")
        .AllowMerge = True
    End With
    Tables("到款统计").AutoSizeCols() ’设置最合适列宽
 End If

 

[此贴子已经被作者于2012-5-1 20:04:51编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/5/2 8:32:00
--  

固定的统计表,参考:

http://www.foxtable.com/help/topics/0681.htm

http://www.foxtable.com/help/topics/2394.htm