Foxtable(狐表)用户栏目专家坐堂 → 隐藏列后生成图表问题


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

主题:隐藏列后生成图表问题

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


加好友 发短信
等级:幼狐 帖子:103 积分:1228 威望:0 精华:0 注册:2017/5/16 22:42:00
隐藏列后生成图表问题  发帖心情 Post By:2019/4/25 14:59:00 [只看该作者]


        For Each c As Col In Tables("净资产收益率").Cols
            If c.Name.Contains("1231") Or c.Name.Contains("代码") Or c.Name.Contains("名称")Then
                c.Visible = True
            Else
                c.Visible = False
            End If
        Next
        
        For r As Integer = 0 To t.Rows.count - 1
            Series = Chart.SeriesList.Add() '增加一个图系
            Series.Text = t.rows(r)("名称")  '设置图系的标题
            Series.Length = t.Cols.Count   '设置图系的长度
            Series.TooltipText = "X = {#XVAL}, Y = {#YVAL}"
            
            For c As Integer = 3 To t.Cols.count - 1
                Series.X(c) = c
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190425144243.png
图片点击可在新窗口打开查看
                Series.Y(c) = t.Rows(r)(c)
                Chart.AxisX.SetValueLabel(c, t.Cols(c).caption.SubString(t.Cols(c).caption.Length - 10)) '指定字符表示
                Series.DataLabelText = "{#YVAL}"
                Series.LineThickNess=5
            Next
        Next
        
        Chart.AxisX.AnnoWithLabels = True '启用字符标示
        Chart.LegendVisible = True '显示图列
        Chart.LegendCompass= CompassEnum.South  '图列显示在南方(底端)


隐藏的列在图表中也显示出来了,请问该如何处理?


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


加好友 发短信
等级:超级版主 帖子:107757 积分:548124 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/25 15:12:00 [只看该作者]


For c As Integer = 3 To t.Cols.count - 1
    If t.Cols(c).Visible = False Then Continue For
    Series.Y(c) = t.Rows(r)(c)

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


加好友 发短信
等级:幼狐 帖子:103 积分:1228 威望:0 精华:0 注册:2017/5/16 22:42:00
  发帖心情 Post By:2019/4/26 13:05:00 [只看该作者]

隐藏的列是没有显示出来了,但是生成的图表线条也不见了,望大师指点
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190426130149.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:107757 积分:548124 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/26 14:08:00 [只看该作者]

Dim lit As new List(of String)
For Each c As Col In Tables("净资产收益率").Cols
    If c.Name.Contains("1231") Or c.Name.Contains("代码") Or c.Name.Contains("名称")Then
        c.Visible = True
        lit.Add(c.Name)
    Else
        c.Visible = False
    End If
Next

For r As Integer = 0 To t.Rows.count - 1
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Text = t.rows(r)("名称")  '设置图系的标题
    Series.Length = lit.Count   '设置图系的长度
    Series.TooltipText = "X = {#XVAL}, Y = {#YVAL}"
    
    For c As Integer = 0 To lit.count - 1
        Series.X(c) = c
……

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


加好友 发短信
等级:幼狐 帖子:103 积分:1228 威望:0 精华:0 注册:2017/5/16 22:42:00
  发帖心情 Post By:2019/4/26 16:26:00 [只看该作者]

For r As Integer = 0 To t.Rows.count - 1
            Series = Chart.SeriesList.Add() '增加一个图系
            Series.Text = t.rows(r)("名称")  '设置图系的标题
            Series.Length = lit.Count   '设置图系的长度
            Series.TooltipText = "X = {#XVAL}, Y = {#YVAL}"
            
            For c As Integer = 2 To lit.count - 1
                Series.X(c) = c
                Series.Y(c) = t.Rows(r)(lit(c))
                Chart.AxisX.SetValueLabel(c, lit(c).SubString(lit(c).Length - 10)) '指定字符表示
                Series.DataLabelText = "{#YVAL}"
                Series.LineThickNess=5
            Next
        Next


使用集合取代原有的横坐标就解决问题了,多谢大师


 回到顶部