javascript – 获取NotesXSPDocument中的所有项目
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 获取NotesXSPDocument中的所有项目,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2590字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 获取NotesXSPDocument中的所有项目](/upload/InfoBanner/zyjiaocheng/804/9e097754951a4cffb9146e10dfdba16f.jpg)
在我的Notes数据库中,我在保存文档时执行审核.在LotusScript中非常简单.我从服务器获取原始文档(oDoc),然后在我修改的文档(mDoc)中,我做了一个Forall循环,它获取每个项目的名称; mDoc.items中的forall项.从oDoc中获取相同的项目,使用新项目作为参数执行一个函数,该函数将运行一个case语句,该语句将查看它是否是我们关心的字段.如果是这样,我用“When”,“Who”,“What field”和“New Value”更新文档中的一组列表值.
我在服务器端脚本中这样做.在尝试这个时,我发现了一些有趣的东西;
currentDocument是NotesXSPDocument,包含刚刚更改的所有内容.
currentDocument.getDocument()包含更改前的值.它还返回一个NotesDocument,它包含我可以运行的“items”字段.
事实是,我在NotesXSPDocument中需要类似的东西.在迭代循环中有没有办法从那里获取所有项目的名称和值?
这是破碎的代码. (目前它正在浏览NotesDocument项目,但这些是旧的值.我宁愿走下XSP文档项目)
function FInvoice_beginAudit() {
var original_doc:NotesDocument = currentDocument.getDocument();
var oItem:NotesItem;
var oItems:java.util.Vector = original_doc.getItems();
var iterator = oItems.iterator();
while (iterator.hasNext()) {
var oItem:NotesItem = iterator.next();
item = currentDocument.getItemValue(oItem.getName());
if (oItem == undefined) {
var MasterItem = ScreenAudit(doc,item,True)
if (MasterItem) { return true }
} else {
if (item.getValueString() != oItem.getValueString()) {
var MasterItem = ScreenAudit(doc,Item,True);
if (MasterItem) { return true }
}
}
}
}
解决方法:
您可以在提交后获得文档的两个版本 – 原始版本和changed/new values版本:
original:var original_doc:NotesDocument = currentDocument.getDocument();
已更改:var changed_doc:NotesDocument = currentDocument.getDocument(true);
这样您就可以比较更改项目.
但是,存在一个缺陷:在将“changed_doc”分配给currentDocument.getDocument(true)之后,“original_doc”也具有更改的值,因为两个变量都指向同一文档.这就是为什么我们必须首先将currentDocument.getDocument()中的所有项目复制到新的临时文档,并且只有在使用currentDocument.getDocument(true)获取更改的值之后.作为替代方案,您可以像在LotusScript中一样从服务器读取原始文档.
这是用于检测已更改项目的代码作为起点:
var original_doc:NotesDocument = database.createDocument();
currentDocument.getDocument().copyAllItems(original_doc, true);
var changed_doc:NotesDocument = currentDocument.getDocument(true);
var oItems:java.util.Vector = original_doc.getItems();
var iterator = oItems.iterator();
while (iterator.hasNext()) {
var oItem:NotesItem = iterator.next();
var itemName = oItem.getName();
var cItem:NotesItem = changed_doc.getFirstItem(itemName);
if (cItem.getText() !== oItem.getText()) {
print("changed: " + itemName);
}
oItem.recycle();
cItem.recycle();
}
original_doc.remove(true);
original_doc.recycle();
内容总结
以上是互联网集市为您收集整理的javascript – 获取NotesXSPDocument中的所有项目全部内容,希望文章能够帮你解决javascript – 获取NotesXSPDocument中的所有项目所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。