0

売上高を報告するためのアプリを構築しています。コアデータ構造は次のとおりです。

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 の「金額」を表示する必要があります。

NSPredicate を使用して Customer のすべての SaleAggregates を簡単に取得でき、NSPredicate と を使用して顧客に販売されたすべての一意の製品を簡単に取得できますが@distinctUnionOfObjects、ここからどこに行くべきかよくわかりません。

テーブルは UICollectionView で実装されていますが、適切なセルに適切な値を配置するためのロジックがどうあるべきかよくわかりませんcellForItemAtIndexPath。1 つのクエリですべての SaleAggregate を取得し、表示する各セルの正しい月/年を NSPredicate で配列をフィルター処理するだけですか? これを行うにはもっと賢い方法が必要だと思います。

ありがとう!

4

1 に答える 1

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]
于 2013-02-25T18:19:54.697 に答える