こんにちは。
今回の質問の回答じゃないのですが、サンプルコードがちょっと気になります。
私だったら、こう書くかな。
要は分割された情報をわざわざ文字列に連結した後、分割しなおすのではなく、配列のまま利用しようというものです(動作確認まではしてないのでエラーになったらゴメンナサイ)。
var vec:NotesViewEntryCollection = view2.getAllUnreadEntries();
var entry:NotesViewEntry = vec.getFirstEntry();
var entryItems = [];
while (entry != null) {
var doc = entry.getDocument();
var item = [
@Text(doc.getItemValue("PostedDate"), "S0D0"),
doc.getItemValueString("Categories"),
doc.getItemValueString("Subject"),
doc.getUniversalID()
];
doc.recycle();
entryItems.push(item);
var tmpentry:NotesViewEntry = vec.getNextEntry(entry);
entry.recycle();
entry = tmpentry;
};
//降順ソート
entryItems.sort(function(a,b){
if( a[0] > b[0] ) return -1;
if( a[0] < b[0] ) return 1;
return 0;
});
return entryItems;
この結果は<xp:repeat>のデータソースに与えてると思いますが、各情報を利用するときも配列のまま利用できます。
さらに最適化するなら、view2の各列を取得したい情報の形に加工しておきます。
そうすれば、わざわざentry.getDocument()でViewEntryが指す文書オブジェクトを取得しなおすという処理を省けます。
var values:java.util.Vector = entry.getColumnValues()
var item = [
values.get(0), // 1列目がPostedDateを日付形式
values.get(1), // 2列目はCategoriesに対応
values.get(2), // 3列目はSubjectに対応
values.getUniversalID()
];
/Yac