以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]统计相关问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=34488)

--  作者:fjt4444
--  发布时间:2013/6/8 9:46:00
--  [求助]统计相关问题
表结构如下:
日期                  费别                   金额                     返利 
06-11             管理费                   100                      10
06-11             通行费                   50                         5


代码如下:

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("规费记录"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("日期")
bd1.Totals.AddDef("金额","管理费")
bd1.Totals.AddDef("返利","代办返利")
bd1.Filter = a+b
dt1 = bd1.BuildDataSource()

希望实现功能:统计出费别为“管理费”的金额总和。就是在  bd1.Totals.AddDef("金额","管理费")  这怎么判断?不会写


--  作者:Bin
--  发布时间:2013/6/8 9:52:00
--  
http://www.foxtable.com/help/topics/1618.htm

帮助中有.你应该添加一个  bd1.Groups.AddDef("费别")

--  作者:fjt4444
--  发布时间:2013/6/8 10:11:00
--  
你看懂我的情况没有哦?我的费别有很多字段,怎么确定是管理费这一列,我只要显示“管理费”的,其他不显示
--  作者:Bin
--  发布时间:2013/6/8 10:13:00
--  
帮助中有的,  设置一下 b.Filter = "[费别] = \'管理费\'" 即可
--  作者:Bin
--  发布时间:2013/6/8 10:13:00
--  
http://www.foxtable.com/help/topics/0677.htm
--  作者:fjt4444
--  发布时间:2013/6/8 10:14:00
--  
我总不可能这样写嘛:bd1.Groups.AddDef("费别=’管理费‘")。  行不通的哇。    怎么解?
--  作者:XYT
--  发布时间:2013/6/8 10:19:00
--  
你统计按钮先执行筛选在统计啊
--  作者:fjt4444
--  发布时间:2013/6/8 10:25:00
--  
这是代码,加了Filter后还是不行!  统计出来还是2个费用的合计,不是管理费的合计


Dim bb As WinForm.Button = e.Form.Controls("Button2")
Dim tb As WinForm.Table = e.Form.Controls("Table1")

Dim dqq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim dqz As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
Dim a As String
Dim b As String
a=""
b=""
If CLDate(dqq.Value)<>"一年一月一日"
    a="日期>=\'"+dqq.Value+"\'"
End If

If CLDate(dqq.Value)="一年一月一日" And CLDate(dqz.Value)<>"一年一月一日" Then
    b="日期<=\'"+dqz.Value+"\'"
End If
If CLDate(dqq.Value)<>"一年一月一日" And CLDate(dqz.Value)<>"一年一月一日" Then
    b="and 日期<=\'"+dqz.Value+"\'"
End If

If a <>"" And b <>"" And dqq.Value > dqz.Value
    tb.Visible=False
    MessageBox.Show("时间填写不对!")
    Return
End If

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("规费记录"))
Dim dt1 As fxDataSource

bd1.Filter = "[费别] = \'管理费\'"
bd1.Groups.AddDef("日期","月")
bd1.Totals.AddDef("金额","管理费")
bd1.Totals.AddDef("返利","代办返利")


dt1 = bd1.BuildDataSource()


Dim bd2 As New GroupTableBuilder("统计表2",DataTables("公司支出"))
Dim dt2  As fxDataSource
bd2.Groups.AddDef("日期","月")
bd2.Totals.AddDef("金额","营业支出")

dt2 = bd2.BuildDataSource()

dt1.Combine("月",dt2,"月")

Tables("经营报表_Table1").DataSource = dt1

With DataTables("经营报表_Table1").DataCols  
   .Add("纯利润",Gettype(Double), "IsNull([管理费],0) + IsNull([代办返利],0) - IsNull([营业支出],0)")
End With



For Each  r As Row In  Tables("经营报表_Table1").Rows
If r.IsNull("月") Then
r.Delete
End If
Next

tb.Visible=True
bb.Enabled=True

--  作者:Bin
--  发布时间:2013/6/8 10:28:00
--  
你这么多代码看得乱,可能有其他代码影响了.

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("规费记录"))
Dim dt1 As fxDataSource

bd1.Filter = "[费别] = \'管理费\'"
bd1.Groups.AddDef("日期","月")
bd1.Totals.AddDef("金额","管理费")
bd1.Totals.AddDef("返利","代办返利")


dt1 = bd1.BuildDataSource()
你就直接执行这一段可以饿 

--  作者:Bin
--  发布时间:2013/6/8 10:29:00
--  
实在不行你上例子吧!