次のエージェントは、現在の文書の最初の表にあるすべてのセル内のすべての段落を取得します。エージェントは、表と表内の各セルに対してナビゲータを設定することにより、要素内で動作します。
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
DocumentCollection dc = agentContext.getUnprocessedDocuments();
Document doc = dc.getFirstDocument();
RichTextItem body = (RichTextItem)doc.getFirstItem("Body");
RichTextNavigator rtnav = body.createNavigator();
if (rtnav.findFirstElement(RichTextItem.RTELEM_TYPE_TABLE)) {
// Set up range and navigator for table
RichTextRange rtrange = body.createRange();
rtrange.setBegin(rtnav);
rtrange.setEnd(rtnav);
RichTextNavigator rtnav2 = rtrange.getNavigator();
// Find cells in table
RichTextRange rtrange2 = body.createRange();
RichTextRange rtrange3 = body.createRange();
int counter = 0;
rtnav2.findFirstElement(RichTextItem.RTELEM_TYPE_TABLECELL);
do {
counter++;
System.out.println("Cell " + counter);
// Set up range and navigator for cell
rtrange2.setBegin(rtnav2);
rtrange2.setEnd(rtnav2);
RichTextNavigator rtnav3 = rtrange2.getNavigator();
// Find paragraphs in cell
if (rtnav3.findFirstElement(
RichTextItem.RTELEM_TYPE_TEXTPARAGRAPH)) {
do {
rtrange3.setBegin(rtnav3);
rtrange3.setEnd(rtnav3);
System.out.println(rtrange3.getTextParagraph());
} while (rtnav3.findNextElement());
}
else System.out.println("¥tNo text in cell.");
} while (rtnav2.findNextElement());
}
else
System.out.println("Body does not contain any tables");
} catch(Exception e) {
e.printStackTrace();
}
}
}