我正在快速将 XAgent 样式视图导出到 excel。但首先我需要获得与我在 XPage 上选择的条件相匹配的文档的 UNID。我有一个按钮,可以获取找到的文档数量。我已经确认并验证了我拥有基于我选择的值的文档,但在 Web 浏览器中它总是在警报中返回零文档。现在按钮中的代码如下:
uifrom = getComponent("from_dtpicker").getValue(); // a date-time picker
uito = getComponent("to_dtpicker").getValue(); // a date-time picker
uitag = getComponent("tag_combox").getValue(); // a combobox
var from:NotesDateTime = session.createDateTime(uifrom);
from.setAnyTime();
var to:NotesDateTime = session.createDateTime(uito);
to.setAnyTime();
var vw:NotesView = database.getView("(Document View by Tag)");
var docUNIDarray:Array = []; // for the quick XAgent excel export later on
if (uitag == "All") {
var vec:NotesViewEntryCollection = vw.getAllEntries();
} else {
var vec:NotesViewEntryCollection = vw.getAllEntriesByKey(uitag, true);
}
var total:Number = 0;
var ve:NotesViewEntry = vec.getFirstEntry();
while (ve != null) {
// document must have StartDate and EndDate
if (ve.getDocument().hasItem("StartDate") && ve.getDocument().hasItem("EndDate")) {
var vefrom:NotesDateTime = ve.getDocument().getItemValue("StartDate").elementAt(0);
vefrom.setAnyTime();
// as long as the StartDate is between the selected from and to
if (vefrom >= from && vefrom <= to) {
if (ve.getDocument().getItemValueString("StaffName") != "Company") {
docUNIDarray.push(ve.getDocument().getUniversalID());
total += 1;
}
}
}
ve = vec.getNextEntry(ve);
}
view.postScript('alert("total:'+total+', from:'+from+', to:'+to+', tag:'+uitag+'")');
此外,我所做的唯一完全刷新是单击按钮时。此页面中也没有作用域变量。只有 2 个日期时间选择器、一个组合框和按钮本身。对此有何解释?我确认代码是正确的,因为它在 XPiNC 中工作。
我得到的文档总数应该是 18。如果我将 .toJavaDate() 附加到 from、to 和 vefrom,那么我会得到 10 个错误的文档。我检查了每个文档的“StartDate”和“EndDate”的基础值,每个值都是时间/日期,例如 08/12/2013 12:00:00 PM ZE8。我假设将我的代码中的任何日期值转换为 NotesDateTime 将确保它们都具有相同的类型并且可以与之进行比较,但是对于这个我完全不知道我做错了什么。