以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  圖表數據排序問題  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=52365)

--  作者:jaegea
--  发布时间:2014/6/14 10:42:00
--  圖表數據排序問題

Dim tb As Table = Tables(e.Form.name & "_Table_tb")
tb.Sort = "編碼"

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Bar \'图表1类型可改为Bar(Pie条形)
Chart.SeriesList.Clear
Chart.BarClusterWidth = 80

For Each c As Col In tb.Cols
       Series = Chart.SeriesList.Add() \'增加第一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = tb.Rows.Count \'设置图系的长度
        For rs As Integer = 0 To tb.Rows.Count - 1
            Series.X(rs) = rs
            Series.Y(rs) = tb.Rows(rs)(c.Name)
            Series.DataLabelText = Series.Text
            Series.TooltipText = Series.Text & ":" & tb.Rows(rs)(c.Name)
        Next

Next

為什麼加上排序後TooltipText顯示的內容就錯位了?測試了好多次都是這樣,直接加上字符串就沒錯,但是調用表中單元格位置的內容就不行,不排序就沒問題,一排序就錯了


--  作者:Bin
--  发布时间:2014/6/14 10:59:00
--  
怎么样错位? 截图看看, 上个例子看看那
--  作者:jaegea
--  发布时间:2014/6/14 11:33:00
--  
請看例子,在裡面切換排序就可以看到這問題
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb


--  作者:jaegea
--  发布时间:2014/6/16 9:09:00
--  
是BUG嗎?
--  作者:Bin
--  发布时间:2014/6/16 9:11:00
--  
.什么错位没明白你意思


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


--  作者:jaegea
--  发布时间:2014/6/16 9:20:00
--  
汗,正常鼠标放到图系上TooltipText显示的应该是工序名和单元格的内容,但现在显示的是别的单元格的内容
--  作者:jaegea
--  发布时间:2014/6/16 9:25:00
--  

正常应该是这样


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

但排序后变成了这样

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


--  作者:Bin
--  发布时间:2014/6/16 9:32:00
--  
最多只能这样, 只支持数值显示

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb



--  作者:有点甜
--  发布时间:2014/6/16 9:34:00
--  

Dim tb As Table = Tables("表A")
tb.Sort = "編碼"
\'tb.Sort = ""

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Bar \'图表1类型可改为Bar(Pie条形)
Chart.SeriesList.Clear
Chart.BarClusterWidth = 80

For Each c As Col In tb.Cols
    If c.Name.Contains("數量") Then
        Series = Chart.SeriesList.Add() \'增加第一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = tb.Rows.Count \'设置图系的长度
        For rs As Integer = 0 To tb.Rows.Count - 1
            Series.X(rs) = rs
            Series.Y(rs) = tb.Rows(rs)(c.Name)
            Series.DataLabelText = "{#YVAL}"
            Series.TooltipText = c.name & ":" & tb.Rows(rs)(c.Name)
            Chart.AxisX.SetValueLabel(rs, tb.Rows(rs)("工序")) \'指定字符表示
        Next       
    End If
Next

Chart.AxisX.AnnoWithLabels = True \'启用字符标示
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)

 

http://www.foxtable.com/help/topics/0982.htm

 


--  作者:jaegea
--  发布时间:2014/6/16 10:39:00
--  
汗,這個我知道,不是數字的問題,數字的我現在用的就是這個方法,但如果我要在這個圖表上顯示當前數據行中的另一列的內容呢?比如tb.Rows(rs)("第五列")這樣的話就沒法實現了,就是顯示到其它行的此列內容了