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


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

主题:图表生成

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2018/8/31 17:21:00 [只看该作者]

老师,这个是因为什么啊,感谢 感谢 

图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图18年08月31日1720_3.gif
图片点击可在新窗口打开查看


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


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

看【全局代码】,看【内部函数】


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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2018/8/31 17:37:00 [只看该作者]

怎么完全看不懂呀,感谢 感谢 这个有帮助吗,我在多看看帮助,感谢 感谢 
这个是那里搞错了啊,感谢 感谢 
图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图18年08月31日1741_4.gif
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/8/31 17:42:41编辑过]

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


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


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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2018/11/16 16:43:00 [只看该作者]

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("财务汇总窗口_Table7") '定义一个变量t引用数据表
Chart= Forms("财务汇总窗口").Controls("Chart2") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = t.Rows.Count '图系的数据点数等于表的行数
For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(i) = t.Rows(i)("变动日期") '指定水平坐标
    Series.Y(i) = t.Rows(i)("支出金额") '指定垂直坐标

老师 为什么我的是日期列,但是显示出来是数字呢 ,感谢 感谢 

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


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


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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2018/11/17 11:52:00 [只看该作者]

老师 能请教一些下吗?
就是在 绑定 CheckBox 类型的时候可以是指定的表吗?不然有其他的表格相同的功能会显示找不到对于的列,感谢 感谢 
如果红色代码是日期 格式为 2018-xx-xx 这样对吗? 感谢 感谢 

Dim Chart As WinForm.Chart = e.Form.Controls("Chart12") ' 引用窗口中的图表
Dim series As winform.ChartSeries
chart.AxisX.Font = new font("宋体", 10) '设置图表字体大小
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisX.ClearValueLabel
Chart.ChartType = ChartTypeEnum.XYPlot
Dim ls As new List(Of String)
Dim t As Table = Tables("财务汇总窗口_Table26")
t.Filter = iif(t.filter>"", "(" & t.filter & ")", "1=1") & " And 统计日期 Is not null"
For Each c As object In e.Form.Controls
    If Typeof c Is winform.CheckBox Then
        If c.Checked Then
            ls.add(c.Name)
        End If
    End If
Next
For i As Integer = 0 To ls.Count - 1
    Series = Chart.SeriesList.Add() '增加一个图系
    
    Series.Text = ls(i)
    Series.Length = t.Rows.count
    Dim idx As Integer = 0
    For r As Integer = 0 To t.Rows.Count - 1
        Series.TooltipText = ls(i) & " : {#YVAL}"
        Series.X(r) = r
        Series.Y(r) = t.Rows(r)(ls(i))
    Next
Next
For r As Integer = 0 To t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, t.Rows(r)("变动日期")) '指定字符表示
    'Chart.AxisX.SetValueLabel(r, t.Rows(r)("年份") & "-" &t.Rows(r)("月份")) '指定字符表示
Next
Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)
Chart.AxisX.AnnoWithLabels = True '启用字符标示

'Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)

 回到顶部
帅哥,在线噢!
有点蓝
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105955 积分:538850 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/17 12:19:00 [只看该作者]

什么CheckBox 类型?没看懂,截图说明一下

Chart.AxisX.SetValueLabel(r, Format(t.Rows(r)("变动日期"),"yyyy-MM-dd")) '指定字符表示

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17993 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2018/11/17 15:08:00 [只看该作者]


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

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


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20181117150503.jpg
图片点击可在新窗口打开查看
感谢 感谢 老师 是这样的 我在两个控件按钮里面输入的类似的代码
,然后在点击按钮的时候 会把另外一个表的表列读取到,但有会弹出报错的对话框。
感谢 感谢




按钮A
Dim Chart As WinForm.Chart = e.Form.Controls("Chart4") ' 引用窗口中的图表
Dim series As winform.ChartSeries
chart.AxisX.Font = new font("宋体", 10) '设置图表字体大小
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisX.ClearValueLabel
Chart.ChartType = ChartTypeEnum.XYPlot
Dim ls As new List(Of String)
Dim t As Table = Tables("财务汇总窗口_Table13")
t.Filter = iif(t.filter>"", "(" & t.filter & ")", "1=1") & " And 年份 Is not null"
For Each c As object In e.Form.Controls
    If Typeof c Is winform.CheckBox Then
        If c.Checked Then
            ls.add(c.Name)
        End If
    End If
Next
For i As Integer = 0 To ls.Count - 1
    Series = Chart.SeriesList.Add() '增加一个图系
    
    Series.Text = ls(i)
    Series.Length = t.Rows.count
    Dim idx As Integer = 0
    For r As Integer = 0 To t.Rows.Count - 1
        Series.TooltipText = ls(i) & " : {#YVAL}"
        Series.X(r) = r
        Series.Y(r) = t.Rows(r)(ls(i))
    Next
Next
For r As Integer = 0 To t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, t.Rows(r)("年份") & "-" &t.Rows(r)("月份")) '指定字符表示
Next
Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)
Chart.AxisX.AnnoWithLabels = True '启用字符标示

'Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)

按钮B
Dim Chart As WinForm.Chart = e.Form.Controls("Chart12") ' 引用窗口中的图表
Dim series As winform.ChartSeries
chart.AxisX.Font = new font("宋体", 10) '设置图表字体大小
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisX.ClearValueLabel
Chart.ChartType = ChartTypeEnum.XYPlot
Dim ls As new List(Of String)
Dim t As Table = Tables("财务汇总窗口_Table26")
t.Filter = iif(t.filter>"", "(" & t.filter & ")", "1=1") & " And 统计日期 Is not null"
For Each c As object In e.Form.Controls
    If Typeof c Is winform.CheckBox Then
        If c.Checked Then
            ls.add(c.Name)
        End If
    End If
Next
For i As Integer = 0 To ls.Count - 1
    Series = Chart.SeriesList.Add() '增加一个图系
    
    Series.Text = ls(i)
    Series.Length = t.Rows.count
    Dim idx As Integer = 0
    For r As Integer = 0 To t.Rows.Count - 1
        Series.TooltipText = ls(i) & " : {#YVAL}"
        Series.X(r) = r
        Series.Y(r) = t.Rows(r)(ls(i))
    Next
Next
For r As Integer = 0 To t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, t.Rows(r)("变动日期")) '指定字符表示
    'Chart.AxisX.SetValueLabel(r, t.Rows(r)("年份") & "-" &t.Rows(r)("月份")) '指定字符表示
Next
Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)
Chart.AxisX.AnnoWithLabels = True '启用字符标示

'Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)

能在帮忙看看 红色部分的代码是不是错了啊 感谢 感谢 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图表交差错误.table


[此贴子已经被作者于2018/11/17 15:18:41编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105955 积分:538850 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/17 16:37:00 [只看该作者]

For Each c As object In e.Form.Controls
    If Typeof c Is winform.CheckBox Then
        If c.Checked AndAlso Tables("表A(按钮B改为【表B)").Cols.Contains(c.Name) Then
            ls.add(c.Name)
        End If
    End If
Next

Chart.AxisX.SetValueLabel(r, Format(t.Rows(r)("按钮A改为【时间】,按钮B改为【变动日期】"),"yyyy-MM-dd")) '指定字符表示

 回到顶部
总数 20 上一页 1 2