Foxtable(狐表)用户栏目专家坐堂 → 图表隐藏不需要的列


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

主题:图表隐藏不需要的列

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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
图表隐藏不需要的列  发帖心情 Post By: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


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/4/2 11:49:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
回复:(muhua)Dim nd As WinForm.RadioButton = e.F...  发帖心情 Post By:2013/4/2 12:01:00 [只看该作者]

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


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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
回复:(muhua)Dim nd As WinForm.RadioButton = e.F...  发帖心情 Post By:2013/4/2 12:20:00 [只看该作者]

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

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


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/2 12:23:00 [只看该作者]

If Tables("表A").Cols.Contains("包含这个列吗") Then


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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
回复:(Bin)If Tables("表A").Cols.Contains("包含这...  发帖心情 Post By:2013/4/2 12:35:00 [只看该作者]

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


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


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
回复:(Bin)If Tables("表A").Cols.Contains("包含这...  发帖心情 Post By:2013/4/2 13:48:00 [只看该作者]

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

  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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:94 积分:723 威望:0 精华:0 注册:2013/2/27 16:58:00
  发帖心情 Post By: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


 回到顶部