。。。。。。代码
Dim cmd As new SQLCommand
cmd.CommandText = "Select 开piao人信息_姓名 As 姓名,开piao日期1_日期 As 日期, year(开piao日期1_日期) As 年, month(开piao日期1_日期) As 月, day(开piao日期1_日期) As 日, 1 as 开单 from {信息录入表} where 开piao人信息_姓名 Is not null " _
& " union Select 开piao人信息_姓名,开piao日期2_日期, year(开piao日期2_日期), month(开piao日期2_日期) As 月, day(开piao日期2_日期), 1 from {信息录入表} where 开piao人信息_姓名 Is not null" _
& " union Select 开piao人信息_姓名,开piao日期3_日期, year(开piao日期3_日期), month(开piao日期3_日期) As 月, day(开piao日期3_日期), 1 from {信息录入表} where 开piao人信息_姓名 Is not null"
Dim dt As DataTable = cmd.ExecuteReader
For Each ary As String() In dt.GetValues("姓名|年")
For i As Integer = 1 To 12
For j As Integer = 1 To Date.DaysInMonth(ary(1),i)
Dim d As Date = new Date(ary(1), i, j)
Dim fdr As DataRow = dt.Find("姓名 = '" & ary(0) & "' and 日期 = #" & d & "#")
If fdr Is Nothing Then
fdr = dt.AddNew
fdr("姓名") = ary(0)
fdr("日期") = d
fdr("年") = ary(1)
fdr("月") = i
fdr("日") = j
fdr("开单") = 0
End If
Next
Next
Next
Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
tv.BuildTree(dt, "姓名|年|月|日")
For Each nd As WinForm.TreeNode In tv.AllNodes
Select Case nd.Level
Case 0
nd.Text = nd.Text & "(" & dt.Compute("count(姓名)", "姓名 = '" & nd.DataRow("姓名") & "' and 开单 = 1") & "张)"
Case 1
nd.Text = nd.Text & "年(" & dt.Compute("count(姓名)", "姓名 = '" & nd.DataRow("姓名") & "' and 开单 = 1 and 年 = '" & nd.DataRow("年") & "'") & "张)"
Case 2
nd.Text = nd.Text & "月(" & dt.Compute("count(姓名)", "姓名 = '" & nd.DataRow("姓名") & "' and 开单 = 1 and 年 = '" & nd.DataRow("年") & "' and 月 = '" & nd.DataRow("月") & "'") & "张)"
Case 3
nd.Text = nd.DataRow("月") & "月" & nd.Text & "日(" & dt.Compute("count(姓名)", "姓名 = '" & nd.DataRow("姓名") & "' and 开单 = 1 and 年 = '" & nd.DataRow("年") & "' and 月 = '" & nd.DataRow("月") & "' and 日 = '" & nd.DataRow("日") & "'") & "张)"
End Select
Next