Foxtable(狐表)用户栏目专家坐堂 → [原创]查询统计表如何筛选与修改数据


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

主题:[原创]查询统计表如何筛选与修改数据

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


加好友 发短信
等级:婴狐 帖子:18 积分:242 威望:0 精华:0 注册:2012/12/17 20:52:00
[原创]查询统计表如何筛选与修改数据  发帖心情 Post By:2013/3/13 15:21:00 [只看该作者]

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("总明细表"))
Dim dt1 As fxDataSource
'bd1.Groups.AddDef("项目编号") '根据项目分组
bd1.Groups.AddDef("项目名称")
'bd1.Groups.AddDef("公司名称")
'bd1.Groups.AddDef("合同状态")
'bd1.Groups.AddDef("报备者1")
'bd1.Groups.AddDef("权重1")
'bd1.Groups.AddDef("报备者2")
'bd1.Groups.AddDef("权重2")
'bd1.Groups.AddDef("报备者3")
'bd1.Groups.AddDef("权重3")
'bd1.Groups.AddDef("合同签订日期")
'bd1.Groups.AddDef("利息率")
'bd1.Groups.AddDef("提成率")

bd1.Totals.AddDef("变动额度","合同金额") '对金额进行统计
bd1.Filter = "操作类型 = '合同金额变动'"
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("总明细表"))
Dim dt2 As fxDataSource
bd2.Groups.AddDef("项目名称") '根据项目分组
bd2.Totals.AddDef("变动额度","已发货金额") '对金额进行统计
bd2.Filter = "操作类型 = '发货金额变动'"
dt2 = bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表3",DataTables("总明细表"))
Dim dt3 As fxDataSource
bd3.Groups.AddDef("项目名称") '根据项目分组
bd3.Totals.AddDef("变动额度","已开piao金额") '对金额进行统计
bd3.Filter = "操作类型 = '开piao金额变动'"
dt3 = bd3.BuildDataSource()

Dim bd4 As New GroupTableBuilder("统计表4",DataTables("总明细表"))
Dim dt4 As fxDataSource
bd4.Groups.AddDef("项目名称") '根据项目分组
bd4.Totals.AddDef("变动额度","已收款金额") '对金额进行统计
bd4.Filter = "操作类型 = '收款金额变动'"
dt4 = bd4.BuildDataSource()

Dim bd5 As New GroupTableBuilder("统计表5",DataTables("总明细表"))
Dim dt5 As fxDataSource
bd5.Groups.AddDef("项目名称") '根据项目分组
bd5.Totals.AddDef("变动额度","其它金额") '对金额进行统计
bd5.Filter = "操作类型 = '其它金额变动'"
dt5 = bd5.BuildDataSource()

Dim bd6 As New GroupTableBuilder("统计表6",DataTables("总明细表"))
Dim dt6 As fxDataSource
bd6.Groups.AddDef("项目名称") '根据项目分组
bd6.Totals.AddDef("变动额度","质保金") '对金额进行统计
bd6.Filter = "操作类型 = '质保金'"
dt6 = bd6.BuildDataSource()

Dim bd7 As New GroupTableBuilder("统计表7",DataTables("总明细表"))
Dim dt7 As fxDataSource
bd7.Groups.AddDef("项目名称") '根据项目分组
bd7.Totals.AddDef("变动额度","未收应收款金额") '对金额进行统计
bd7.Filter = "操作类型 = '应收款金额变动'"
dt7 = bd7.BuildDataSource()

Dim bd8 As New GroupTableBuilder("统计表8",DataTables("总明细表"))
Dim dt8 As fxDataSource
bd8.Groups.AddDef("项目名称") '根据项目分组
bd8.Totals.AddDef("利息扣除","逾期利息扣除") '对金额进行统计
bd8.Filter = "操作类型 = '应收款金额变动' OR 操作类型 = '质保金' "
dt8 = bd8.BuildDataSource()

Dim bd9 As New GroupTableBuilder("统计表9",DataTables("总明细表"))
Dim dt9 As fxDataSource
bd9.Groups.AddDef("项目名称") '根据项目分组
bd9.Totals.AddDef("变动额度","其它扣除") '对金额进行统计
bd9.Filter = "操作类型 = '其它扣除项'"
dt9 = bd9.BuildDataSource()

Dim bd10 As New GroupTableBuilder("统计表10",DataTables("项目信息表"))
Dim dt10 As fxDataSource
bd10.Groups.AddDef("项目名称") '根据项目分组
bd10.Totals.AddDef("提成率","提成率") '对金额进行统计
dt10 = bd10.BuildDataSource()


dt1.Combine("项目名称",dt2,"项目名称") '将销售统计数据组合到进货统计数据
dt1.Combine("项目名称",dt3,"项目名称")
dt1.Combine("项目名称",dt4,"项目名称")
dt1.Combine("项目名称",dt5,"项目名称")
dt1.Combine("项目名称",dt6,"项目名称")
dt1.Combine("项目名称",dt7,"项目名称")
dt1.Combine("项目名称",dt8,"项目名称")
dt1.Combine("项目名称",dt9,"项目名称")
dt1.Combine("项目名称",dt10,"项目名称")

 

Tables("项目数据统计_Table1").DataSource = dt1 '将统计结果绑定到Table

With DataTables("项目数据统计_Table1").DataCols  '用表达式列计算库存数据
    .Add("未收款金额",Gettype(Double), "IsNull([已发货金额],0) - ISNULL([已收款金额],0) - ISNULL([其它金额],0)")
    .Add("累计提成余额",Gettype(Double), "IsNull([已收款金额],0) * IsNull([提成率],0) - ISNULL([逾期利息扣除],0) - ISNULL([其它扣除],0)")
End With
Tables("项目数据统计_Table1").DataTable.DataCols("合同金额").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("已发货金额").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("已开piao金额").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("已收款金额").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("其它金额").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("质保金").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("未收应收款金额").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("逾期利息扣除").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("其它扣除").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("未收款金额").SetFormat("#,###.##")
Tables("项目数据统计_Table1").DataTable.DataCols("累计提成余额").SetFormat("#,###.##")

 

如下图,现在我想将某一行数值列全部乘以权重50%,再刷新,然后重新显示出来,怎么做呢?


此主题相关图片如下:qq截图20130313150810.png
按此在新窗口浏览图片

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/13 15:23:00 [只看该作者]

无缘无故某一行?

你总得有个条件吧,否则怎么知道哪一行的哪一列要乘以50%?


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/3/13 15:46:00 [只看该作者]

Dim  r1 as Row 

Dim tb1 as Table = Tables("项目数据统计_Table1")   

r1 =tb1. Current

if r1 isnot nothing then

   For Each c As Col In tb1.Cols
      If
 c.IsNumeric
Then
        r1(c.name) = 
 r1(c.name)*0.5 
      End
If
   Next

End If


 回到顶部