处理空日期字段
问题描述:
我在XPage上有一个日期字段,此控件可能包含日期或空白。在重复控制我有这样的代码:处理空日期字段
var doc:NotesDocument = detailData.getDocument();
var sDate = doc.getItemValue("ACAutoStart");
doc.recycle()
return "Start Date = " + sDate
如果ACAutoStart包含日期则显示为[2013年10月10日上午12点34分十五秒MDT]如果它是空白它显示为[]。据我所知,[]表示结果是一个数组,但如果我尝试使用sDate [0],则会出现错误。我不能使用getItemValueDateTime,因为它不喜欢空返回。我如何获得这个简单的字符串值?
答
将您的最后一行替换为return "Start Date = " + sDate.firstElement()
。
doc.getItemValue()
返回类java.util.Vector
的对象。因为它不是一个数组,所以你得到的第一个元素是firstElement()
而不是[0]
。
UPDATE:
正如你在评论中提及它也工作空值和您添加尝试:
var sDate = "";
try {sDate = doc.getItemValue("ACAutoStart").firstElement()} catch (e) {};
return "Start Date = " + sDate
答
...只是另一种方式(返回转换与NotesDateTime为准) :
function getJavaDateData(doc:NotesDocument, field:string)
{
var item:NotesItem = doc.getFirstItem(field);
if (item != null){
var dt:NotesDateTime = item.getDateTimeValue();
if (dt != null){
return dt.toJavaDate();
}
}
return null;
}
场外需要适合于你的逻辑...
感谢:该作品GR如果在字段ACAutoStart中存在值,那么就吃,但是如果字段为空,它会扼杀它,所以var sDate = doc.getItemValue(“ACAutoStart”)。firstElement()只返回日期字符串,如果有但如果失败if该字段是空白的。所以这听起来像是一个捕捉22,我需要知道在我尝试获得价值之前是否有价值。 –
我添加了一个try的doc.getItemValue(“ACAutoStart”)。firstElement()然后在捕获中设置sDate =“”的catch。这是有效的,因为我需要在sDate中使用sDate的值,以便进一步格式化和输出,这样firstElement解决方案就可以得到实际的日期,并且catch使它通过为空。我的JavaScript正在改进,但还有很长的路要走。 16年-17年的Notes Domino @Formula和LS但JS并不多。我几乎在我喜欢JS的地方:-) –
同样在这里:) - 自1992年以来,我开始使用Notes Domino从第2版开始 - 目前,我开发了80%的时间用Java后端功能和20包含用于UI的JavaScript的%XPage - 这很有趣! –