Dim bd1 As New SQLCrossTableBuilder("统计表1","考勤")
bd1.C
bd1.HGroups.AddDef("员工编号")
bd1.HGroups.AddDef("姓名")
bd1.HGroups.AddDef("计件")
bd1.VGroups.AddDef("事由","事由_{0}")
bd1.Totals.AddDef("数值")
bd1.filter = "{考勤}.日期 >= '" & cdate(st) & "' And {考勤}.日期 <= '" & cdate(et) & "' and {考勤}.部门 = '"& bm &"'"
bd1.Build
MainTable = Tables("统计表1")
Dim year As Integer = et.Year
Dim month As Integer = et.Month
Dim st As Date
st = new Date(Year,Month,1)
Dim ed As Double = e.Form.Controls("NumericComboBox1").value
Dim ed1 As Double = e.Form.Controls("ed1").value
Dim bd1 As New SQLGroupTableBuilder("统计表1","计件")
bd1.C
Dim dt1 As fxDataSource
bd1.Groups.AddDef("员工编号")
bd1.Groups.AddDef("姓名")
bd1.Totals.AddExp("计件工时","{计件}.定额 * {计件}.系数 * {计件}.数量 / 3600") '对数量进行统计
bd1.filter = "{计件}.日期 >= '" & cdate(st) & "' And {计件}.日期 <= '" & cdate(et) & "' and {计件}.计件 = 'true'"
dt1 = bd1.BuildDataSource()
Dim bd2 As New SQLGroupTableBuilder("统计表2","调整工时")
bd1.C
Dim dt2 As fxDataSource
bd2.Groups.AddDef("员工编号")
bd2.Groups.AddDef("姓名")
bd2.Totals.AddDef("调整工时") '对数量进行统计
bd2.filter = "{调整工时}.日期 >= '" & cdate(st) & "' And {调整工时}.日期 <= '" & cdate(et) & "' and {调整工时}.计件 = 'true'"
dt2 = bd2.BuildDataSource()
Dim nms As String() = {"员工编号","姓名"}
dt1.Combine(nms,dt2,nms)
dt1.Show("统计表1")
MainTable = Tables("统计表1")
With DataTables("统计表1").DataCols '用表达式列计算库存数据
.Add("工时小计",Gettype(Double), "ISNULL([调整工时],0) + IsNull([计件工时],0)")
.Add("额定工时",Gettype(Double), "'" & ed1 & "'")
.Add("计件工资",Gettype(Double),"(isnull([工时小计],0) - isnull([额定工时],0)) * " & ed)
End With