以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  图表的bug  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=6053)

--  作者:reachtone
--  发布时间:2010/2/28 11:08:00
--  图表的bug
只要数值列为“高精度小数”,图表就有可能无法正常显示。这是例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目27.rar


在上例中,只要A列有空值的,该行图表就无法生成。如果把所有数据列类型改成“双精度小数”,则又可以正常显示。
而在实际项目应用中,表数据全部是通过SQLCrossTableBuilder等统计生成的,这样得到的统计列全部都是高精度小数,就导致此问题!

--  作者:czy
--  发布时间:2010/2/28 11:25:00
--  
老怪了,我这里又没问题。
--  作者:reachtone
--  发布时间:2010/2/28 11:45:00
--  
注意看,下图的fff、oooo、tttt三项是空的:

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

如果把数值列全部改成“双精度小数”,就可全部正常显示。
--  作者:czy
--  发布时间:2010/2/28 19:42:00
--  
是有此问题,顶一下。
--  作者:狐狸爸爸
--  发布时间:2010/3/1 9:04:00
--  
收到,我抽空看看
--  作者:狐狸爸爸
--  发布时间:2010/3/2 12:05:00
--  
Dim Chart As WinForm.Chart = e.Form.Controls("Chart1")
Dim Series as WinForm.ChartSeries
Chart.DataSource = "表A"
Chart.ChartType = ChartTypeEnum.Bar
Chart.SeriesList.Clear()
For each i As Col in Tables("表A").Cols
    If i.Name <> "xm" Then
        Series = Chart.SeriesList.Add()
        Series.Text = i.Name
        Series.X.DataField = "xm"
        Series.Y.DataField = i.Name
        Series.Y.DataType = GetType(Double)
    End If
Next
Chart.Inverted = True
Chart.Stacked = True
Chart.LegendVisible = True
Chart.LegendCompass = CompassEnum.East

--  作者:reachtone
--  发布时间:2010/3/3 10:31:00
--  
加上Series.Y.DataType就OK了。
帮助中没有,建议将此加上。
--  作者:reachtone
--  发布时间:2010/3/3 16:08:00
--  
还有就是,插入到Excel中的图表,打印出来很不清晰,不知能否给图表设置清晰度。
--  作者:程兴刚
--  发布时间:2010/3/3 18:01:00
--  
以下是引用reachtone在2010-3-3 10:31:00的发言:
加上Series.Y.DataType就OK了。
帮助中没有,建议将此加上。


不要加在帮助上,而是从根儿上解决,让Series.Y.DataType 实现自动转换。


--  作者:狐狸爸爸
--  发布时间:2010/3/4 16:58:00
--  
以下是引用reachtone在2010-3-3 16:08:00的发言:
还有就是,插入到Excel中的图表,打印出来很不清晰,不知能否给图表设置清晰度。


下次更新后,可以保存为wmf格式,这样就可以无级缩放,不变形。