以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  图表隐藏不需要的列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=30696)

--  作者:keeryq
--  发布时间:2013/4/2 11:20:00
--  图表隐藏不需要的列

生成的图表怎么将实际人数和人天统计隐藏呢?

 

Dim nd As WinForm.RadioButton = e.Form.Controls("按年度统计") \'如果是按年
If nd.Checked = True Then
    \'---------------------------------生成统计表------------------
    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.VerticalProporti       \'论坛有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


    \'Tables("统计表1").Cols("实际人数").Visible = False
   \' Tables("统计表1").Cols("人天统计").Visible = False
    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.LegendVisible = True \'显示图列
    Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
   
    ChaRT.HeaderText = "课程分析-人天统计"
    Chart.AxisX.Text = "年份"
   
Else
    Dim nf As WinForm.ComboBox = e.Form.Controls("选择年份")
    nf.Enabled = True
    nf.Value = "选择年份"
   
End If

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


--  作者:keeryq
--  发布时间:2013/4/2 12:01:00
--  回复:(muhua)Dim nd As WinForm.RadioButton = e.F...

恩 是呀 我隐藏好几次隐藏的名字都不对!这次太感谢你了!!谢谢


--  作者:keeryq
--  发布时间:2013/4/2 12:20:00
--  回复:(muhua)Dim nd As WinForm.RadioButton = e.F...

怎么判断一个统计表有没有那个数据列怎么写呢 if 什么呢

比如说没有 Tables("统计表1").Cols("实际人数_1")


--  作者:Bin
--  发布时间:2013/4/2 12:23:00
--  
If Tables("表A").Cols.Contains("包含这个列吗") Then


--  作者:keeryq
--  发布时间:2013/4/2 12:35:00
--  回复:(Bin)If Tables("表A").Cols.Contains("包含这...

哦 原来这么写的 嘿嘿 谢谢!!!


--  作者:keeryq
--  发布时间:2013/4/2 13:48:00
--  回复:(Bin)If Tables("表A").Cols.Contains("包含这...

这样写不对吗?为什么执行以后没有效果呢? 没有判断倒是可以隐藏的

  If Tables("统计表1").Cols.Contains("实际人数_1") Then
        Tables("统计表1").Cols("实际人数_1").Visible = False
    Else If Tables("统计表1").Cols.Contains("人天统计_1") Then
        Tables("统计表1").Cols("人天统计_1").Visible = False
    Else If Tables("统计表1").Cols.Contains("实际人数_2") Then
        Tables("统计表1").Cols("实际人数_2").Visible = False
    Else If Tables("统计表1").Cols.Contains("人天统计_2") Then
        Tables("统计表1").Cols("人天统计_2").Visible = False
    Else If Tables("统计表1").Cols.Contains("实际人数_3") Then
        Tables("统计表1").Cols("实际人数_3").Visible = False
    Else If Tables("统计表1").Cols.Contains("人天统计_3") Then
        Tables("统计表1").Cols("人天统计_3").Visible = False
    Else If Tables("统计表1").Cols.Contains("实际人数_4") Then
        Tables("统计表1").Cols("实际人数_4").Visible = False
    Else If Tables("统计表1").Cols.Contains("人天统计_4") Then
        Tables("统计表1").Cols("人天统计_4").Visible = False
    End If


--  作者:keeryq
--  发布时间:2013/4/2 14:01:00
--  

这样可以了

    If Tables("统计表1").Cols.Contains("实际人数_1") Then
        Tables("统计表1").Cols("实际人数_1").Visible = False
    End If
    If Tables("统计表1").Cols.Contains("人天统计_1") Then
        Tables("统计表1").Cols("人天统计_1").Visible = False
    End If
    If Tables("统计表1").Cols.Contains("实际人数_2") Then
        Tables("统计表1").Cols("实际人数_2").Visible = False
    End If
    If Tables("统计表1").Cols.Contains("人天统计_2") Then
        Tables("统计表1").Cols("人天统计_2").Visible = False
    End If
    If Tables("统计表1").Cols.Contains("实际人数_3") Then
        Tables("统计表1").Cols("实际人数_3").Visible = False
    End If
    If Tables("统计表1").Cols.Contains("人天统计_3") Then
        Tables("统计表1").Cols("人天统计_3").Visible = False
    End If   
    If Tables("统计表1").Cols.Contains("实际人数_4") Then
        Tables("统计表1").Cols("实际人数_4").Visible = False
    End If   
    If Tables("统计表1").Cols.Contains("人天统计_4") Then
        Tables("统计表1").Cols("人天统计_4").Visible = False
    End If