Foxtable(狐表)用户栏目专家坐堂 → label怎么做走势图啊!


  共有9958人关注过本帖树形打印复制链接

主题:label怎么做走势图啊!

帅哥哟,离线,有人找我吗?
yangwenghd
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/30 20:06:00 [显示全部帖子]

如果轴线不是区域是这个表应该怎么写啊

Dim qys As List(Of String) = dt.GetValues("区域", "区域 is not null")
感谢 感谢 

 回到顶部
帅哥哟,离线,有人找我吗?
yangwenghd
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/30 20:15: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
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/30 20:33:00 [显示全部帖子]

还是不得行!我在学习学习看!有点甜,谢谢,能帮我把第三的个问题看看吗?第三个问题实在是太难了!麻烦你了!

 回到顶部
帅哥哟,离线,有人找我吗?
yangwenghd
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/30 20:40:00 [显示全部帖子]

哦  我试试哈!图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yangwenghd
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/30 20:40:00 [显示全部帖子]

就是这个
图片点击可在新窗口打开查看此主题相关图片如下:360截图20140730202754810.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-7-30 20:43:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yangwenghd
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/30 20:57:00 [显示全部帖子]

能帮我看看怎么把时间和数据显示关联起来吗?
感谢 感谢 

图片点击可在新窗口打开查看此主题相关图片如下:关联时间.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图表分析.table



 回到顶部
帅哥哟,离线,有人找我吗?
yangwenghd
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/30 21:20: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)
    Series.X(r) = r
    Series.Y(r) = sum
Next
Next

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


 回到顶部
帅哥哟,离线,有人找我吗?
yangwenghd
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/30 21:44:00 [显示全部帖子]

感谢!就是这个效果!只是可不可以在点击利润 销售额的时候就自动更新,不需要再次点击 查询
感谢 感谢 

 回到顶部
帅哥哟,离线,有人找我吗?
yangwenghd
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/30 22:48:00 [显示全部帖子]


Chart= e.Form.Controls("Chart3") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisX.ClearValueLabel
Dim tp As DateGroupEnum = 0
For i As Integer = 111 To 115
    Dim c As WinForm.RadioButton= e.Form.Controls("CheckBox" & i)
    If c.Checked Then
        Select Case c.Text
            Case "年"
                tp = DateGroupEnum.Year
            Case "季度"
                tp = DateGroupEnum.Quarter
            Case "月"
                tp = DateGroupEnum.month
            Case "周"
                tp = DateGroupEnum.Week
            Case "天"
                tp = DateGroupEnum.day
        End Select
        
        Exit For
        
    End If
Next
Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("回款日期", tp, "日期")
g.Totals.AddDef("销售额")
g.Totals.AddDef("货物成本")
g.Totals.AddDef("物流成本")
g.Totals.AddDef("其它成本")
g.Totals.AddDef("合计成本")
g.Totals.AddDef("利润")
g.Build()

Chart= e.Form.Controls("Chart3") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisX.ClearValueLabel
Dim tpa As DateGroupEnum = 0
For i As Integer = 111 To 115
    Dim c As WinForm.RadioButton= e.Form.Controls("RadioButton" & i)
    If c.Checked Then
        Select Case c.Text
            Case "销售额"
                tpa = DateGroupEnum.Year
            Case "利润"
                tpa = DateGroupEnum.Quarter
            Case "合计成本"
                tpa = DateGroupEnum.month
            Case "物流成本"
                tpa = DateGroupEnum.Week
            Case "其它成本"
                tpa = DateGroupEnum.day
        End Select
        
        Exit For
        
    End If
Next

Dim t As Table = Tables("统计表1")
t.Sort = "日期"
For i As Integer = 111 To 116
    Dim c As WinForm.CheckBox = e.Form.Controls("RadioButton" & i)
    If c.Checked Then
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Length = t.Rows.Count
        Series.Text = c.Text
        For r As Integer = 0 To t.Rows.Count - 1
            Series.X(r) = r
            Series.Y(r) = t.Rows(r)(c.Text)
        Next
    End If
Next
'
'Dim t As Table = Tables("统计表1")
't.Sort = "日期"
For i As Integer = 111 To 116
    Dim c As WinForm.CheckBox = e.Form.Controls("CheckBox" & i)
    If c.Checked Then
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Length = t.Rows.Count
        Series.Text = c.Text
        For r As Integer = 0 To t.Rows.Count - 1
            Series.X(r) = r
            Series.Y(r) = t.Rows(r)(c.Text)
        Next
    End If
Next

For r As Integer = 0 To t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, t.Rows(r)("日期")) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)
这个是那里出了问题啊!

 回到顶部
帅哥哟,离线,有人找我吗?
yangwenghd
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2014/7/31 7:04:00 [显示全部帖子]

好的!感谢 我到公司就做!

 回到顶部
总数 50 上一页 1 2 3 4 5 下一页