Recycle и GetNextDocument / GetNextCategory в NotesViewNavigator?
Как сделать переработку для GetNextDocument или GetNextCategory в NotesViewNavigator? Ни один из них не принимает аргумента, поэтому вы не можете использовать обычный метод использования временной переменной для предварительного получения следующего документа, как вы могли бы в представлении.
Я полагаю, что решением было бы просто использовать getNext с аргументом argmenumnt, но можно ли по-прежнему использовать GetNextDocument / GetNextCategory?
Ошибка, которую я получаю, находится в строке 20. Без перезапуска код работает нормально. Из того, что я понимаю, recycle уничтожает объект, поэтому я могу понять причину ошибки. Мой вопрос: есть ли другой способ обойти это?
[TypeError] Возникла исключительная ситуация при вызове метода NotesViewNavigator.getNextDocument() null встречается в строке 20
1: var viewName = "vwParticipantsProjectIDEquipmentIDUsername";
2:
3:
4: var v:NotesView = database.getView(viewName);
5: var nav:NotesViewNavigator = v.createViewNavFromCategory(sessionScope.get("ExportProjectID"));
6:
7:
8: var viewEnt:NotesViewEntry = nav.getFirstDocument();
9:
10: while (viewEnt != null)
11: {
12:
13: if (viewEnt.isDocument())
14: {
15:
16: var doc:NotesDocument = viewEnt.getDocument();
17: }
18:
19: viewEnt.recycle();
20: viewEnt = nav.getNextDocument();
21: }
2 ответа
Это шаблон, который я склонен использовать:
var documentEntry = nav.getFirstDocument();
while( documentEntry != null ){
var nextDocumentEntry = nav.getNextDocument();
// do stuff
documentEntry.recycle();
documentEntry = nextDocumentEntry;
}
Почему бы вам не попробовать применить старый шаблон так:
var viewName = "vwParticipantsProjectIDEquipmentIDUsername",
v:NotesView = database.getView(viewName),
nav:NotesViewNavigator = v.createViewNavFromCategory(sessionScope.get("ExportProjectID")),
viewEnt:NotesViewEntry = nav.getFirstDocument(),
tmp:NotesViewEntry;
while (viewEnt !== null)
{
if (viewEnt.isDocument())
{
var doc:NotesDocument = viewEnt.getDocument();
}
tmp = viewEnt;
viewEnt = nav.getNextDocument();
tmp.recycle();
}
Я не проверял это, но я думаю, что это работает...