随着大数据分析应用不断发展
BI已经渗透到各行各业
而提到BI工具能做什么
大家首先想到的肯定是这样的分析报告

这样的炫酷大屏

还有中国式复杂报表

或者移动端报告

BI经常用来做大数据分析,处理TB、PB级数据秒级响应。可是,你能想到吗?BI工具居然可以做游戏。让我们来欣赏一下这一款经典重置版游戏,它就是YonghongBI版贪吃蛇。
有没有迫不及待想玩一把,下面就跟随我们先来体验一下。

这次发挥不佳,重来一次。

好吧,说了这么多,玩了这么多,这款游戏是怎么用BI工具做出来的呢?这一切要归功于YonghongBI支持强大的JS脚本,基于JS脚本可以做到很多复杂功能,达到超出预期的体验效果。让我们看一下YonghongBI版贪吃蛇写了多少代码。

if(param['times']==1){ //控制第一次进入报表不执行动态操作score.data = param['score'] //得分文本框显示实时分数值high_score.data=param['high_score'] //最高分文本框显示最高分数值var color = new Color(6,169,190) //定义蛇身蓝色color_str = toString(color)var color2 = new Color(java.awt.Color.WHITE) //定义其他区域白色var color3 = new Color(java.awt.Color.RED) //定义食物点为红色var c3 = ''+param['eat_j']+','+param['eat_i']var loc3 = new Locator([c3],CELL,DETAIL);table1.setBackground(loc3,color3);if(param['restart']=='y'||param['restart']=='n'){snake = param['snake'].split('|')for(i=0;i<snake.length;i++){loc = new Locator([c],CELL,DETAIL);table1.setBackground(loc,color2)var c3 = ''+param['eat_j']+','+param['eat_i']var loc3 = new Locator([c3],CELL,DETAIL);table1.setBackground(loc3,color2);if(param['restart']=='y'){if(param['restart']=='n'){if(param['start']=='t'){ //主程序snake = param['snake'].split('|')if(param['direct']=='r'){ if(param['direct']=='l'){if(param['direct']=='d'){if(param['direct']=='u'){var c = ""+ param['j']+','+param['i']; var loc = new Locator([c],CELL,DETAIL)/* for(i=0;i<snake.length;i++){//判断蛇有没有撞到自己优化:判断前方位置背景颜色是不是蛇身颜色color_str2 = toString(table1.getBackground(loc))if(color_str==color_str2){if(param['i']>14||param['j']>14||param['i']<0||param['j']<0||flag==true)if(param['high_score']<param['score']){ //最高分小于得分,更新最高分数值param['high_score']=param['score']//var loc = new Locator([c],CELL,DETAIL)table1.setBackground(loc,color)var last_loc = new Locator([lastone],CELL,DETAIL)table1.setBackground(last_loc,color2) if(param['i']==param['eat_i']&¶m['j']==param['eat_j']){snake.unshift('-1,-1') //加入一个无效位置,不消掉吃的点位,制造延长蛇身的效果//取一个新的食物点位,用背景色字符串,循环保证点位不出现在蛇身上param['eat_i']=randbetween(0,15)param['eat_j']=randbetween(0,15)eat_point = ''+param['eat_j']+','+param['eat_i']loc_eat = new Locator([eat_point],CELL,DETAIL)eat_backgroud_str = toString(table1.getBackground(loc_eat))if(eat_backgroud_str != color_str){param['snake']=snake.join('|')对,只用了这么多代码就完成了一个游戏开发。如果你还是觉得代码太多了,没问题。YonghongBI的函数都可以支持封装,常用的函数封装好之后分析人员只需要去调用就行,所以只需要调用一行代码就可以了。

那YonghongBI的JS脚本是怎么用的呢?在制作报告页面,点击【更多】-【脚本】,这样就进入编辑页面了。

进入编辑页面后,脚本分为装载时运行和变化时运行,装载时运行是报表打开时执行,而变化时运行则是报表页面有变化才执行。

这里需要说的是,许多仪表盘环境需要动态定制仪表盘和实现自定义业务逻辑。这些需求包含从创建查询字段到建立脚本查询,从修改文本颜色到控制用户交互行为,从添加计算器到控制表格渲染等。而YonghongZ-Suite有一套完整的脚本环境体系,以支持用户的各种动态需求。脚本体系是YonghongZ-Suite 产品中使用面较广的功能, 可以让用户自己定制化一些高级需求, 这也是决定产品是否强大的一个重要模块。脚本系统是通过javascript的语言标准来支持的,脚本环境可以完全访问组件的绑定、属性以及数据的输入。可以在仪表盘初始化的时候执行任务,处理用户交互行为。
不仅如此,YonghongBI强大的脚本还可以实现多种动态效果,例如提示框的轮播。

看了这么多,想不想自己玩一下呢。关注我们的官方微信【永洪科技】,回复关键词【贪吃蛇】,即可获得贪吃蛇原版Demo,下载后自行安装,就可以感受YonghongBI脚本强大的魅力了。