Dim Filter As String
With e.Form.Controls("combobox1")
If .Value IsNot Nothing Then
Filter = "parent.项目类别 = '" & .Value & "'"
End If
End With
With e.Form.Controls("combobox2")
If .Value IsNot Nothing Then
If Filter > "" Then
Filter = Filter & " And "
End If
Filter = Filter & "parent.项目名称 = '" & .Value & "'"
End If
End With
'------------------
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("申报材料明细表"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("存货编码") '根据型号分组
bd1.Filter = filter
bd1.Totals.AddDef("数量","申报材料_数量") '对数量进行统计
'bd1.Totals.AddDef("金额","进货_金额") '对金额进行统计
dt1 = bd1.BuildDataSource()
Dim bd2 As New GroupTableBuilder("统计表2",DataTables("项目内调拨材料明细表"))
Dim dt2 As fxDataSource
bd2.Groups.AddDef("存货编码") '根据型号分组
bd2.Filter = filter
bd2.Totals.AddDef("数量","项目内调拨_数量") '对数量进行统计
'bd2.Totals.AddDef("金额","销售_金额") '对金额进行统计
dt2 = bd2.BuildDataSource()
Dim bd3 As New GroupTableBuilder("统计表3",DataTables("利库材料明细表"))
Dim dt3 As fxDataSource
bd3.Groups.AddDef("存货编码") '根据型号分组
bd3.Filter = filter
bd3.Totals.AddDef("数量","利库材料_数量") '对数量进行统计
'bd3.Totals.AddDef("金额","退货_金额") '对金额进行统计
dt3 = bd3.BuildDataSource()
dt1.Combine("存货编码",dt2,"存货编码") '将销售统计数据组合到进货统计数据
dt1.Combine("存货编码",dt3,"存货编码") '将退货统计数据组合到进货统计数据
'DT1.SHOW("DT1")
Tables("需求材料_Table1").DataSource = dt1 '将统计结果绑定到Table
If Relations.Contains("关联1")
Relations.Delete("关联1")
Else
Relations.Add("关联1",DataTables("存货档案").DataCols("存货编码"),DataTables("需求材料_Table1").DataCols("存货编码"))
End If
If DataTables("需求材料_Table1").DataCols.Contains("材料名称型号规格")
DataTables("需求材料_Table1").DataCols("材料名称型号规格").Expression = "Parent.材料名称型号规格"
Else
DataTables("需求材料_Table1").DataCols.Add("材料名称型号规格", Gettype(String),"Parent.材料名称型号规格")
End If
Relations.Delete("关联1")
'Tables("组合统计_Table1").SetColVisibleWidth("存货编码|90|材料名称及规格|200|申报材料|120|申报材料_数量|120|项目内调拨|120|项目内调拨_数量|120|利库材料|120|利库材料_数量|120|需求合计|120|需求合计_数量|120")
With DataTables("需求材料_Table1").DataCols '用表达式列计算库存数据
.Add("需求合计_数量",Gettype(Integer), "IsNull([申报材料_数量],0) + ISNULL([项目内调拨_数量],0) + ISNULL([利库材料_数量],0)")
' .Add("需求_金额",Gettype(Double), "([申报材料_数量],0)*[申报材料_金额] +([项目内调拨_数量],0)*[项目内调拨_金额] + ([利库材料_数量],0) *[利库材料_金额] ")
End With
Tables("需求材料_Table1").SetColVisibleWidth("存货编码|90|材料名称型号规格|200|申报材料|120|申报材料_数量|120|项目内调拨|120|项目内调拨_数量|120|利库材料|120|利库材料_数量|120|需求合计|120|需求合计_数量|120")