以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  让图表显示统计表里没有的数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=30180)

--  作者:keeryq
--  发布时间: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
--  发布时间:2013/3/22 13:00:00
--  
救救我呗图片点击可在新窗口打开查看  实在想不出来了
--  作者:狐狸爸爸
--  发布时间:2013/3/22 14:44:00
--  

之前不是帮你做好了吗:

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=29829&authorid=0&page=0&star=3

 


--  作者:keeryq
--  发布时间:2013/3/22 15:16:00
--  

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

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


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

--  作者:狐狸爸爸
--  发布时间: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
--  发布时间: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
--  发布时间:2013/3/25 16:19:00
--  回复:(狐狸爸爸)都是一样的啊,例如: &n...

 要是统计表示这样带分组的呢 这个\' 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
--  发布时间: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
--  发布时间:2013/3/25 20:59:00
--  回复:(don)'---------------------------------生成...
大侠 这是怎么回事呢???
图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

--  作者:don
--  发布时间:2013/3/25 22:27:00
--  
g.VerticalProportion Caption ="/实际人数" \'论坛有Bug ,请将[g.VerticalProportion Caption]间的空格去掉