2013-10-28 5 views
0

XPage에 날짜 필드가 있습니다.이 컨트롤에는 날짜가 포함되거나 비워있을 수 있습니다. 반복 제어에서이 코드를 가지고 : []로 표시 비어있는 경우 ACAutoStart이 다음은 [2013년 10월 10일 산악 서머 타임 오전 12시 34분 15초]로 표시되는 날짜가 포함 된 경우null 날짜 필드 다루기

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

. 내가 이해하기 때문에 []는 결과가 배열임을 나타내지 만 sDate [0]을 사용하려고하면 오류가 발생합니다. null 반환을 좋아하지 않기 때문에 getItemValueDateTime을 사용할 수 없습니다. 이것을 어떻게 간단한 문자열 값으로 가져 옵니까?

답변

3

마지막 줄을 return "Start Date = " + sDate.firstElement()으로 바꿉니다.

doc.getItemValue()java.util.Vector의 개체를 반환합니다. 배열이 아니기 때문에 [0] 대신 firstElement()이있는 첫 번째 요소를 얻습니다.

UPDATE : 당신이 빈 값도 작동하는 귀하의 코멘트에 언급 당신이 시도 추가로

: 또 다른 방법으로 ...

var sDate = ""; 
    try {sDate = doc.getItemValue("ACAutoStart").firstElement()} catch (e) {}; 
    return "Start Date = " + sDate 
+0

감사가 필요합니다 그 할머니를 작동 만약 ACAutoStart 필드에 값이 있으면 먹는다. 그러나 필드가 비어 있으면 그 값이 비어있게된다. 그래서 var sDate = doc.getItemValue ("ACAutoStart"). firstElement()는 날짜 문자열을 반환한다. 필드가 비어 있습니다. 그래서 가치를 얻으려고하기 전에 거기에 가치가 있는지 알아야 할 캐치 22처럼 들립니다. –

+0

doc.getItemValue ("ACAutoStart"). try를 추가했습니다. firstElement() catch 다음에 sDate = ""를 catch에 설정합니다. 이것은 이후 더 많은 formating과 출력에서 ​​sDate의 값을 사용해야하므로 firstElement 솔루션이 실제 날짜를 얻고 catch가 null로 통과 할 수있게하기 때문에 작동합니다. 내 자바 스크립트는 개선되고 있지만 갈 길이 멀다. 16-17 년의 주 Notes Domino @ Formula와 LS 그러나 JS는 그리 많지 않습니다. 나는 거의 JS와 같은 시점에있다 :-) –

+0

같음 :) - 1992 년부터 릴리스 2에서 시작하여 Notes Domino로 개발 중이다. 현재 Java 백엔드 기능으로 20 %의 시간과 20 분의 20 시간을 개발한다. UI 용 JavaScript를 포함한 % XPages - 재미 있습니다! –

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

은 ... 당신의 논리에 맞게 할 수