2013-10-28 161 views
0

我在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,因爲它不喜歡空返回。我如何獲得這個簡單的字符串值?

回答

3

將您的最後一行替換爲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 - 這很有趣! –

0

...只是另一種方式(返回轉換與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; 
} 

場外需要適合於你的邏輯...