ShowTable of Contents
CacheSize
This beforePageLoad event creates a view navigator with no cache.
var nav1:NotesViewNavigator = database.getView("By category and date").createViewNav();
nav1.setCacheSize(0);
Count
This computed field returns a count of all the entries in a view.
var v:NotesView = database.getView("main");
var nav:NotesViewNavigator = v.createViewNav();
return nav.getCount().toFixed() + " total entries";
EntryOptions
This beforePageLoad event creates a view navigator and sets options.
var nav1:NotesViewNavigator = database.getView("By category and date").createViewNav();
nav1.setEntryOptions(
NotesViewNavigator.VN_ENTRYOPT_NOCOLUMNVALUES +
NotesViewNavigator.VN_ENTRYOPT_NOCOUNTDATA);
sessionScope.nav1 = nav1;
This computed field tests a view navigator for an entry option.
return ((sessionScope.nav1.getEntryOptions() &
NotesViewNavigator.VN_ENTRYOPT_NOCOLUMNVALUES) > 0) ?
"No column values" : "Yes column values";
MaxLevel
This beforePageLoad event creates a view navigator and limits the levels to 8.
var nav1:NotesViewNavigator = database.getView("By category and date").createViewNav();
nav1.setMaxLevel(8);
ParentView
This button determines whether a document is in a view.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
var doc:NotesDocument = currentDocument.getDocument();
if (nav.gotoEntry(doc)) {
requestScope.status = "Current document is in this view: " +
nav.getParentView().getName();
} else{
requestScope.status = "Current document is not in this view: " +
nav.getParentView().getName();
}
getChild
This button gets all entries in a view in hierarchical order.
var nav:NotesViewNavigator = database.getView("By category").createViewNav();
var entry:NotesViewEntry = nav.getFirst();
getentry();
function getentry() { // recursive
if (entry == null) return;
if (entry.isCategory()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().firstElement().toString();
} else if (entry.isDocument()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().elementAt(1).toString();
} else if (entry.isTotal()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().elementAt(3).toString();
}
// try for first child
// if no child, try for next sibling
// if no sibling, go up a level and try for next sibling
var tmpentry:NotesViewEntry = nav.getChild(entry);
if (tmpentry == null) tmpentry = nav.getNextSibling(entry);
if (tmpentry == null) {
tmpentry = nav.getParent(entry);
if (tmpentry != null) tmpentry = nav.getNextSibling(tmpentry);
}
entry.recycle();
entry = tmpentry;
getentry();
return;
}
getCurrent
This button gets all the first-level category entries in a categorized view in reverse order.
var nav:NotesViewNavigator = database.getView("By category").createViewNav();
var entry:NotesViewEntry = nav.getLast();
do {
entry = nav.getCurrent();
} while (nav.gotoParent());
while (entry != null) {
if (!entry.isTotal()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().firstElement().toString() + " has" +
entry.getDescendantCount().toFixed() + " total entries";
}
var tmpentry:NotesViewEntry = nav.getPrevSibling(entry);
entry.recycle();
entry = tmpentry;
}
getFirst
This button gets all the first-level category entries in a categorized view.
var nav:NotesViewNavigator = database.getView("By category").createViewNav();
var entry:NotesViewEntry = nav.getFirst();
while (entry != null && !entry.isTotal()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().firstElement().toString() + " has" +
entry.getDescendantCount().toFixed() + " total entries";
var tmpentry:NotesViewEntry = nav.getNextSibling(entry);
entry.recycle();
entry = tmpentry;
}
getFirstDocument
This button gets all the document entries in a view.
var v:NotesView = database.getView("By category");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getFirstDocument();
while (entry != null) {
requestScope.status += "\n" +
entry.getColumnValues().elementAt(1).toString();
var tmpentry:NotesViewEntry = nav.getNextDocument();
entry.recycle();
entry = tmpentry;
}
getLast
This computed field displays the grand total for a view that has totals for the fourth column.
var nav:NotesViewNavigator = database.getView("By category").createViewNav();
var entry:NotesViewEntry = nav.getLast();
return "Total: " + entry.getColumnValues().elementAt(3).toFixed();
getLastDocument
This button gets all the document entries in a view in reverse order.
var v:NotesView = database.getView("By category");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getLastDocument();
while (entry != null) {
requestScope.status += "\n" +
entry.getColumnValues().elementAt(1).toString();
var tmpentry:NotesViewEntry = nav.getPrevDocument();
entry.recycle();
entry = tmpentry;
}
getNext
This button gets all the entries in a view.
var v:NotesView = database.getView("By category");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getFirst();
while (entry != null) {
if (entry.isDocument()) {
requestScope.status += "\n\t" +
entry.getColumnValues().elementAt(1).toString();
} else if (entry.isCategory()) {
requestScope.status += "\n" +
entry.getColumnValues().elementAt(0).toString();
} else {
requestScope.status += "\n" +
entry.getColumnValues().elementAt(3).toFixed();
}
var tmpentry:NotesViewEntry = nav.getNext(entry);
entry.recycle();
entry = tmpentry;
}
getNextCategory
This button gets all the category entries in a view.
var v:NotesView = database.getView("By category and date");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getFirst();
while (entry != null) {
var tabs:string = "";
for (var i=0; i<entry.getIndentLevel(); i++) tabs = tabs + "\t";
requestScope.status += "\n" + tabs +
entry.getColumnValues().elementAt(entry.getIndentLevel()).toString();
var tmpentry:NotesViewEntry = nav.getNextCategory();
entry.recycle();
entry = tmpentry;
}
getNextDocument
This button gets all the document entries in a view.
var v:NotesView = database.getView("By category");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getFirstDocument();
while (entry != null) {
requestScope.status += "\n" +
entry.getColumnValues().elementAt(1).toString();
var tmpentry:NotesViewEntry = nav.getNextDocument();
entry.recycle();
entry = tmpentry;
}
getNextSibling
This button gets all the first-level category entries in a categorized view.
var nav:NotesViewNavigator = database.getView("By category").createViewNav();
var entry:NotesViewEntry = nav.getFirst();
while (entry != null && !entry.isTotal()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().firstElement().toString() + " has" +
entry.getDescendantCount().toFixed() + " total entries";
var tmpentry:NotesViewEntry = nav.getNextSibling(entry);
entry.recycle();
entry = tmpentry;
}
getNth
This onclick event for an edit box displays information for a view entry identified by position. A global variable tracks the position. The user clicks the edit box to get the next entry.
var v:NotesView = database.getView("main");
var nav:NotesViewNavigator = v.createViewNav();
sessionScope.nth++;
var entry:NotesViewEntry = nav.getNth(sessionScope.nth * 1);
if (entry == null) {
sessionScope.nth = 1;
var entry:NotesViewEntry = nav.getNth(1);
}
// requestScope.entry is bound to the edit box of this onclick event
requestScope.entry = entry.getPosition(".") + " " +
entry.getColumnValues().firstElement();
getParent
This button gets all entries in a view in hierarchical order.
var nav:NotesViewNavigator = database.getView("By category").createViewNav();
var entry:NotesViewEntry = nav.getFirst();
getentry();
function getentry() { // recursive
if (entry == null) return;
if (entry.isCategory()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().firstElement().toString();
} else if (entry.isDocument()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().elementAt(1).toString();
} else if (entry.isTotal()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().elementAt(3).toString();
}
// try for first child
// if no child, try for next sibling
// if no sibling, go up a level and try for next sibling
var tmpentry:NotesViewEntry = nav.getChild(entry);
if (tmpentry == null) tmpentry = nav.getNextSibling(entry);
if (tmpentry == null) {
tmpentry = nav.getParent(entry);
if (tmpentry != null) tmpentry = nav.getNextSibling(tmpentry);
}
entry.recycle();
entry = tmpentry;
getentry();
return;
}
getPos
This button gets the entry at a view position input by a user.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
var pos:string = requestScope.query;
try {
var entry:NotesViewEntry = nav.getPos(pos, ".");
} catch(e) {
requestScope.status = "Incorrectly formed: " + pos;
return;
}
if (entry != null) {
if (entry.isDocument()) {
requestScope.status = entry.getPosition(".") + " " +
entry.getDocument().getItemValueString("subject");
} else if (entry.isCategory()) {
requestScope.status = entry.getPosition(".") + " " +
entry.getColumnValues().elementAt(entry.getIndentLevel());
} else {
requestScope.status = entry.getPosition(".") + " " +
entry.getColumnValues().elementAt(3);
}
} else{
requestScope.status = "Position " + pos + " is not valid in this view: ";
}
getPrev
This button gets all the entries in a categorized view in reverse order.
var v:NotesView = database.getView("By category and date");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getLast();
while (entry != null) {
if (entry.isDocument()) {
requestScope.status += "\n" + "\t" +
entry.getColumnValues().elementAt(2).toString();
} else if (entry.isCategory()) {
requestScope.status += "\n" +
entry.getColumnValues().elementAt(entry.getIndentLevel()).toString();
}
var tmpentry:NotesViewEntry = nav.getPrev(entry);
entry.recycle();
entry = tmpentry;
}
getPrevCategory
This button gets all the category entries in a view in reverse order.
var v:NotesView = database.getView("By category and date");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getLast();
if (entry != null) entry = nav.getPrevCategory();
while (entry != null) {
var tabs:string = "";
for (var i=0; i<entry.getIndentLevel(); i++) tabs = tabs + "\t";
requestScope.status += "\n" + tabs +
entry.getColumnValues().elementAt(entry.getIndentLevel()).toString();
var tmpentry:NotesViewEntry = nav.getPrevCategory();
entry.recycle();
entry = tmpentry;
}
getPrevDocument
This button gets all the document entries in a view in reverse order.
var v:NotesView = database.getView("By category");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getLastDocument();
while (entry != null) {
requestScope.status += "\n" +
entry.getColumnValues().elementAt(1).toString();
var tmpentry:NotesViewEntry = nav.getPrevDocument();
entry.recycle();
entry = tmpentry;
}
getPrevSibling
This button gets all the first-level category entries in a categorized view in reverse order.
var nav:NotesViewNavigator = database.getView("By category").createViewNav();
var entry:NotesViewEntry = nav.getLast();
do {
entry = nav.getCurrent();
} while (nav.gotoParent());
while (entry != null) {
if (!entry.isTotal()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().firstElement().toString() + " has" +
entry.getDescendantCount().toFixed() + " total entries";
}
var tmpentry:NotesViewEntry = nav.getPrevSibling(entry);
entry.recycle();
entry = tmpentry;
}
gotoChild
This button positions a view navigator according to user input of a decimal form that designates level and sequence number. For example, 2.5.1 means go to the second entry, drop one level, go to the fifth entry, drop a level, and go to the first entry.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
var entry:NotesViewEntry = null;
var firstTime = true;
var position:string = requestScope.query;
if (position.isEmpty()) {
requestScope.status += "\nNo position";
return;
}
var p:int = 0;
var n:int = 0;
var i:int = 0;
// Expecting position of form p.p ... .p
// Each iteration processes one p
while (!position.isEmpty()) {
// Parse position and verify as number
n = position.indexOf(".");
if (n > -1) {
p = parseInt(position.left(n));
position = position.right(position.length - n -1);
} else {
p = parseInt(position);
position = "";
}
if (isNaN(p)) {
requestScope.status += "\nInvalid number";
return;
}
// Go to the first entry for the level being processed
if (!firstTime) {
if (!nav.gotoChild()) {
requestScope.status += "\nInvalid position";
return;
}
} else {
if (!nav.gotoFirst()) {
requestScope.status += "\nView empty";
return;
}
firstTime = false;
}
// Go to entry # p on the level being processed
for (var i=1; i<(p); i++) {
if (!nav.gotoNextSibling()) {
requestScope.status += "\nInvalid position";
return;
}
}
}
// Get the entry
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());
gotoEntry
This button determines whether a document is in a view.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
var doc:NotesDocument = currentDocument.getDocument();
if (nav.gotoEntry(doc)) {
requestScope.status = "Current document is in this view: " +
nav.getParentView().getName();
} else{
requestScope.status = "Current document is not in this view: " +
nav.getParentView().getName();
}
gotoFirst
This button gets a view entry by number where 1 is the first entry and -1 is the last entry.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth entry where 1 is the first entry
if (n > 0) {
nav.gotoFirst();
for (var i = 1; i < n; i++) {
nav.gotoNext();
}
// For negative number, get the -nth entry where -1 is the last entry
} else {
nav.gotoLast();
for (var i = -1; i > n; i--) {
nav.gotoPrev();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
if (entry.isCategory()) {
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());
} else if (entry.isDocument()) {
requestScope.status += entry.getDocument().getItemValueString("subject");
}
gotoFirstDocument
his button gets a document view entry by number where 1 is the first document and -1 is the last document.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth document where 1 is the first document
if (n > 0) {
nav.gotoFirstDocument();
for (var i = 1; i < n; i++) {
nav.gotoNextDocument();
}
// For negative number, get the -nth document where -1 is the last document
} else {
nav.gotoLastDocument();
for (var i = -1; i > n; i--) {
nav.gotoPrevDocument();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
requestScope.status += entry.getDocument().getItemValueString("subject");
gotoLast
This button gets a view entry by number where 1 is the first entry and -1 is the last entry.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth entry where 1 is the first entry
if (n > 0) {
nav.gotoFirst();
for (var i = 1; i < n; i++) {
nav.gotoNext();
}
// For negative number, get the -nth entry where -1 is the last entry
} else {
nav.gotoLast();
for (var i = -1; i > n; i--) {
nav.gotoPrev();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
if (entry.isCategory()) {
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());
} else if (entry.isDocument()) {
requestScope.status += entry.getDocument().getItemValueString("subject");
}
gotoLastDocument
This button gets a document view entry by number where 1 is the first document and -1 is the last document.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth document where 1 is the first document
if (n > 0) {
nav.gotoFirstDocument();
for (var i = 1; i < n; i++) {
nav.gotoNextDocument();
}
// For negative number, get the -nth document where -1 is the last document
} else {
nav.gotoLastDocument();
for (var i = -1; i > n; i--) {
nav.gotoPrevDocument();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
requestScope.status += entry.getDocument().getItemValueString("subject");
gotoNext
This button gets a view entry by number where 1 is the first entry and -1 is the last entry.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth entry where 1 is the first entry
if (n > 0) {
nav.gotoFirst();
for (var i = 1; i < n; i++) {
nav.gotoNext();
}
// For negative number, get the -nth entry where -1 is the last entry
} else {
nav.gotoLast();
for (var i = -1; i > n; i--) {
nav.gotoPrev();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
if (entry.isCategory()) {
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());
} else if (entry.isDocument()) {
requestScope.status += entry.getDocument().getItemValueString("subject");
}
gotoNextCategory
This button gets a category view entry by number where 1 is the first category and -1 is the last category.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth category where 1 is the first category
if (n > 0) {
nav.gotoFirst();
for (var i = 1; i < n; i++) {
nav.gotoNextCategory();
}
// For negative number, get the -nth category where -1 is the last category
} else {
nav.gotoLast();
for (var i = 0; i > n; i--) {
nav.gotoPrevCategory();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());
gotoNextDocument
This button gets a document view entry by number where 1 is the first document and -1 is the last document.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth document where 1 is the first document
if (n > 0) {
nav.gotoFirstDocument();
for (var i = 1; i < n; i++) {
nav.gotoNextDocument();
}
// For negative number, get the -nth document where -1 is the last document
} else {
nav.gotoLastDocument();
for (var i = -1; i > n; i--) {
nav.gotoPrevDocument();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
requestScope.status += entry.getDocument().getItemValueString("subject");
gotoNextSibling
This button positions a view navigator according to user input of a decimal form that designates level and sequence number. For example, 2.5.1 means go to the second entry, drop one level, go to the fifth entry, drop a level, and go to the first entry.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
var entry:NotesViewEntry = null;
var firstTime = true;
var position:string = requestScope.query;
if (position.isEmpty()) {
requestScope.status += "\nNo position";
return;
}
var p:int = 0;
var n:int = 0;
var i:int = 0;
// Expecting position of form p.p ... .p
// Each iteration processes one p
while (!position.isEmpty()) {
// Parse position and verify as number
n = position.indexOf(".");
if (n > -1) {
p = parseInt(position.left(n));
position = position.right(position.length - n -1);
} else {
p = parseInt(position);
position = "";
}
if (isNaN(p)) {
requestScope.status += "\nInvalid number";
return;
}
// Go to the first entry for the level being processed
if (!firstTime) {
if (!nav.gotoChild()) {
requestScope.status += "\nInvalid position";
return;
}
} else {
if (!nav.gotoFirst()) {
requestScope.status += "\nView empty";
return;
}
firstTime = false;
}
// Go to entry # p on the level being processed
for (var i=1; i<(p); i++) {
if (!nav.gotoNextSibling()) {
requestScope.status += "\nInvalid position";
return;
}
}
}
// Get the entry
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());
gotoParent
This button gets all the first-level category entries in a categorized view in reverse order.
var nav:NotesViewNavigator = database.getView("By category").createViewNav();
var entry:NotesViewEntry = nav.getLast();
do {
entry = nav.getCurrent();
} while (nav.gotoParent());
while (entry != null) {
if (!entry.isTotal()) {
requestScope.status += "\n" +
entry.getPosition(".") + " " +
entry.getColumnValues().firstElement().toString() + " has" +
entry.getDescendantCount().toFixed() + " total entries";
}
var tmpentry:NotesViewEntry = nav.getPrevSibling(entry);
entry.recycle();
entry = tmpentry;
}
gotoPos
This button determines whether a position input by a user is valid for a view.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
var pos:string = requestScope.query;
try {
var result:boolean = nav.gotoPos(pos, ".");
} catch(e) {
requestScope.status = "Incorrectly formed: " + pos;
return;
}
if (result) {
requestScope.status = "Position " + pos + " is valid in this view: " +
nav.getParentView().getName();
} else{
requestScope.status = "Position " + pos + " is not valid in this view: " +
nav.getParentView().getName();
}
gotoPrev
This button gets a view entry by number where 1 is the first entry and -1 is the last entry.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth entry where 1 is the first entry
if (n > 0) {
nav.gotoFirst();
for (var i = 1; i < n; i++) {
nav.gotoNext();
}
// For negative number, get the -nth entry where -1 is the last entry
} else {
nav.gotoLast();
for (var i = -1; i > n; i--) {
nav.gotoPrev();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
if (entry.isCategory()) {
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());
} else if (entry.isDocument()) {
requestScope.status += entry.getDocument().getItemValueString("subject");
}
gotoPrevCategory
This button gets a category view entry by number where 1 is the first category and -1 is the last category.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth category where 1 is the first category
if (n > 0) {
nav.gotoFirst();
for (var i = 1; i < n; i++) {
nav.gotoNextCategory();
}
// For negative number, get the -nth category where -1 is the last category
} else {
nav.gotoLast();
for (var i = 0; i > n; i--) {
nav.gotoPrevCategory();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());
gotoPrevDocument
This button gets a document view entry by number where 1 is the first document and -1 is the last document.
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth document where 1 is the first document
if (n > 0) {
nav.gotoFirstDocument();
for (var i = 1; i < n; i++) {
nav.gotoNextDocument();
}
// For negative number, get the -nth document where -1 is the last document
} else {
nav.gotoLastDocument();
for (var i = -1; i > n; i--) {
nav.gotoPrevDocument();
}
}
entry = nav.getCurrent();
requestScope.status += "\n" + entry.getPosition(".") + " ";
requestScope.status += entry.getDocument().getItemValueString("subject");
gotoPrevSibling
This button gets a level-1 category view entry by number where 1 is the first level-1 category entry and -1 is the last level-1 category entry.
// This view has categories and ends with a total
var nav:NotesViewNavigator = database.getView("By category and date").createViewNav();
if (nav.getCount() == 0) return;
// User enters a number in the input box bound to requestScope.query
var n:int = parseInt(requestScope.query);
if (isNaN(n) || n == 0) n = 1;
// For positive number, get the nth level-1 category where 1 is the first category
if (n > 0) {
nav.gotoFirst();
for (var i = 1; i < n; i++) {
nav.gotoNextSibling();
}
// For negative number, get the -nth level-1 category where -1 is the last category
} else {
nav.gotoLast();
nav.gotoPrevSibling();
for (var i = -1; i > n; i--) {
nav.gotoPrevSibling();
}
}
entry = nav.getCurrent();
if (entry.isTotal()) entry = nav.getPrevSibling();
requestScope.status += "\n" + entry.getPosition(".") + " ";
requestScope.status += entry.getColumnValues().elementAt(entry.getIndentLevel());
markAllRead
This button marks all unread documents in a view as read.
var v:NotesView = database.getView("main");
var nav:NotesViewNavigator = v.createViewNavFromAllUnread();
nav.markAllRead();
markAllUnread
This button marks all documents in a view as unread.
var nav:NotesViewNavigator = database.getView("main").createViewNav();
nav.markAllUnread();
skip
This button gets the first and every eighth entry in a view.
var nav:NotesViewNavigator = database.getView("main").createViewNav();
var n:int = 0;
if (nav.gotoFirst()) {
do {
var entry:NotesViewEntry = nav.getCurrent();
requestScope.status += "\n" +
entry.getPosition(".") + "\t" +
entry.getColumnValues().firstElement();
} while (nav.skip(8) == 8)
}