Foxtable(狐表)用户栏目专家坐堂 → [求助]临时表统计


  共有3935人关注过本帖树形打印复制链接

主题:[求助]临时表统计

帅哥哟,离线,有人找我吗?
lgj716330
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]临时表统计  发帖心情 Post By:2017/7/19 11:07:00 [只看该作者]

Dim Filter As String = "1=1" 
Dim Filter1 As String = "1=1" 
With e.Form.Controls("SYB")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter  = Filter & " And "
        End If
        Filter  = Filter & "事业部 In ( '" & .Value.replace(",","','") & "')"
    End If
End With
With e.Form.Controls("RQ1")
    If .Value IsNot Nothing Then
        If Filter1 > "" Then
            Filter1 = Filter1 & " And "
        End If
        Filter1 = Filter1 & "日期 >= '" & .value & "'"
    End If
End With
With e.Form.Controls("RQ2") 
    If .Value IsNot Nothing Then
        If Filter1 > "" Then
            Filter1 = Filter1 & " And "
        End If
        Filter1 = Filter1 & "日期 <= '" & .value & "'"
    End If
End With

Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("日期", Gettype(Date), 4)
dtb.AddDef("费用类型", Gettype(String), 10)
dtb.AddDef("费用性质", Gettype(String), 10)
dtb.AddDef("费用科目", Gettype(String), 10)
dtb.AddDef("生产部门", Gettype(String), 10)
dtb.AddDef("固定费用", Gettype(Double))
dtb.Build()
Dim kms() As String = {"A1","A2","A3","A4","A5"}
For Each dr1 As DataRow In DataTables("固定费用分配表").DataRows
 For Each km As String In kms
 Dim dr2 As DataRow = DataTables("表B").AddNew()
 dr2("日期") = dr1("日期")
 dr2("费用类型") = dr1("费用类型")
 dr2("费用性质") = dr1("费用性质")
 dr2("费用科目") = dr1("费用科目")
 dr2("生产部门") = km
 dr2("固定费用") = dr1(km)
 Next
Next


Dim b As New SQLCrossTableBuilder("统计表1","表B")
Dim dt1 As fxDataSource
b.AddTable("表B","生产部门","生产部门档案","部门名称") 
b.HGroups.AddDef("日期",DateGroupEnum.none)
b.HGroups.AddDef("生产部门") 
b.VGroups.AddDef("费用性质") 
b.VGroups.AddDef("费用类型") 
b.Totals.AddDef("固定费用") 
b.Filter = Filter1
dt1 = b.BuildDataSource()
dt1.Show("统计表1") 


临时表可以用SQLCrossTableBuilder吗,上述代码显示错误,“多余的)在查询表达式‘[日期])‘中

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111401 积分:567075 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/19 11:21:00 [只看该作者]

临时表不可以用SQLCrossTableBuilder


 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/7/19 12:36:00 [只看该作者]

Dim b0 As New GroupTableBuilder("表BB",DataTables("表B"))
Dim dt10 As fxDataSource
b0.Groups.AddDef("日期",DateGroupEnum.none) 
b0.Groups.AddDef("生产部门") 
b0.Groups.AddDef("费用性质") 
b0.Groups.AddDef("费用类型") 
b0.Totals.AddDef("固定费用") 
b0.Filter = Filter1
dt10 = b0.BuildDataSource()

Dim b00 As New GroupTableBuilder("表BC",DataTables("生产部门档案"))
Dim dt100 As fxDataSource
b00.Groups.AddDef("部门名称") 
b00.Groups.AddDef("事业部") 
b00.Filter = Filter
dt100 = b00.BuildDataSource()

dt10.Combine("生产部门",dt100,"部门名称") 
dt10.Show("表BB") '显示统计结果

嗯,我中间通过这样过渡了下,但表BB的“生产部门”同一个部门有多行,而表BC的“部门名称”是唯一的,如何将表BC的“事业部”匹配到表BB的每一行上呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/19 14:29:00 [只看该作者]

生成表BB以后,循环每一行,去【部门档案】表查询对应的数据,然后赋值。

 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/7/19 15:30:00 [只看该作者]

明白了

 回到顶部