处理空日期字段

问题描述:

我在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 
+0

感谢:该作品GR如果在字段ACAutoStart中存在值,那么就吃,但是如果字段为空,它会扼杀它,所以var sDate = doc.getItemValue(“ACAutoStart”)。firstElement()只返回日期字符串,如果有但如果失败if该字段是空白的。所以这听起来像是一个捕捉22,我需要知道在我尝试获得价值之前是否有价值。 –

+0

我添加了一个try的doc.getItemValue(“ACAutoStart”)。firstElement()然后在捕获中设置sDate =“”的catch。这是有效的,因为我需要在sDate中使用sDate的值,以便进一步格式化和输出,这样firstElement解决方案就可以得到实际的日期,并且catch使它通过为空。我的JavaScript正在改进,但还有很长的路要走。 16年-17年的Notes Domino @Formula和LS但JS并不多。我几乎在我喜欢JS的地方:-) –

+0

同样在这里:) - 自1992年以来,我开始使用Notes Domino从第2版开始 - 目前,我开发了80%的时间用Java后端功能和20包含用于UI的JavaScript的%XPage - 这很有趣! –

...只是另一种方式(返回转换与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; 
} 

场外需要适合于你的逻辑...