先介绍下flex第三方的报表组件。
Mecgrid是一个开放API但不开放源代码的免费报表组件。它的官方地址是http://www.mechansp.com/prod_mecgrid.php ,它具体特性如下所示:
1、可以得到横纵列的索引。
2、支持鼠标滚动。
3、支持分成结构(即树形结构)
4、单元格自定义样式
5、同样具体dataProvider功能。
6、到处excel文件格式(AIR专有)
7、支持过滤功能。
8、单元格拖拽功能。
9、多列排序功能。
但是,MecGrid缺点还是挺多的。
1. 不支持itemrender。
2. 单元格选择时无法获知整行数据。(测试了好一会也没找到解决办法,不知道不能还是我没找出来)
3. 不支持xxxFunction设置。
4. 设置很不方便。在column设置中大量使用 number作为参数,非常非常的不利于使用,在线文档对这个ResourceXML的设置
2 NEC Grid
日本人做的报表组件,功能还是挺强大的,但是是收费的。这个网址介绍了NEC Grid组件的使用方法
http://www.necst.co.jp/product/ibiz/column/ibizblock/chap7.html。
该组件的单元格似乎是用html的元素实现的。NEC有以下几个缺点:
1. 不能改变行高(跟着字体的大小改变)。
2. 破换了itemrender的使用,增加了一个ComboBox作为itemrender,但是他的显示完全不正常。如果
itemrender的高度大于他的默认行高,显示会被切断。
3. 不支持单元格选择。
经过韩的努力,终于把NEC Grid的授权文件给搞定了。附件是已经授权的两个swc文件。
简单的小例子:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:ibiz="http://www.necst.co.jp/ibizblock/mxml" backgroundGradientColors="[#ffffff, #ffffff]" > <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.*; [Bindable] private var ac:ArrayCollection=new ArrayCollection([ {col1:"A",col2:"A1",col3:"111"}, {col1:"A",col2:"A1",col3:"34"}, {col1:"A2",col2:"A1",col3:"111"} ]); ]]> </mx:Script> <mx:Style> MultiLineGrid { horizontalGridLineColor: #c0c0c0 } </mx:Style> <ibiz:MultiLineGrid dataProvider="{ac}" editable="false" groupingColumnCount="1" width="355" > <ibiz:columns> <ibiz:MultiLineGridColumn dataField="col1" width="100" headerText="col1"/> <ibiz:MultiLineGridColumn dataField="col2" width="100" headerText="col1" /> <ibiz:MultiLineGridColumn dataField="col3" width="150" headerText="col2"/> </ibiz:columns> </ibiz:MultiLineGrid> </mx:Application>