总的思路,先按一定条件提取数据到窗体的table1,再用一个checkbox对TABLE1手工勾选处理,再把勾选中的生成分组统计表。
Dim cmd4 As New SQLCommand
Dim dt4 As DataTable
cmd4.C
cmd4.CommandText = " Select ****** where 日期 >= #" & fd & "# And 日期 <= #" & ld & "# "
dt4 = cmd4.ExecuteReader()
Tables(e.Form.name & "_table1").DataSource =dt4
Dim gx As WinForm.CheckBox = e.Form.Controls("CheckBox1")
For Each r As Row In Tables(e.Form.name & "_table1").Rows
If gx.Checked = True Then
r.Checked = True
Else
r.Checked = False
End If
Next
前面二段代码能搞定,主要是生成分组统计表的代码不知道怎么改,我想参考下面的代码。主要是想知道:
第一个问题 r.Checked = True 这个条件应该怎么加,加在哪里。
第二个问题 For Each nm() As String In DataTables("订单").GetValues("客户|产品")中,只能使用DATATABLES吗?不能用我上面生成的table1吗?要怎么改。谢谢。
Dim
dtb
As
New
DataTableBuilder("统计")
dtb.AddDef("客户", Gettype(String), 16)
dtb.AddDef("产品", Gettype(String), 16)
dtb.AddDef("数量", Gettype(Integer))
dtb.AddDef("金额", Gettype(Double))
dtb.Build()
For Each nm() As String In DataTables("订单").GetValues("客户|产品")
Dim dr As DataRow = DataTables("统计").AddNew()
dr("客户") = nm(0)
dr("产品") = nm(1)
dr("数量") = DataTables("订单").Compute("Sum(数量)","客户 = '" & nm(0) & "' And [产品] = '" & nm(1) & "'")
dr("金额") = DataTables("订单").Compute("Sum(金额)","客户 = '" & nm(0) & "' And [产品] = '" & nm(1) & "'")
Next
MainTable= Tables("统计")