0

XPage に日付フィールドがあります。このコントロールには日付が含まれているか、空白になっている可能性があります。繰り返しコントロールには、次のコードがあります。

var doc:NotesDocument = detailData.getDocument();
var sDate = doc.getItemValue("ACAutoStart");
doc.recycle()
return "Start Date = " + sDate

ACAutoStart に日付が含まれている場合、[10/10/2013 12:34:15 AM MDT] と表示され、空白の場合は [] と表示されます。私が理解しているように、[] は結果が配列であることを示していますが、sDate[0] を使用しようとするとエラーが発生します。null を返すのが気に入らないので、getItemValueDateTime を使用できません。これを単純な文字列値にするにはどうすればよいですか?

4

2 に答える 2

3

最後の行を に置き換えますreturn "Start Date = " + sDate.firstElement()

doc.getItemValue()class のオブジェクトを返しますjava.util.Vector。配列ではないため、firstElement()代わりに を使用して最初の要素を取得します[0]

アップデート:

コメントで述べたように、空の値でも機能する必要があり、try を追加しました:

    var sDate = "";
    try {sDate = doc.getItemValue("ACAutoStart").firstElement()} catch (e) {};
    return "Start Date = " + sDate
于 2013-10-28T20:41:34.733 に答える
0

...別の方法として (変換された NotesDateTime を Date に返す):

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;
}

もちろん、ロジックに合わせて調整する必要があります...

于 2013-10-31T15:16:06.577 に答える