link: https://www.cnblogs.com/luoyuhao/p/12127588.html
开头语
经过一段时间研究,终于实现CS和BS相同效果的大数据展示平台了。首先来看看实现的效果,超炫的效果,客户特别喜欢,个人也非常满意,分享给各位,同大家一起交流学习。
大数据展示平台
从上图可以看出,分为左中右三栏,左右主要是展示图标为主,中间部分展示地图,这种展示主要使用于物流行业,亮点是中间的地图,物流覆盖的地方和线路在地图中显示的淋漓尽致,效果非常炫,用WPF去现实的,图片进行切片,研究了四个晚上做了这效果。
按快捷键Ctrl+F1可以对数据库进行设置
按快捷键Ctrl+F2可以对系统标题,企业愿景和公司最新动态,公司公告和地图的颜色和线路进行设置,这样就适用于大多数客户。
这样即可完全自定义了,适应于多个客户,由于我公司是很多客户的,所以必须进行公版话,进行自定义设置,这里就适用于很多了客户了。
实现代码
数据获取代码就不再展示了,下面分享下部分代码,首先是地图部分,由Canvas去画线就好了,这样就生成了地图。
地图上的从一点到另一个点进行画线代码如下:
左右两边用到的图标是用Visifire.Charts.dll去实现的,网上也有非常多的例子,其实CS的图表没有BS实现出来的那么美观,对图表的也研究了很久,未发现比较好用的图表控件,你有好的图表控件推荐吗?
例如折线图:
柱状图:
同时还适用了定时刷新数据,频率为分钟,晚上8:00到早上7:00不刷新数据,这样减少服务器压力。
private DispatcherTimer RefreshDataTimer = null; RefreshDataTimer = new DispatcherTimer(); RefreshDataTimer.Tick += new EventHandler(OnDataEvent); RefreshDataTimer.Interval = new TimeSpan(0, 5, 0);//5分钟一刷新 RefreshDataTimer.Start();
//获取当前系统时间并判断是否为服务时间 TimeSpan nowDt = DateTime.Now.TimeOfDay; TimeSpan workStartDT = DateTime.Parse("20:00").TimeOfDay; TimeSpan workEndDT = DateTime.Parse("08:00").TimeOfDay; if (nowDt > workStartDT && nowDt < workEndDT) { getdata(); }
以上说明了大概的实现思路。
结束语
现在大数据分析在我们日常开发软件中经常遇到,一旦有了这个经常会给软件打上高大上的标签,客户很青睐,报价多个一两万轻而易举的事情,后续还需继续完善,在市场上会越来越多的大屏展示数据有我们这样的软件出现。
程序文件:https://files.cnblogs.com/files/luoyuhao/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%B9%B3%E5%8F%B0.rar