品目ごとの合計を求める処理でしたね。
allViewが全文書を表示してるビューだとします。こんな感じで文書と各文書に保存されてる品目リストをなめていきます。
listはJavaScriptのObject。JavaScriptのObjectはハッシュテーブルとして使えるので品目名で値段の合計にアクセスできます。
var doc = myView.getFirstDocument();
var list = {};
while(doc) {
var jsonText = doc.getItemValueString("jsonField");
var items = fromJson(jsonText);
for(var index=0; index < items.length; index++) {
var item = items[index];
var name = item.name;
var value = item.value;
if (!list[name]) {
list[name].value = 0;
}
list[name].value += Number(value);
}
doc = myView.getNextDocument(doc);
}
これで各品目の合計の入ったlistが手に入るので、後はこれを<xp:repeat>や<xp:dataTable>のデータソースに指定すればいいかな、という感じですかね。
実際に動作させるところまでは試してないので多少エラーが出るかもしれませんが、まぁそのときはゴメンナサイ。
/Yac