提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2010-12-13 14:07:40.000|阅读 1819 次
概述:OWC ChartSpace 控件是微软OWC库中的一种ActiveX控件,主要是用于生成图表。该控件既可以用于服务器端(生成图片),也可以直接嵌入到客户端(Winform或IE)中。本文记述了我在使用ChartSpace控件过程中学习到的一些技术要点。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
OWC ChartSpace 控件是微软OWC库中的一种ActiveX控件,主要是用于生成图表。该控件既可以用于服务器端(生成图片),也可以直接嵌入到客户端(Winform或IE)中。说实话,在Asp.net生成图表的方法很多,比如微软的MSChart,图既漂亮,且是原生的Dotnet代码,为什么还要使用老古董的ActiveX控件呢?原因是ActiveX控件有更好的交互性,另外ChartSpace控件可以使用PivotTable控件作为数据源,从而自动生成相应的图表,省了很多的代码。
本文记述了我在使用ChartSpace控件过程中学习到的一些技术要点。
一. 和PivotTable控件关联
ChartSpace可以直接将PivotTable控件作为数据源,这样只要PivotTable控件的数据发生改变,图表也会发生相应的必变。代码如下:
chartSpace1.DataSource = pivotTable1;
在使用过程中,我发现了chartSpace的一个问题。如果PivotTable本身的数据源发生了改变,则ChartSpace的图形显示会不正常,它的坐标轴和图例是正确的,但是却没相应的图显示出来。解决的办法是先给ChartSpace控件的DataSource属性赋一个空值,然后再次将PivotTable控件赋值给DataSource属性。代码如下:
chart.DataSource = NothingOfVb(); // vbs function
chart.DataSource = pvt;
上面代码中的函数NothingOfVb()是一个VBS函数,它返回一个值Nothing,代码如下:
<script type="text/vbscript" language="vbscript">
'
' 返回vb中的nothing值
'
function NothingOfVb()
set NothingOfVb = nothing
end function
</script>
之所以搞的这么复杂,是因为如果直接给ChartSpace.DataSource赋一个null,将会抛出异常“类型不匹配”。
二. 设置图表的类型
ChartSpace控件提供了很多种图表类型,具体的可以参考它的API手册。常用的图表类型如下:
this.chart.Charts.Item(0).Type = this.getChartType();
在使用过程中,有一个问题我至今没有解决。如果图表类型被设置饼图,那么每次只能显示第一个系列的数据,而实际会有多个系列的数据,我希望全部系列都显示出来(多个饼图的形式)或者通过代码指定要显示哪个系列的数据,可这两点我都没能做到。有知道怎么做的朋友麻烦告诉我一声。
三. 设置图表的外观
图表的外观基本上都是通过ChInterior对象来设置的。
下列属性返回 ChInterior 对象:
ChChart 对象的 Interior 属性
ChChartDraw 对象的 Interior 属性
ChartSpace 对象的 Interior 属性
ChDataLabel 对象的 Interior 属性
ChDataLabels 对象的 Interior 属性
ChDropZone 对象的 ButtonInterior 属性
ChDropZone 对象的 WatermarkInterior 属性
ChLegend 对象的 Interior 属性
ChPlotArea 对象的 Interior 属性
ChPoint 对象的 Interior 属性
ChSegmentBoundary 对象的 Interior 属性
ChSeries 对象的 Interior 属性
ChSurface 对象的 Interior 属性
ChTitle 对象的 Interior 属性
要设置拆线图的颜色,则需要设置ChSeries.Line.Color的值。要设置饼图的颜色,则要设置ChPoint.Interior返回的ChInterior对象的相关属性的值。以下是我工程中的部分代码:
设置图表外观 </p>
四. 导出图表
ChartSpace控件提供了一个名为ExportPicture(FileName, FilterName, Width, Height)的方法。从文档上看,应该可以用这个方法导出为图片,不过在实际用时却总是报异常。
ChartSpace控件还有另一个方法GetPicture(FilterName, Width, Height)。这个方法可以获得导出图片的二进制数据。测试中,这个方法倒是没问题,顺利的获得了结果,是一个整数所数组。在Vs2008的监视窗口中也可以看到数组的内容。但神奇的是,我没有任何办法用Javascript或Vbscrip去访问数组的内容。经常一番Baidu,我找到了解决方案,使用MSXML2.DOMDocument。这是一个比较奇特折方法
基本断路是使用MSXML2.DOMDocument将二进制数组转换成base64编码的字符串,编码之后就可以通node.text属性获得结果。那么这个字符串如何保存为图片呢?我的解决方案是将它提交给服务器,然后解码回二进制再作为图片发送回客户端。显然,因为数据量的关系,提交时只能使用POST方式了。
其中的String.format函数是Ext提供的,它的功能类似于C#中的Format函数。对应的服务器端代码如下:
整个过程是比较神奇的,先从ChartSpace中获取数据,编码后再提交给服务器,服务解码后再发送回客户端,真是无端的增加了服务器的负荷。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:网络转载面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢