我已经创建了一个功能,我可以获得列出我视图的所有数据库。之后,我遍历所有文档,并使用computedFields在数据表中相应地显示它们。
这是我的代码:
try
{
var viewDocs:java.util.Vector = new java.util.Vector();
var relcol = database.search("Form='dbPick_Kappa'");
var bazu_skaits= relcol.getCount();
var doc:NotesDocument = relcol.getFirstDocument();
var alldocs:java.util.Vector = new java.util.Vector();
for (j=1;j<bazu_skaits+1;j++)
{
viewDocs.add(doc);
var serveris = doc.getItemValueString("Server_P");
var datubaze = doc.getItemValueString("Filename_P");
var db:NotesDatabase = session.getDatabase(serveris, datubaze,false);
var sender = getComponent("senderBox").getValue();
var allrelevant:NotesDocumentCollection = db.search("StatusFlag='" + sender + "'");
var skaits = allrelevant.getCount();
var tmpDoc = allrelevant.getFirstDocument();
for (i=1;i<skaits+1;i++)
{
alldocs.add(tmpDoc);
tmpDoc = allrelevant.getNextDocument(tmpDoc);
}
doc = relcol.getNextDocument(doc);
}
return alldocs;
}
catch(e)
{
kk = e.toString();
}
如果我想在视图中选择我拥有的所有数据库,则代码可以正常工作。我想知道有没有办法选择我需要的数据库,包括我的数据表中的复选框?所以通过doig我可以检查复选框,如果选中它将返回在其附近选中复选框的数据库。希望有人能理解我想要实现的目标。
答案 0 :(得分:1)
视图面板,数据视图等数据迭代器将具有getSelectedIds()方法,该方法允许您获取视图当前页面的所选元素的NoteID。我不确定它是否在DataTable中,但如果您正在显示视图条目,则DataTable与View Panel相比几乎没有什么好处。 View Panel还允许您将组件添加到列中,您只需将组件的XML复制并粘贴到源窗格上的相关位置 - drop action将任何组件移动到View Panel之外。
此外,您应该养成始终循环回收的习惯(除非您使用的是OpenNTF Domino API,它会为您完成)。如果在请求期间访问了足够的Domino对象(页面加载/部分刷新),则不这样做可能会导致服务器崩溃。请参阅此博客文章http://www.intec.co.uk/the-perils-of-getcolumnvalues-get0/