以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [原创]查询统计表如何筛选与修改数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=29785)

--  作者:charlyni
--  发布时间: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("变动额度","已开票金额") \'对金额进行统计
bd3.Filter = "操作类型 = \'开票金额变动\'"
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("已开票金额").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
按此在新窗口浏览图片

--  作者:狐狸爸爸
--  发布时间:2013/3/13 15:23:00
--  

无缘无故某一行?

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


--  作者:don
--  发布时间: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