我在我的应用程序中有平面数据,我需要分组,总结和计数,因为我通常会用sql查询。对于这个项目,它必须在flex应用程序中完成。我需要弄清楚如何使用我的Arraycollection中的数据时间字段按天或月分组我的数据,然后适当地计数或总结其他字段中的数据。我以前使用过Groupingcollections,但只在绑定到分层控件(如AdvancedDataGrid和Tree)时使用,但我需要一个包含分组和汇总数据的结果ArrayCollection。
基本上,我试图访问我的AC像一个sql表(GROUP BY MONTH(datetime), COUNT, COUNT(DISTINCT()等),我不确定如何做到这一点。有人有这样做的经验吗?
你可以给ActionLinq (https://bitbucket.org/briangenisio/actionlinq/wiki/Home)一个尝试。我自己还没用过,但我一直想试一试:)
这是Linq(来自c#)在actionscript中的实现。这为您提供了一种以非常类似sql的方式(选择、分组、筛选等)处理数据集合的功能方法。
我将其描述为类固醇的filter
方法。
下面是一个来自网站的例子-它显示了一些类似sql的名称以及链接是如何工作的:
var transformed:Array =
[-4, -3, -2, -1, 0, 1, 2, 3, 4]
.where(isEven)
.select(square)
.distinct()
.reverse()
.toArray();
assertThat(transformed, array(0, 4, 16));
更多信息和例子在这里:http://riarockstars.com/2011/02/07/processing-data-on-the-clientactionlinq/
您可能会发现这个示例为您指明了正确的方向http://flexdiary.blogspot.com/2008/09/groupingcollection-example-featuring.html