这个应该再没疑问了吧,再搞不定确实该打PP了
Dim v1 As String() = {"入库日期","入库单号","数量","单价","iif(数量 is null,0,数量)*iif(单价 is null,0,单价)"} '公式
Dim v2 As String() = {"入库日期","入库单号","数量","单价","iif(数量 is null,0,数量)*iif(单价 is null,0,单价)","0.1*0"}
Dim v3 As String() = {"出库日期","出库单号","数量","单价","iif(数量 is null,0,数量)*iif(单价 is null,0,单价)","0.1*0"}
Dim v11 As String() = {"日期","毛坯入库单号","毛坯入库数量","毛坯入库单价","毛坯入库金额"} '显示列
Dim v22 As String() = {"日期","电镀出库单号","电镀出库数量","电镀出库单价","电镀出库金额","毛坯库存"}
Dim v33 As String() = {"日期","生产领用单号","领用数量","领用单价","领用金额","电镀件库存"}
Dim dt1,dt2,dt3 As fxDataSource
Dim jb As SQLJoinTableBuilder
Dim s1,s2 As String
Dim n1 As Integer
Dim t1 As Table
Dim r1 As Row
n1=0
jb =new SQLJoinTableBuilder("查询", "毛胚表")
'jb.C
For Each s1 In v1
jb.AddExp(v11(n1),s1)
n1+=1
Next
dt1=jb.BuildDataSource()
n1=0
jb =new SQLJoinTableBuilder("查询", "电镀表")
'jb.C
For Each s1 In v2
jb.AddExp(v22(n1),s1)
n1+=1
Next
dt2=jb.BuildDataSource()
n1=0
jb =new SQLJoinTableBuilder("查询", "出库表")
'jb.C
For Each s1 In v3
jb.AddExp(v33(n1),s1)
n1+=1
Next
dt3=jb.BuildDataSource()
s1 = "日期"
dt1.Combine(s1,dt2,s1)
dt1.Combine(s1,dt3,s1)
dt1.show("统计")
t1 =Tables("统计")
t1.Redraw = 0
t1.sort = s1
For Each r As Row In t1.Rows
If r.Index= 0 Then
r("毛坯库存") = r("毛坯入库数量")-r("电镀出库数量")
r("电镀件库存") = r("电镀出库数量") -r("领用数量")
Else
r("毛坯库存") =t1(r.Index-1,"毛坯库存")+ r("毛坯入库数量")-r("电镀出库数量")
r("电镀件库存") = t1(r.Index-1,"电镀件库存")+ r("电镀出库数量") -r("领用数量")
End If
Next
Dim g As Subtotalgroup
t1.SubtotalGroups.Clear()
t1.GroupAboveData = False
t1.TreeVisible = False
t1.SpillNode = True
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "毛坯入库数量,毛坯入库金额,电镀出库数量,电镀出库金额,领用数量,领用金额"
g.Caption = "总计"
t1.SubtotalGroups.Add(g)
t1.Subtotal()
n1 = t1.Rows.Count(True) - 1
r1 = t1.Rows(n1,True)
r1("毛坯库存") = r1("毛坯入库数量")-r1("电镀出库数量")
r1("电镀件库存") =r1("电镀出库数量") -r1("领用数量")
t1.Redraw =1
t1 =Tables("窗口1_table1")
t1.Redraw = 0
t1.DataSource = DataTables("统计")
t1.sort = s1
For Each c As Col In t1.Cols
If c.name.Contains("金额") Then c.DataCol.SetFormat("0.00")
Next
t1.SubtotalGroups.Clear()
t1.GroupAboveData = False
t1.TreeVisible = False
t1.SpillNode = True
g= New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "毛坯入库数量,毛坯入库金额,电镀出库数量,电镀出库金额,领用数量,领用金额"
g.Caption = "总计"
t1.SubtotalGroups.Add(g)
t1.Subtotal()
n1 = t1.Rows.Count(True) - 1
r1 = t1.Rows(n1,True)
r1("毛坯库存") = r1("毛坯入库数量")-r1("电镀出库数量")
r1("电镀件库存") =r1("电镀出库数量") -r1("领用数量")
t1.Redraw =1
[此贴子已经被作者于2013-5-30 7:09:24编辑过]