Dim sqrq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim zzrq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
Dim pmc As WinForm.ComboBox = e.Form.Controls("ComboBox1")
If sqrq.value = Nothing OrElse zzrq.value = Nothing
MessageBox.show("起始日期不能为空,请先选择起始日期","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
Else
Dim dt As DataTable
Dim b As New GroupTableBuilder("设备故障统计表",DataTables("表A"))
b.filter = "[日期] > = #" & sqrq.value & "# And [日期] < #" & zzrq.value.adddays(1) & "#"
b.Groups.AddDef("设备编号")
b.Totals.AddDef("设备编号",AggregateEnum.Count, "故障次数")
dt = b.Build(False)
Dim Chart As WinForm.Chart
Dim Series As WinForm.ChartSeries
Dim pds = dt.Select("", "故障次数 desc")
Dim sm As Integer = dt.Compute("Sum(故障次数)")
Chart= e.Form.Controls("Chart1")
Chart.SeriesList.Clear()
Chart.AxisX.ClearValueLabel
Chart.VisualEffect = True
Chart.ChartType = ChartTypeEnum.Pie
Dim num = iif(val(pmc.text)>pds.count, pds.count-1, val(pmc.text)-1)
For i As Integer = 0 To num
Series = Chart.SeriesList.Add()
Series.Length = 1
Series.Text = pds(i)("设备编号") & "(" & pds(i)("故障次数") & ")"
Series.Y(0) = pds(i)("故障次数")
Series.DataLabelText = Math.Round(pds(i)("故障次数") * 100 / sm,1) & "%"
Next
Chart.LegendVisible = True
Chart.LegendCompass= CompassEnum.East
End If