以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  可能可以label把显示为条形啊  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=54482)

--  作者:yangwenghd
--  发布时间:2014/7/29 13:46:00
--  可能可以label把显示为条形啊
可能可以label把显示的数据根据再次筛选(区域、类型)用图表的方式显示,可以吗?
比如点击区域后,把上面label显示的销售额、利润、成本、风险(没有具体的数据,用前面显示的利润除以风险。) 4条显示上面。感谢,这个有点难,麻烦了!

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140729113336g.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140729133203.jpg
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图表.table


[此贴子已经被作者于2014-7-29 13:47:45编辑过]

--  作者:有点甜
--  发布时间:2014/7/29 14:52:00
--  

 代码,自己改动。学着自己看懂变通

 

Dim d1 As Date = e.Form.Controls("DateTimePicker1").Value
Dim filter1 As String = "1=1"

If e.Form.Controls("RadioButton1").Checked Then
    Dim w As Integer = d1.DayOfWeek \'算出今天是星期几
    Dim dt1 As Date = d1.AddDays(-w) \'获取本周的第一天
    Dim dt2 As Date = d1.AddDays(6 - w) \'获取本周的最后一天
    filter1 = "回款日期 >= #" & dt1 & "# and 回款日期 <= #" & dt2 & "#"
Else If e.Form.Controls("RadioButton2").Checked Then
    Dim y As Integer = d1.Year
    Dim m As Integer = d1.Month
    Dim dt1 As New Date(y, m, 1)
    Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取本月的最后一天
    filter1 = "回款日期 >= #" & dt1 & "# and 回款日期 <= #" & dt2 & "#"
Else If e.Form.Controls("RadioButton3").Checked Then
    Dim y As Integer = d1.Year
    Dim dt1 As New Date(y, 1, 1)
    Dim dt2 As New Date(y, 12, 31)
    filter1 = "回款日期 >= #" & dt1 & "# and 回款日期 <= #" & dt2 & "#"
Else If e.Form.Controls("RadioButton5").Checked Then
    Dim y As Integer = d1.Year
    Dim q As Integer = (d1.Month - 1) \\ 3 + 1 \'计算现在是第几个季度
    Dim dt1 As New Date(y, 3 * (q - 1) + 1, 1) \'获取本季度的第一天
    Dim dt2 As New Date(y, 3 * q, Date.DaysInMonth(y,3 * q)) \'获取本季度的最后一天
    Filter1 = "回款日期 >= #" & dt1 & "# And 回款日期 <= #" & dt2 & "#"
Else If e.Form.Controls("RadioButton4").Checked Then
    filter1 = "1=1"
End If

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim dt As DataTable = DataTables("表A") \'定义一个变量t引用数据表
Chart = e.Form.Controls("Chart2") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
Chart.SeriesList.Clear() \'清除图表原来的图系

Dim qys As List(Of String) = dt.GetValues("区域", "区域 is not null")
Dim tjs As String() = {"销售额","货物成本","物流成本","其它成本","合计成本","利润"}
For Each qy As String In qys
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Text = qy \'设置图系的标题
    Series.Length = qys.Count \'设置图系的长度
    For r As Integer = 0 To tjs.length - 1
        Dim sum As Double = dt.Compute("sum(" & tjs(r) & ")", filter1 & " And 区域 = \'" & qy & "\'")
        Series.X(r) = r
        Series.Y(r) = sum
    Next
Next
msgbox(1)
For r As Integer = 0 To tjs.length - 1
    Chart.AxisX.SetValueLabel(r, tjs(r)) \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True \'显示图列


--  作者:yangwenghd
--  发布时间:2014/7/29 15:20:00
--  
嗯!好的!谢谢!
最近忙吗?谢谢你的帮助哦!

--  作者:yangwenghd
--  发布时间:2014/7/29 15:53:00
--  
可以设计个按钮点击放大图表吗?
--  作者:有点甜
--  发布时间:2014/7/29 15:56:00
--  

 你把图标放在一个容器panel里面,然后设置允许滚动条,然后加入代码

 

e.Form.Controls("Chart2").Width += 100

e.Form.Controls("Chart2").Height += 100

[此贴子已经被作者于2014-7-29 15:56:35编辑过]

--  作者:yangwenghd
--  发布时间:2014/7/29 16:03:00
--  
好的 谢谢 我一个一个的理解!感谢你!
--  作者:yangwenghd
--  发布时间:2014/7/31 12:04:00
--  
可以单独设计一个窗口吗
点击按钮就的时候就单独弹出图表
感谢 感谢

--  作者:有点甜
--  发布时间:2014/7/31 12:06:00
--  
以下是引用yangwenghd在2014-7-31 12:04:00的发言:
可以单独设计一个窗口吗
点击按钮就的时候就单独弹出图表
感谢 感谢

 

做一个窗口,加入控件。点按钮打开窗口,代码不变。e.Form 改成 Forms("xxx")


--  作者:yangwenghd
--  发布时间:2014/8/4 14:04:00
--  
用这样一种思路可以吗?
比如设计一个按钮,这个按钮点击的弹出窗口2,双击是关闭窗口2
然后在弹出的时候设计 窗口2的Chart1绑定窗口1的Chart1。这个可以吗? 感谢 感谢 

--  作者:Bin
--  发布时间:2014/8/4 14:07:00
--  
按钮是没办法触发双击事件的,你可以用Label或者图片