Foxtable(狐表)用户栏目专家坐堂 → 能以日期为数据生成图表吗


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

主题:能以日期为数据生成图表吗

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/28 18:11:00 [显示全部帖子]

 可以,先生成统计表,然后生成图表

 

http://www.foxtable.com/webhelp/scr/0158.htm

 

http://www.foxtable.com/webhelp/scr/2003.htm

 


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/28 18:23:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/1 15:50:00 [显示全部帖子]

 7楼的,可以实现。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/1 16:43:00 [显示全部帖子]

 

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


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/2 15:38:00 [显示全部帖子]

参考代码

 

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("表A") '定义一个变量t引用数据表
Chart = Forms("窗口1").Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Dim cs() As String = {"完工","架梁","铺轨"}
Dim drs As List(Of DataRow ) = t.DataTable.Select("工程名称 is not null")
Chart.AxisX.ClearValueLabel
Chart.AxisY.ClearValueLabel
Dim mind As Date
Dim maxd As Date
For Each c As String In cs
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Text = c'设置图系的标题
    series.length = drs.count
    Series.DataLabelText = "{#YVAL}"
    For r As Integer = 0 To drs.Count - 1
        Series.X(r) = r
        Dim v As Double = val(format(drs(r)(c),"yyyyMMdd"))
        Series.Y(r) = v
        Chart.AxisX.SetValueLabel(r, drs(r)("工程名称")) '指定字符表示
        If mind = Nothing OrElse mind > drs(r)(c) Then
            mind = drs(r)(c)
        End If
        If maxd = Nothing OrElse maxd < drs(r)(c) Then
            maxd = drs(r)(c)
        End If
       
    Next
Next
mind = new Date(mind.Year, mind.Month, 1)
maxd = new Date(maxd.Year, maxd.Month, 1)
Do While maxd >= mind
    Dim v As Double = val(format(mind,"yyyyMMdd"))
    Chart.AxisY.SetValueLabel(v,format(mind, "yyyy.MM")) '指定字符表示
    mind = mind.AddMonths(1)
Loop

Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.AxisY.AnnoWithLabels = True '启用字符标示
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/2 15:39:00 [显示全部帖子]

mark 图表事件

 

如果你需要自定义格式,就需要这样绑定事件

 下载信息  [文件大小:328.0 KB  下载次数:8]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.table


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/2 16:09:00 [显示全部帖子]

 上传实例说明。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/2 18:04:00 [显示全部帖子]

mark 图表标签

 

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("表A") '定义一个变量t引用数据表
Chart = Forms("窗口1").Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Dim cs() As String = {"完工","架梁","铺轨"}
Dim drs As List(Of DataRow ) = t.DataTable.Select("工程名称 is not null")
Chart.AxisX.ClearValueLabel
Chart.AxisY.ClearValueLabel
Dim mind As Date
Dim maxd As Date
Dim c1Chart1 = Chart.basecontrol
Dim lbls = c1Chart1.ChartLabels
lbls.LabelsCollection.Clear()
Dim i As Integer = 0
For Each c As String In cs
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Text = c'设置图系的标题
    series.length = drs.count
   
   
    For r As Integer = 0 To drs.Count - 1
        Series.X(r) = r
        Dim d As Date = drs(r)(c)
        Dim v As Double = val(format(d,"yyyyMM")) * 100 + 100 * (d.Day / Date.DaysInMonth(d.Year, d.Month))
        Series.Y(r) = Math.Floor(v)
        Dim lbl As C1.Win.C1Chart.Label = lbls.LabelsCollection.AddNewLabel()
        lbl.Text = Format(d, "yyyy年MM月dd日")
       
        lbl.AttachMethod = C1.Win.C1Chart.AttachMethodEnum.DataIndex
        lbl.AttachMethodData.GroupIndex = 0
        lbl.AttachMethodData.SeriesIndex = i
        lbl.AttachMethodData.PointIndex = r
        lbl.Style.ForeColor = Color.Red
        lbl.Compass = LabelCompassEnum.South
        lbl.Visible = True
       
        Chart.AxisX.SetValueLabel(r, drs(r)("工程名称")) '指定字符表示
        If mind = Nothing OrElse mind > drs(r)(c) Then
            mind = drs(r)(c)
        End If
        If maxd = Nothing OrElse maxd < drs(r)(c) Then
            maxd = drs(r)(c)
        End If
       
    Next
   
    i += 1
Next
mind = new Date(mind.Year, mind.Month, 1)
maxd = new Date(maxd.Year, maxd.Month, 1)
Do While maxd >= mind
    Dim v As Double = val(format(mind,"yyyyMMdd"))
    Chart.AxisY.SetValueLabel(v,format(mind, "yyyy.MM")) '指定字符表示
    mind = mind.AddMonths(1)
Loop

Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.AxisY.AnnoWithLabels = True '启用字符标示
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


 回到顶部