提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2012-10-18 13:45:05.000|阅读 306 次
概述:文主要描述在Siverlight下使用图表组件Visifire展现多维数据集中的数据。由于多维数据集结构本身很复杂所以本文使用一维的查询结果,侧重于从OLAP到Silverlight端的方法。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
为什么要用visifire?
其实在微软的silverlight toolkit中已经有了图表组件,但是笔者认为其效果不如visifire的效果好,而且visifire中的每个数据点datapoint都可以被点击到,这个在做BI相关项目的时候很重要,因为类似drill down/up和drill throught to detail的操作都得依赖这个来实现。
建立Silverlight项目:
打开Visual Studio 2008,选择文件,新建Silverlight项目。新建项目的同时会提示是使用asp.net web项目来寄宿silverlight项目还是只使用一个简单的测试页来寄宿silverlight项目。这里选择asp.net web application项目。
Silverlight本身作为浏览器的插件是没有System.Data 这样的命名空间的,所以需要从数据库或其它数据源获取数据的话就需要通过webservice以及类似的方式,所以,为silverlight提供数据的webservice相关资源我们会建立在刚才的寄宿silverlight的asp.net web applition项目中。
添加Visifire到页面中:
首先需要添加visifire引用到项目中。这里我们只需添加一个dll文件即可
其中WPFVisifire.Chart.dll是在WPF Application下使用的,SLVisifire.Charts.dll是在silverlight项目下使用的。
这里我们在刚才建立的silverlight项目下右键单击References,选择Add References…,在弹出的Add Reference窗体下选择Browse选项卡,定位到visifire下载目录,找到SLVisifire.Charts.dll,然后单击OK。
由于visual studio本身是不支持silverlight控件的设计时拖拽支持的,所以这里需要用到Blend2。右键单击Page.xaml文件,选择Open in Expression Blend…。只要正确安装了Blend2+SP1,那么这个选项就会出现。
在Blend中,找到我们添加的visifire chart控件放到Page.xaml中,具体方法如下:
如上图,在Blend的工具栏中找到>>这样的按钮,单击它,会出现Asset Library对话框,选择Custom Controls,然后单击Chart。这个Chart就是我们要添加的Visifire chart。现在鼠标变成了一个十字型,在面板上勾画一个矩形区域,至此visifire chart添加完毕。
Visifire 2以后的版本都带了Blend设计时支持,所以在Blend里可以看到其占位符。此外,我们还需要给这个chart取一个名字(默认是没有名字的),好以后在c#文件里可以引用到它:
我们也可以在代码中创建chart到面板中,visifire的document中有很多示例代码,在此不作过多描述。
建立WebService服务:
回到visual studio中。由于数据来自于多维数据集,所以需要添加ADOMD.Net的引用。右键asp.net web application项目,选择Add Reference…,找到Microsoft.AnalysisServices.AdomdClient,选择10版本的,如下图:
接下来添加服务文件,同样右键asp.net web application项目,选择Add-New Item…,在弹出的对话框中选择Web Service,添加一个web服务到项目中。
打开这个服务文件,在顶部添加如下引用:
using Microsoft.AnalysisServices.AdomdClient;
Visual Studio会为我们默认添加一个Hello World方法,删除它,然后加入如下代码:
[WebMethod]
public List<ChartItem> GetResult() { List<ChartItem> result = new List<ChartItem>(); AdomdConnection conn = new AdomdConnection(); conn.ConnectionString = "provider=msolap ;Integrated Security =SSPI ;Data Source= localhost ;Catalog = Adventure Works DW 2008 ;"; conn.Open(); AdomdCommand comm = new AdomdCommand(); comm.Connection = conn; comm.CommandText = "select [Measures].[Reseller Order Count] on 0,[Product].[Category].[Category].members on 1 from [Sales Targets]"; AdomdDataReader dr = comm.ExecuteReader(); while (dr.Read()) { ChartItem ci = new ChartItem(); ci.Title = dr[0].ToString(); ci.Value = double.Parse(dr[1].ToString()); result.Add(ci); } return result; }
返回类型是List<ChartItem>,其中ChartItem是自定义的一个类,代码如下:
public class ChartItem { public string Title { get; set; } public double Value { get; set; } }
数据的查询过程和查询数据库的大同小异,只不过是针对多维数据集有专门的AdomdConnection和AdomdCommand等对象。接受结果用CellSet是比较多的,但是这里由于只用了一维的数列,结构相对比较简单,所以用AdomdDataReader来接收就足够了。然后dr.Read()循环创建ChartItem对象添加到类型为List<ChartItem>的结果result中。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:博客园面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
Visifire Silverlight是基于Silverlight的数据可视化控件套包
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢