wuxiren123

#

Web报表工具JS开发之日期校验

在报表开发过程中,我们常常需要对查询界面进行日期校验。例如有两个参数:开始日期和结束日期,我们要校验的是:开始日期与结束日期不能为空,结束日期必须在开始日期之后以及结束日期必须在开始日期后的某个时间段内,否则提示相关信息,对此可以在查询按钮中增加事件。下面我们通过FineReport来介绍下具体的设置。

具体效果图如下:

 

可以看出会报出如下错误。

模板的设计工作这边就不重点讲了,设定好如下的模板界面:

 

给查询按钮增加点击事件,具体的JS代码如下:

var start = this.options.form.getWidgetByName("starttime").getValue();  
var end = this.options.form.getWidgetByName("endtime").getValue();  
if( start == "" || start==null){  //判断开始日期是否为空
  alert("错误,开始时间不能为空");   //开始日期参数为空时提示
  return false;  
}
;  
if(end == "" || end==null){  //判断结束日期是否为空
  alert("错误,结束时间不能为空");   //结束日期参数为空时提示
  return false;  
}
;  
if( start > end){   //判断开始日期是否大于结束日期
  alert("错误,开始时间不能大于结束时间");   //开始日期大于结束日期时提示  
  return false;  
}

var startdate = new Date(start);   //将开始日期转化为Date型
var enddate = new Date(end);    //将结束日期转化成Date型
var subdate = (enddate-startdate)/ (1000 *60 *60 *24);   //将两个日期相减得出的毫秒数转化为天数
if(subdate>15){    //判断结束日期是否超过开始日期后15天
alert("错误,结束日期必须在开始日期15天之内");    //结束日期超过开始日期后的十五天时提示
return false;
}


 

虽然在参数控件中也可以设置校验,但是参数控件要点击控件后才能进行校验,因此参数界面的不能为空以及比较校验需要在查询按钮中设置,所以倒不如全放在查询按钮中进行校验。

设置完查看模板,选择开始时间和结束时间,使这两个日期之间相差超过15天,就会弹出上述对话框。

因为FineReport的报表界面是在前段展示,我特地把各种浏览器试了个遍。刚刚上述的js代码在火狐,谷歌IE9等浏览器下没有问题,但是在IE8以及IE8以下的IE浏览器版本中,判断两个日期之间的差值的警告框则不会起作用。可以换用以下代码:

var start = this.options.form.getWidgetByName("starttime").getValue();    
var end = this.options.form.getWidgetByName("endtime").getValue();    
if( start == "" || start==null){  //判断开始日期是否为空  
  alert("错误,开始时间不能为空");   //开始日期参数为空时提示  
  return false;    
}
;    
if(end == "" || end==null){  //判断结束日期是否为空  
  alert("错误,结束时间不能为空");   //结束日期参数为空时提示  
  return false;    
}
;    
if( start > end){   //判断开始日期是否大于结束日期  
  alert("错误,开始时间不能大于结束时间");   //开始日期大于结束日期时提示    
  return false;    
}
  
var aDate  =  start.split("-")  
var startdate =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])    //转换为MM-dd-yyyy格式  
alert(startdate);
var aDate  =  end.split("-")  
var enddate  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])  
alert(enddate);
var subdate=  ((enddate  -  startdate)  /1000/  60/60/24)    //把相差的毫秒数转换为天数  
alert(subdate);
if(subdate>15){    //判断结束日期是否超过开始日期后15天  
alert("错误,结束日期必须在开始日期15天之内");    //结束日期超过开始日期后的十五天时提示  
return false;  
}

 


posted @ 2016-05-11 15:48 喝水居然长肉 阅读(62) | 评论 (0)编辑 收藏

移动端报表JS开发示例--获取定位

上次分享了移动端报表JS开发的系统概念,后来我又回去摸索了一些案例。之前接触到的FineReport的APP客户端可以用来打卡签到,就好奇研究了以下,这次就来聊一聊报表移动端开发如何实现定位功能。

1. 解决思路

在用FineReport设计模板的时候添加一个按钮控件,点击该按钮的时候,获取当前地理位置,并将该位置信息复制给某个单元格,最后在客户端填报当前模板即可。

2. 示例

实现如下图所示效果,点击地理位置按钮获取当前位置与当前时间,并显示在下方对应的单元格中:

2.1 模板制作


打开设计器,新建一张模板,按照如下图所示样式设计模板,其中E2单元格为按钮控件,控件名称为地理位置,C5为下拉框控件,E5为时间控件:

2.2 获取当前地理位置


获取当前地理位置有两种方式,一个是点击按钮获取地理位置,一个是直接打开模板的时候就获取位置,示例中,我们是想实现通过点击按钮获取地理位置。

通过点击按钮获取地理位置

打开按钮的控件设置,为该控件添加一个点击事件,如下图:

js如下:

1.    FR.location(function(status, message)//获取地理位置  
2.    if(status=="success"{  
3.        //定位成功,message返回经纬度值  
4.        FR.Msg.alert("当前位置是" + message);  
5.        contentPane.setCellValue(23, message);      
6.    }
 else {  
7.        //定位失败,message返回对应的错误信息  
8.        FR.Msg.alert(message); //定位失败  
9.    }
  
10.    }
);  

FineReport通过FR.location方法获取当前位置,如果status值为success,则表示获取地理位置成功否则定位失败,如果定位成功,则将返回的地理位置信息赋值给C4单元格。

但是该方法只在移动端有用,如果在web点击该按钮事件获取地理位置,则直接提示定位失败。

加载结束后获取当前位置

如果想在模板加载结束之后就获取到当前地理位置,那么只需要将上述代码添加到加载结束后事件中即可,打开模板,点击模板>模板web属性>填报页面设置,添加一个加载结束事件,如下图:

2.3 获取当前时间


在模板中还需要将当前签到时间也赋值过去,所以还需要在按钮的点击事件中获取到当前时间,并赋值给E4单元格,js如下:

11.    var myDate = new Date();  
12.    var mytime=myDate.getFullYear()+"-"+myDate.getMonth()+1+"-"+myDate.getDate()+" "+myDate.getHours()+":"+myDate.getMinutes()+":"+myDate.getSeconds(); //获取当前时间  
13.    contentPane.setCellValue(43, mytime);   


按钮点击事件全部js如下:

14.    FR.location(function(status, message)//获取地理位置  
15.    if(status=="success"{  
16.        //定位成功,message返回经纬度值  
17.        FR.Msg.alert("当前位置是" + message);  
18.        contentPane.setCellValue(23, message);   
19.        var myDate = new Date();  
20.        var mytime=myDate.getFullYear()+"-"+myDate.getMonth()+1+"-"+myDate.getDate()+" "+myDate.getHours()+":"+myDate.getMinutes()+":"+myDate.getSeconds(); //获取当前时间  
21.        contentPane.setCellValue(43, mytime);   
22.      
23.    }
 else {  
24.        //定位失败,message返回对应的错误信息  
25.        FR.Msg.alert(message); //定位失败  
26.    }
  
27.    }
);  




 

2.4 效果查看


将该模板添加到数据决策系统的节点树上,其操作方法请查看添加模板,其中模板的预览方式为填报,如下图:


根据添加服务器章节介绍的操作步骤,用移动端登录该系统,访问该张模板,点击地理位置按钮获取当前地理位置和当前时间,如下图:


但是,FineReport获取到的地理位置是经纬度,如需要确定其具体位置,就需要另外转换。

移动端的开发还在持续学习中,感兴趣的朋友可以和我一起探讨研究。

posted @ 2016-05-05 16:38 喝水居然长肉 阅读(92) | 评论 (0)编辑 收藏

Web报表工具FineReport的JS API开发(二)

     摘要: 很多报表软件可以利用JS接口来实现更多更复杂的功能。这需要开放大量的JS API给用户,根据执行JS的主体不同可以将分为三大类:FR、FS和contentWindow。  阅读全文

posted @ 2016-03-23 15:00 喝水居然长肉 阅读(217) | 评论 (0)编辑 收藏

Web报表工具FineReport的JS API开发(一)

     摘要: 很多报表软件可以利用JS接口来实现更多更复杂的功能。以FineReport为例,开放了大量的JS API给用户,根据执行JS的主体不同可以将分为三大类:FR、FS和contentWindow,以下将详细介绍这三类方法的使用。  阅读全文

posted @ 2016-03-17 13:36 喝水居然长肉 阅读(114) | 评论 (0)编辑 收藏

Java报表工具FineReport导出EXCEL的四种API

     摘要: 在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出、分页分sheet导出和大数据量导出,这些导出方式在JAVA程序中分别有不同的接口来实现。  阅读全文

posted @ 2016-03-15 14:27 喝水居然长肉 阅读(73) | 评论 (0)编辑 收藏

某公交公司商业智能系统建设方案分享

某市公共交通总公司是当地从事公共交通行业的大型企业,旗下有七个子公司。这些年,公司大力发展信息化建设,已建成多个信息管理系统,涉及运营、管理、财务等方面。这些系统既相对独立,又具有一定的联系,彼此会互相调用其它系统的数据。但这些信息系统经过了近十年的使用与发展,其本身固有的限制已经越来越不适合当前企业的业务需求,主要体现在以下方面:

(1)应用功能不能实现完全自动化。

(2)网络负载大,应用开发和维护繁琐。

(3)由于系统存在功能不足,需要大量人手进行分析报表工作。

(4)系统本身的技术架构己经落后,不能满足用户不断提出的对数据应用的要求。

(5)近十年累积的改动和扩展,使到系统过于庞大,接口很多,多种技术和平台混合使用,应用和维护成本高。

(6)信息系统间共享数据的需求客观存在,但由于各系统的开发时间、开发工具、部门要求以及在数据库的选择等不同原因,分布在网络中的不同系统中的数据相互独立,无法实现真正的信息资源共享。

(7)每个信息系统都有私有的数据库,对于同一事物,可能在不同的系统中被赋予不同的意义,带来语义混乱。不同系统中存储格式存在差异,这些在综合处理时都会带来很大的麻烦同时,跨系统调用数据也会严重影响性能。

因此,该公司一直寻求既能不影响现有系统的运行,又能对全公司数据进行集中分析处理的方法,商业智能正是一个优秀的解决方案。利用商业智能软件FineBI得天独厚的稳定性和大数据处理优势,各系统数据得以联系,以往堆积的数据也都”活跃“起来。



 

也正因为这样一个网络式搭建的系统,车辆的信息得到归档集中,管理人员能够实时有效地查看车辆运营信息和车辆维修保养状况,辅助进行决策。


    

该公司实时商业智能已有数年历史,管理人员已熟悉这种管理模式,商业智能的解决方案也给管理运行带来如下益处:

(1)提高了查询分析性能。

(2)减少和控制运营风险。

(3)通过增加效率来减少运营成本。

(4)通过智能化分析,合理安排车辆保养。

(5)分析报表自动化处理,减少人力物力支出。

(6)集成数据形成企业级信息视图,便于综合分析。

(7)通过智能化分析和数据挖掘捕获知识,辅助管理决策。

posted @ 2016-03-10 14:01 喝水居然长肉 阅读(63) | 评论 (0)编辑 收藏

【实例解析】某水泥企业应用商业智能提升管理效率

某大型水泥企业在成功实施ERM项目后,财务、销售、采购、库存、质量、生产调度、原材料进厂、产品出厂、OA、CRM等系统均运行良好,为公司的管理提升、效率提高做出了较大贡献。随着公司的跨越式发展,公司管理逐渐从单一公司管理模式转向集团管理模式,在新的管理模式下如何实现科学管理,成为了该集团管理所面临的一个重要课题。

在财务管理方面,目前五个生产基地都已经建立独立的信息系统,且都积累了大量的第一手生产经营数据。因此,如何对五个生产基地的数据进行多角度、多层次分析,发现公司生产经营中存在的优势与薄弱环节,从全局性、系统性角度思考公司运作状况及发展趋势,挖掘隐藏在数据中的规律以此来指导公司集团化生产经营,为领导决策提供科学依据,是公司在管理层面上所迫切需要解决的问题。经过调研、分析与论证,该公司最终决定实施商业智能BI(Business Intelligence)项目。按照总体规划、分步实施的原则,以财务为突破口,建立面向公司各部门、五个生产基地的商业智能BI系统。增强分析与挖掘数据资源的能力,提升公司科学管理水平。

  由于财务系统的信息化基础较好,并且已形成集团化管理模式。因此该公司打算以财务为突破口,建立面向公司各部门、五个生产基地,基于数据仓库基础之上的商业智能BI系统。主要功能是采用五个生产基地的基础数据、预算数据、明细及业务数据,建立数据仓库系统,基于财务分析管理需求,实现服务于公司各级领导及管理人员的智能化分析系统。

基于这样的管理需求,采用FineBI提供的解决方案:

  1. 自动抽取各生产基地第一手业务数据、预算数据及BI系统所需要的其他数据。

  2. 数据经过转换后导入FineCube多维数据库。

  3.  数据经系统的综合处理,形成多层次、多维度的最终分析结果。公司领导及各级管理人员可以快速准确地对公司生产经营数据进行及时有效的分析,为决策提供科学依据。



      目前,通过这样的一套系统,公司已基本实现以下几大目标:

    1.五个生产基地财务数据集成统一
      完成了对五个生产基地的财务及预算成本数据的集成,各生产基地财务业务历史和实时数据每天定时自动清洗加载至cube,数据每月定时自动加载。

     2.大大减少报表设计工作量
      搭配FineReport报表工具,利用BI系统丰富的图表样式和多维度分析,很大程度上减少了报表设计工作人员的工作量。
     3.简化复杂的计算,缩短查询时间
       BI系统采用了即席查询的先进理念,弥补了传统手工操作计算的不足,且响应时间大大缩短。
     4.减轻业务系统负荷
      大部分查询分析工作可在BI系统上进行,降低了服务器负荷,提高了稳定性。
     5.提供正确的决策信息
      多维度分析多业务数据,可及时发现问题和潜在价值规律,辅助领导层做出正确的决策,提高企业自身竞争能力。



 

      总之,FineBI系统的部署,整合了财务分析需要的所有数据,财务人员可以利用BI系统快捷、高效、深入的分析财务数据,将更多精力投入到挖掘隐藏在这些数据中的深层次的规律,发掘数据的价值,更好的指导财务工作。

posted @ 2016-03-02 11:13 喝水居然长肉 阅读(59) | 评论 (0)编辑 收藏

商业智能在公安交通管理领域的应用

随着商业智能和大数据的价值不断深入人心,各行各业均有了不同程度的探索,近几年,商业智能系统开始在公安交通管理领域得到普及应用。相信未来,基于大数据分析的行业应用将更加深入,商业智能和大数据在公安领域的价值和应用模式将逐渐清晰。

如今,公安交通管理业务处理的信息化建设已经有了一定的规模,在日常警务工作中,这些商业智能应用系统及相关的数据库大大提高了工作效率,完成了各项任务,优势十分明显。但随着城市交通日益发达,管理的相关因素显得更加错综复杂。加上原有系统在设计时是为满足某个警务工作的需要而针对性建设的。这就造成信息的条状分布,给信息系统带来了新的挑战,因此,新平台系统建设将梳理信息资源,提高综合管理信息应用决策能力。

Gartner Group提出,商业智能描述的是一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术能够提供企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息,然后分发到企业各处。公安交通管理领域的商业智能系统必须具备智能性处理的能力,即综合省市交管局的信息,整合信息孤岛,提高信息分析质量,有力地支持警务工作开展。帆软FineBI产品经理Julie认为,拥有良好的稳定性,具备百亿级大数据处理能力和不错的交互体验,对发展公安交通行业至关重要。

一般而言,公安交通综合管理系统的建设目标主要为以下两点:

1、建立综合信息应用能力,实现集中警力调配。

通过与现场信息的连接,通过与多种不同警务处理信息关联,实现综合信息应用能力,集中警力调配,从而大大提高出警、处理、监控与分析的效率。

2、整合各种应用系统,形成整体信息利用能力。

通过整合各种已有的警务处理、管理应用系统,形成整体信息利用能力,建立成为公安交通高科技、信息化的智能交通管理的信息平台。

 

在系统的架构设计上,我们可以将公安交通管理智能平台的系统架构分为4个层次:即道路现场、终端信息处理层、信息数据处理层以及信息综合应用层,如下图所示:


posted @ 2016-03-01 15:20 喝水居然长肉 阅读(50) | 评论 (0)编辑 收藏

FineReport根据点击次数奇偶性排序之字符型

上一篇文章我们提到了字段为数据型的数据列排序方法,采用的是根据点击次数奇偶性来排序,那如果是字段为字符型,又该如何实现呢?


 

这里提供的解决思路是通过超级链接来实现升序降序两张模板之间的相互调用,每点击一次就切换到另一张模板。

 

下面以一个简单示例进行介绍

 

  1、修改数据集

 

升序模板

 

将原来的数据集修改为:SELECT * FROM [订单] order by 客户ID,根据字符型字段客户ID对数据进行升序排序,另存为Order_A.cpt

 

降序模板

 

将原来的数据集修改为:SELECT * FROM [订单] order by 客户ID desc,根据客户ID对数据进行降序排序,另存为Order_B.cpt

 

  2、设置超链接

 

右击客户ID表头所在单元格,选择超级链接,点击网络报表,在网络报表的路径处选择模板,Order_AOrder_B的设置分别如下:

 

Order_A

 



 

Order_B

 

 



 

要注意的是,链接打开于处选择当前窗口。

 

  3、效果查看

 

打开Order_A.cpt,点击分页预览,看到的是按照客户ID的升序排序,直接点击客户ID,则会按照客户ID进行降序排序,再次点击客户ID,则会又按照客户ID进行升序排序。




posted @ 2016-03-01 13:12 喝水居然长肉 阅读(51) | 评论 (0)编辑 收藏

某体育用品公司在零售领域BI的产品应用解决方案

某体育用品公司在零售领域BI的产品应用解决方案

pasting

随着某体育用品公司集团经营规模的不断扩大,信息化的建设也在不断的深入,从POS系统到ERP系统,从MAIL系统到OA系统,整个集团的每项工作都与信息系统密不可分,可以说是行业内信息化建设的先导者。但是随着信息系统的日益增多,面临的问题也不断涌现,如信息孤岛、大量历史数据的闲置等,如何将多个信息系统的数据进行整合?如何将大量闲置的历史数据提炼成知识?成为该集团管理层和IT部门案桌上的重要课题。

帆软FineBI结合自己多年的BI行业经验,针对以上问题提出了一个完善的解决方案,其解决方案的核心思想,是“一个平台,两个统一,三个层次,四个改善”,即:

一个平台:搭建统一的数据分析平台;

两个统一:数据规范统一,报表分析规范统一;

三个层次:基础业务层自主分析快速汇报、中间管理层汇总预警及时处理、最高决策层全局把控科学决策;

四个改善:基础业务层自主分析快速汇报、中间管理层汇总预警及时处理、最高决策层全局把控科学决策。

围绕这些核心思想,集团最终搭建了有力的数据挖掘、信息分析整理、数据管理等解决方案,帮助集团梳理和制定完善的报表体系,为其制定具有竟争力的分析模式和模型、充分利用现有信息资源,让各个业务部门实现销售、产品规划、财务、库存等核心业务的辅助决策。


本商业智能BI系统中,我们总共分了如下几个模块:

1、高级综合分析主题:本年销售系统总体增长、综合店效(南北区域)、区域零售总体增长水平、分销业务部分区域订货情况、零售子公司分区域订货情况、坪效与竞品差距等;

2、销售及业绩看板分析:新品销售总体分析、新品销售同期对比分析、各产品类别销售-订货对比分析、交叉分析_按各分析维度、销售排名分析等;

3、订货情况分析主题:订货总体情况、各指标总体规划与实际订货对比、订货情况同期对比分析、交叉分析_按各分析维度、订货排名分析等;

4、客户分析主题:Top客户分区域订货情况、客户级别分区域的状态、VIP客户分析等;

5、生产、库存分析主题:产品库存分析、在仓产品库存时间分析、通路库存分析等;

6、财务、KPI分析主题:总体收入、总体利润、总体费用、应收帐款、零售公司指标分析等;

在各个分析主题中,我们充分发挥了FineBI的业务人员做报表的优势,各层级人员可以自己拖拽做报表进行分析,通用的、典型的后期就纳入到分析主题中,实现知识共享。

总体来看,我们对系统建设达到的目标可以总结为以下几点:

1、通过信息及时的预警跟踪,以关键有效的信息,为决策者提供了更为简洁的监控能力,以提高管理效率,防范信息阻塞及死角带来的风险。

2、通过信息关联,以模型固化管理规范为手段,以信息引导数据的分析为方法,为决策者提供有力的决策依据。

3、通过财务、生产、销售及采购的综合信息,为决策者综合管理平衡提供了有效的支持。

4、通过数据仓库的建设,为企业建立多维分析的基础;实现根据分析维度的灵活组合查询与分析。

5、借助FineBI商业智能工具,实现顶层汇总数据监控到明细数据查询分析;将分析由汇总到明细、由宏观到微观,提高企业分析的时效性与准确。

6、通过分析主题及模型的建立,为企业决策提供具有可决策、可预测的分析模型,将模型分类,形成各个分析主题,为企业在分析决策中,提供成体系的分析方法与思路。

7、在应用过程中,逐渐形成了一套标准数据信息的规范。

posted @ 2016-02-16 15:38 喝水居然长肉 阅读(69) | 评论 (0)编辑 收藏

仅列出标题
共7页: 上一页 1 2 3 4 5 6 7 下一页