我正在构建一个用于报告销售数据的应用。核心数据结构如下
Product <---->> SaleAggregate
Customer <---->> SaleAggregate
SaleAggregate是某个月每位客户的每件产品的总销售额。该实体具有“月”,“年”和“金额”属性。
我试图以表格格式显示如下(每个客户的单独表格)
+---------+---------+---------+---------+---------+
| Product | 01/2011 | 02/2011 | 03/2011 | 04/2011 |
+---------+---------+---------+---------+---------+
| Gizmo | 40 | 120 | 83 | 48 |
| Widget | 92 | 38 | 37 | 36 |
| Thingy | 12 | 84 | 29 | 40 |
+---------+---------+---------+---------+---------+
每个客户都可以记录任意数量的产品的销售情况,我需要检索所有这些销售,以某种方式按产品对它们进行分组,然后将每个SaleAggregate'Amount'显示为相应的月/年。
我可以轻松地为具有NSPredicate的客户检索所有SaleAggregates,并使用NSPredicate和@distinctUnionOfObjects
将所有独特产品销售给客户,但我不确定从何处开始。
该表是使用UICollectionView实现的,但我不太清楚将正确的值放在cellForItemAtIndexPath
的正确单元格中应该是什么逻辑。是否只是在一个查询中检索每个SaleAggregate,然后使用NSPredicate过滤数组,以确定我想要显示的每个单元格的正确月份/年份?我认为必须有一种更聪明的方法来做到这一点。
谢谢!
答案 0 :(得分:0)
这个怎么样?
使用谓词和过滤,您可以为特定客户获得以下内容吗?
ProductArray:
SalesAggreateDateArray:
if section ==0
row==0 --> "Product"
rest of the rows --> [ProductArray objectAtIndex:indexPath.row]
else if row ==0
sections --> [SalesAggregateDateArray objectAtIndex:indexPath.section]
else
each cell --> [SalesAggregateAmountObjects filter with
date= date at row 0, indexPath.section and
product = product at section 0, indexPath.row]