以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  图表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74525)

--  作者:cqlistone
--  发布时间:2015/9/13 13:32:00
--  图表
你好!
表A中“申请部门”列有A部门、B部门,X轴需要显示近12个月各部门出现的次数,下面代码不显示A\\B部门各月的总次数

Dim Chart As WinForm.Chart
        Dim Series As WinForm.ChartSeries
        Dim t As DataTable =  DataTables("表A")
        Dim lst As List(Of String) = t.GetValues("申请部门") 
        Chart = Forms("报表").Controls("Chart6")
        Chart.ChartType = ChartTypeEnum.bar
        Chart.SeriesList.Clear()
        Chart.AxisX.ClearValueLabel        
        Series = Chart.SeriesList.Add()        
        Series.Length = 12
        Dim td As Date = new Date(Date.Today.Year, Date.Today.Month, 1)
        For i As Integer = 0 To 11
            Dim d = td.AddMonths(-i)
            Series.X(i) = i
            Series.Y(i) = val(t.Compute("count(" & "申请部门" & ")", "申请日期 >= #" & d & "# and 申请日期 < #" & d.AddMonths(1) & "#"))
            Chart.AxisX.SetValueLabel(i, Format(d, "yyyy-MM"))
            Chart.AxisX2.SetValueLabel(i, lst(i))
            Series.DataLabelText = "{#YVAL}"   
            Series.MarkShape = MarkShapeEnum.None
            Series.MarkSize=3
            Series.LineThickNess=0.5
        Next


--  作者:大红袍
--  发布时间:2015/9/13 14:39:00
--  
Dim Chart As WinForm.Chart
Dim Series As WinForm.ChartSeries
Dim t As DataTable =  DataTables("表A")
Dim lst As List(Of String) = t.GetValues("申请部门")
Chart = Forms("报表").Controls("Chart6")
Chart.ChartType = ChartTypeEnum.bar
Chart.SeriesList.Clear()
Chart.AxisX.ClearValueLabel
For Each bm As String In lst
    Series = Chart.SeriesList.Add()
    Series.Length = 12
    series.Text = bm
    Dim td As Date = new Date(Date.Today.Year, Date.Today.Month, 1)
    For i As Integer = 0 To 11
        Dim d = td.AddMonths(-i)
        Series.X(i) = i
        Series.Y(i) = val(t.Compute("count(" & "申请部门" & ")", "申请日期 >= #" & d & "# and 申请日期 < #" & d.AddMonths(1) & "# and 申请部门 = \'" & bm & "\'"))
        Chart.AxisX.SetValueLabel(i, Format(d, "yyyy-MM"))
        Series.DataLabelText = "{#YVAL}"
        Series.MarkShape = MarkShapeEnum.None
        Series.MarkSize=3
        Series.LineThickNess=0.5
    Next
Next