Foxtable(狐表)用户栏目专家坐堂 → 关联表图表生成


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

主题:关联表图表生成

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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
关联表图表生成  发帖心情 Post By:2014/9/22 11:36:00 [只看该作者]

请问下各位老师;
1,关联表的图表怎么生成?
2,我想在表A选择多个成员的时候图表可以显示出多条数据线?
3,横坐标动态显示近一个月的时间,即今天零点以20日开始,明天零点以21日开始,一次类推?
麻烦各位老师,谢谢~
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:条形图cmn.rar



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/22 12:21:00 [只看该作者]

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim dt1 As DataTable = DataTables("表A") '定义一个变量t引用数据表
Dim dt2 As DataTable = DataTables("表B")
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.XYPlot
Chart.SeriesList.Clear() '清除图表原来的图系
Dim filter As String = "日期 >= #" & Date.Today & "# and 日期 <= #" & Date.Today.AddMonths(1) & "#"
For Each dr As DataRow In dt1.Select("选择 = true")
    Series = Chart.SeriesList.Add() '增加一个图系
    series.Text = dr("成员")
    Dim drs As List(Of DataRow) = dt2.Select("成员 = '" & dr("成员") & "' and " & filter)
    series.Length = drs.Count
    For i As Integer = 0 To drs.Count - 1
        Series.X(i) = i
        Series.Y(i) = drs(i)("体重")
    Next
Next
Dim r As Integer = 0
Do
    Chart.AxisX.SetValueLabel(r, Format(Date.Today.AddDays(r),"dd")) '指定字符表示
    r+=1
Loop While Date.Today.AddDays(r) <= Date.Today.AddMonths(1)

Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2014/9/22 13:17:00 [只看该作者]

非常感谢,还有个问题是,我想显示的区间是已有数据的最新的一天再往前推30天,而不是以操作的当天来计算!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/22 14:30:00 [只看该作者]

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim dt1 As DataTable = DataTables("表A") '定义一个变量t引用数据表
Dim dt2 As DataTable = DataTables("表B")
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.XYPlot
Chart.SeriesList.Clear() '清除图表原来的图系
Dim filter As String = "成员 in ('" & dt1.GetComboListString("成员", "选择 = true").Replace("|", "','") & "')"
Dim max As Date = dt2.Compute("max(日期)", filter)
For Each dr As DataRow In dt1.Select("选择 = true")
    Series = Chart.SeriesList.Add() '增加一个图系
    series.Text = dr("成员")
    series.Length = 30
    For i As Integer = 0 To 29
        Dim fdr As DataRow = dt2.Find("成员 = '" & dr("成员") & "' and 日期 = #" & max.AddDays(i-29) & "#")
        If fdr IsNot Nothing Then
            Series.X(i) = i
            Series.Y(i) = fdr("体重")
        Else
            Series.X(i) = i
            Series.Y(i) = 0
        End If
    Next
Next

For i As Integer = 0 To 29
    Chart.AxisX.SetValueLabel(i, Format(max.AddDays(i-29),"dd")) '指定字符表示
Next

Chart.AxisX.AnnoWithLabels = True '启用字符标示
'Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2014/9/22 15:38:00 [只看该作者]

老师,出现个小问题就是如果单选了两个成员之后再多选几个成员横坐标就会出现覆盖的情况,我折腾了一下搞不懂,麻烦老师再看一下~谢谢你!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/22 15:42:00 [只看该作者]

 

 

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim dt1 As DataTable = DataTables("表A") '定义一个变量t引用数据表
Dim dt2 As DataTable = DataTables("表B")
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.XYPlot
Chart.SeriesList.Clear() '清除图表原来的图系

Chart.AxisX.ClearValueLabel
Dim filter As String = "成员 in ('" & dt1.GetComboListString("成员", "选择 = true").Replace("|", "','") & "')"
Dim max As Date = dt2.Compute("max(日期)", filter)
For Each dr As DataRow In dt1.Select("选择 = true")
    Series = Chart.SeriesList.Add() '增加一个图系
    series.Text = dr("成员")
    series.Length = 30
    For i As Integer = 0 To 29
        Dim fdr As DataRow = dt2.Find("成员 = '" & dr("成员") & "' and 日期 = #" & max.AddDays(i-29) & "#")
        If fdr IsNot Nothing Then
            Series.X(i) = i
            Series.Y(i) = fdr("体重")
        Else
            Series.X(i) = i
            Series.Y(i) = 0
        End If
    Next
Next

For i As Integer = 0 To 29
    Chart.AxisX.SetValueLabel(i, Format(max.AddDays(i-29),"dd")) '指定字符表示
Next

Chart.AxisX.AnnoWithLabels = True '启用字符标示
'Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2014/9/22 15:55:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1554593868832010424b885b5e7383fb22e614db508b90a9.tmp.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2014-9-22 15:55:51编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/22 16:02:00 [只看该作者]

 留空

 

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim dt1 As DataTable = DataTables("表A") '定义一个变量t引用数据表
Dim dt2 As DataTable = DataTables("表B")
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.XYPlot
Chart.SeriesList.Clear() '清除图表原来的图系

Chart.AxisX.ClearValueLabel
Dim filter As String = "成员 in ('" & dt1.GetComboListString("成员", "选择 = true").Replace("|", "','") & "')"
Dim max As Date = dt2.Compute("max(日期)", filter)
For Each dr As DataRow In dt1.Select("选择 = true")
    Series = Chart.SeriesList.Add() '增加一个图系
    series.Text = dr("成员")
    series.Length = 30
    For i As Integer = 0 To 29
        Dim fdr As DataRow = dt2.Find("成员 = '" & dr("成员") & "' and 日期 = #" & max.AddDays(i-29) & "#")
        If fdr IsNot Nothing Then
            Series.X(i) = i
            Series.Y(i) = fdr("体重")
        Else
            'Series.X(i) = i
            'Series.Y(i) = 0
        End If
    Next
Next

For i As Integer = 0 To 29
    Chart.AxisX.SetValueLabel(i, Format(max.AddDays(i-29),"dd")) '指定字符表示
Next

Chart.AxisX.AnnoWithLabels = True '启用字符标示
'Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/22 16:04:00 [只看该作者]

平行

 

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim dt1 As DataTable = DataTables("表A") '定义一个变量t引用数据表
Dim dt2 As DataTable = DataTables("表B")
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.XYPlot
Chart.SeriesList.Clear() '清除图表原来的图系

Chart.AxisX.ClearValueLabel
Dim filter As String = "成员 in ('" & dt1.GetComboListString("成员", "选择 = true").Replace("|", "','") & "')"
Dim max As Date = dt2.Compute("max(日期)", filter)
For Each dr As DataRow In dt1.Select("选择 = true")
    Series = Chart.SeriesList.Add() '增加一个图系
    series.Text = dr("成员")
    series.Length = 30
    For i As Integer = 0 To 29
        Dim fdr As DataRow = dt2.Find("成员 = '" & dr("成员") & "' and 日期 = #" & max.AddDays(i-29) & "#")
        If fdr IsNot Nothing Then
            Series.X(i) = i
            Series.Y(i) = fdr("体重")
           
        Else
            Series.X(i) = i
            If i = 0 Then
                Series.Y(i) = 0
            Else
                Series.Y(i) = Series.Y(i-1)
            End If
        End If
    Next
Next

For i As Integer = 0 To 29
    Chart.AxisX.SetValueLabel(i, Format(max.AddDays(i-29),"dd")) '指定字符表示
Next

Chart.AxisX.AnnoWithLabels = True '启用字符标示
'Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5699 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2014/9/22 16:06:00 [只看该作者]

老师,只能留空不能连接上去吗?

 回到顶部
总数 14 1 2 下一页