Foxtable(狐表)用户栏目专家坐堂 → 让图表显示统计表里没有的数据


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

主题:让图表显示统计表里没有的数据

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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
让图表显示统计表里没有的数据  发帖心情 Post By:2013/3/22 12:14:00 [只看该作者]

谁能帮我看看分析窗体呢 怎么才能在不大动的基础上实现显示的数据仅仅是(人天统计/实际人数)这一项呢 现在显示的是人天统计、实际人数两个数据 我怎么加都不对  困扰我好些天了    麻烦了  谢谢呢

怎么才能让图表里显示按年份统计的数据都是从上一年的4月1号到今年的3月31号呢

g.Filter = "[培训时间] >= #4/1/2012#  and [培训时间] <= #3/31/2013#" 这句加上后仅仅是这一年的 怎么才能点了按年统计的按钮再点区分课程 所有的信息就都出来了呢

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

[此贴子已经被作者于2013-3-26 19:12:48编辑过]

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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
  发帖心情 Post By:2013/3/22 13:00:00 [只看该作者]

救救我呗图片点击可在新窗口打开查看  实在想不出来了

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/22 14:44:00 [只看该作者]


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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
  发帖心情 Post By:2013/3/22 15:16:00 [只看该作者]

嗯嗯 该说谢谢的 但是改变了布局 我加了这句话DataTables("统计表1").DataCols.Add(" 新列",Gettype(Double),"人天统计/实际人数")

让Y轴绑定到新列  但是没成功 


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/22 16:07:00 [只看该作者]

都是一样的啊,例如:

 

 

Dim nd As WinForm.RadioButton = e.Form.Controls("按年度统计")  '如果是按年
If nd.Checked = True Then
    '--------------------------生成统计表------------------------
    Dim g As New GroupTableBuilder("统计表1", DataTables("课程信息"))
    g.Groups.AddDef("培训时间", DateGroupEnum.Year, "年")
    g.Totals.AddDef("实际人数")
    g.Totals.AddDef("人天统计")
    g.Build()
    DataTables("统计表1").DataCols.Add(" 新列",Gettype(Double),"人天统计/实际人数")
   
    '------------------------生成图表----------------------------'
    Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
    'Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
    Chart.ChartType = ChartTypeEnum.Bar '图表1类型该为Bar(条形)
    Chart.DataSource = "统计表1" '设置绑定表
    Chart.SeriesList.Clear() '清除图表原来的图系
    Chart.LegendVisible = True '显示图列
    Chart.AxisX.Major = 1
    Series = Chart.SeriesList.Add() '给图表1增加一个图系
    Series.X.DataField = "年" 'X轴绑定到月份列
    Series.Y.DataField = " 新列" 'Y轴绑定到数量列
    Series.Text = "新列"
     Series.DataLabelText = "{#YVAL}"
    Chart.AxisY.Major = 50
    Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)
    Chart.AxisY.Text = "新列"
    Series.DataLabelText = "{#YVAL}"
   
   
    '---------------------------------------------
    Chart.HeaderText = "实际人数--人天统计"
    chart.AxisX.Text = "年份"
   
Else
    Dim nf As WinForm.ComboBox = e.Form.Controls("选择年份")
    nf.Enabled = True
    nf.Value = "选择年份"
End If


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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
  发帖心情 Post By:2013/3/25 12:23:00 [只看该作者]

 要是统计表示这样带分组的呢 这个要是加上去就报错了

 

 '---------------------------------生成统计表------------------
    Dim g As New CrossTableBuilder("统计表1", DataTables("课程信息"))
    g.HGroups.AddDef("培训时间", DateGroupEnum.Year, "年")
    g.VGroups.AddDef("课程")
    g.Totals.AddDef("实际人数", "实际人数")
    g.Totals.AddDef("人天统计", "人天统计")
    g.Build()
   ' DataTables("统计表1").DataCols.Add("新列",Gettype(Double),"人天统计/实际人数")
    '-----------------------------------生成图表----------------------
    Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Dim t As Table = Tables("统计表1") '定义一个变量t引用数据表
    Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
    Chart.SeriesList.Clear()
    Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
   Chart.DataSource = "统计表1" '设置绑定表
    Chart.SeriesList.Clear() '清除图表原来的图系
    chart.AxisX.Major = 1
    Chart.AxisY.Major = 100
    Chart.AxisY.Min = 0 '指定Y轴的最小值

       For Each c As Col In t.Cols
        If c.Name <> "年" Then
            Series = Chart.SeriesList.Add() '增加一个图系
           Series.Text = c.Caption    'Name '设置图系的标题
            Series.X.DataField = "年" 'X轴绑定到产品列
            Series.Y.DataField = c.Name '设置Y轴的绑定列
            Series.DataLabelText = "{#YVAL}"
        End If
    Next
    'Chart.VisualEffect = True '加上这一行,让你的图表更漂亮

    Chart.LegendVisible = True '显示图列
    Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)
   
    ChaRT.HeaderText = "课程分析-人天统计"
    Chart.AxisX.Text = "年份"


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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
回复:(狐狸爸爸)都是一样的啊,例如: &n...  发帖心情 Post By:2013/3/25 16:19:00 [只看该作者]

 要是统计表示这样带分组的呢 这个' DataTables("统计表1").DataCols.Add("新列",Gettype(Double),"人天统计/实际人数")
要是加上去就报错了

 

 '---------------------------------生成统计表------------------
    Dim g As New CrossTableBuilder("统计表1", DataTables("课程信息"))
    g.HGroups.AddDef("培训时间", DateGroupEnum.Year, "年")
    g.VGroups.AddDef("课程")
    g.Totals.AddDef("实际人数", "实际人数")
    g.Totals.AddDef("人天统计", "人天统计")
    g.Build()
   ' DataTables("统计表1").DataCols.Add("新列",Gettype(Double),"人天统计/实际人数")
    '-----------------------------------生成图表----------------------
    Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Dim t As Table = Tables("统计表1") '定义一个变量t引用数据表
    Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
    Chart.SeriesList.Clear()
    Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
   Chart.DataSource = "统计表1" '设置绑定表
    Chart.SeriesList.Clear() '清除图表原来的图系
    chart.AxisX.Major = 1
    Chart.AxisY.Major = 100
    Chart.AxisY.Min = 0 '指定Y轴的最小值

       For Each c As Col In t.Cols
        If c.Name <> "年" Then
            Series = Chart.SeriesList.Add() '增加一个图系
           Series.Text = c.Caption    'Name '设置图系的标题
            Series.X.DataField = "年" 'X轴绑定到产品列
            Series.Y.DataField = c.Name '设置Y轴的绑定列
            Series.DataLabelText = "{#YVAL}"
        End If
    Next
    'Chart.VisualEffect = True '加上这一行,让你的图表更漂亮

    Chart.LegendVisible = True '显示图列
    Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)
   
    ChaRT.HeaderText = "课程分析-人天统计"
    Chart.AxisX.Text = "年份"


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/3/25 18:17:00 [只看该作者]

'---------------------------------生成统计表------------------
Dim g As New CrossTableBuilder("统计表1", DataTables("课程信息"))
g.HGroups.AddDef("培训时间", DateGroupEnum.Year, "年")
g.VGroups.AddDef("课程")
g.Totals.AddDef("实际人数", "实际人数")
g.Totals.AddDef("人天统计", "人天统计")
g.VerticalProportion = True
g.VerticalProportion Caption ="/实际人数"       '论坛有Bug ,请将[g.VerticalProportion Caption]间的空格去掉
g.Build()
'-----------------------------------生成图表----------------------
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("统计表1") '定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear()
Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
Chart.DataSource = "统计表1" '设置绑定表
chart.AxisX.Major = 1
Chart.AxisY.Major = 100
Chart.AxisY.Min = 0 '指定Y轴的最小值

For Each c As Col In t.Cols 
    If c.Caption.Contains("实际人数/")  Then
        c.Visible = False
    End If
    c.DataCol.SetFormat("#,###")
Next

For Each r As Row In t.Rows
    For Each c As Col In t.Cols
        If c.Caption.Contains("人天统计/")  Then
            r(c.name) =t(r.Index,c.Index-1)/t(r.Index,c.Index-3)
        End If
    Next
Next
For Each c As Col In t.Cols
    If c.Name <> "年" Then
        If c.Visible = True Then
            Series = Chart.SeriesList.Add() '增加一个图系
            Series.Text = c.Caption    'Name '设置图系的标题
            Series.X.DataField = "年" 'X轴绑定到产品列
            Series.Y.DataField = c.Name '设置Y轴的绑定列
            Series.DataLabelText = "{#YVAL}"     
        End If
    End If
Next
'Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)

ChaRT.HeaderText = "课程分析-人天统计"
Chart.AxisX.Text = "年份"
[此贴子已经被作者于2013-3-25 22:26:37编辑过]

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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
回复:(don)'---------------------------------生成...  发帖心情 Post By:2013/3/25 20:59:00 [只看该作者]

大侠 这是怎么回事呢???
图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/3/25 22:27:00 [只看该作者]

g.VerticalProportion Caption ="/实际人数" '论坛有Bug ,请将[g.VerticalProportion Caption]间的空格去掉

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