2012-04-24 3 views
0
if((!submittedBy('button1')) && (!submittedBy('button2') 
{ 
    return true; 
} 
else 
{ 
    var IsL2UserTxt = sessionScope.get("IsL2User"); 

    if(IsL2UserTxt == "Yes") 
    { 
     //Bring the issue Date&Time 
     var start = getComponent("label_IssueDateDt").getValue(); 

     //Bring the Permenent Fix Target Date&Time 
     var end = this.getSubmittedValue(); 
     var dStart:NotesDateTime = session.createDateTime(start); 
     var dEnd:NotesDateTime = session.createDateTime(end); 

     if (!start) 
     { 
      return false; 
     } 
     else if (!end) 
     { 
      return false; 
     } 
     else 
     { 
      print("Start: "+start+", End: "+end+",DStart: "+dStart+", DEnd: "+dEnd+", Time Diff: "+dEnd.timeDifference(dStart)); 
      return (dEnd.timeDifference(dStart) > 0) 
     } 
    } 
    else 
    { 
     return true; 
    } 
} 

의 순서는 내 xpage 두 날짜의 타임 스탬프 editboxes, 내 두 번째 날짜 스탬프 (Permenent 수정 tartget 날짜 & 시간) 편집 상자에 위의 그림과 같이 validateExpression 코드를 작성했습니다. 여기서 유효성 검사는 영구적 인 수정이 필요합니다. 대상 날짜 & 시간이 더 커야합니다. 발행 날짜 & 시간 (dEnd.timeDifference (dStart)> 0).Xpages (날짜 시간 스탬프) 검증 및 평가

* 위의 코드는 시나리오에서 작동하는 등, 그 문제의 날짜는 24/04/2012 오전 11시 16분 51초 및 permaenent 수정 대상 일 & 시간 23/04/2012 오전 11시 16분 51초 경우. 하지만 내 영구 수정이 실패하면 실패합니다. 대상 날짜 & 시간은 2012 년 5 월 4 일에서 12 월 4 일까지입니다. 필자는 영구 날짜 수정의 제출 된 값으로 대상 날짜가 2012-04-12T11 : 16 : 45 + 05 : 30과 같이 올 것으로 예상하여 날짜 형식에 문제가 있다고 생각합니다. *

위의 문제를 해결하기 위해 제출 된 가치의 날짜 시간 값을 형식화하는 솔루션이 있습니까?

xpages에서 유효성 검사의 평가 순서에 대해 한 가지 더 ... 유효성 검사 오류 메시지가 올바른 순서로 메시지를 임의로 표시하는 것으로 제어합니다.

귀하의 긍정적 인 반응을 찾고 있습니다.

안부, 인 Yogesh는

답변

0
var doValidate = (submittedBy('button1') || submittedBy('button2')) && (sessionScope.get("IsL2User") == "Yes"); 
if (!doValidate) return true; 
var dtIssue = getComponent("label_IssueDateDt").getSubmittedValue(); 
var dtPermFix = this.getSubmittedValue(); 
if ((dtIssue == null) || (dtPermFix == null)) return false; 
var difference = I18n.parseDateXMI(dtPermFix) - I18n.parseDateXMI(dtIssue); 
return difference > 0; 
+0

getsubmitted 값이 텍스트를 반환하므로 문제가 해결되었습니다. 방금 텍스트 값을 다음과 같이 날짜로 변환했습니다. var endoldFixDateDt = getComponent ("Label_immediateFixDateDt"). getSubmittedValue(); var endFixDateDt = @ 텍스트 토 타임 (endoldFixDateDt); var dEndFixDateDt : NotesDateTime = session.createDateTime (endFixDateDt); 답장을 보내 주셔서 감사 드리며 노력했습니다. 안부, Yogesh – YOGI

0
Use NotesDateTime(start.getDateOnly), NotesDateTime(end.getDateOnly) 

우리는 혼자 날짜를 얻을 수 있습니다. 이렇게하면 쉽게 처리 할 수 ​​있습니다. 다른 해결책은 일반적인 자바 스크립트입니다. 날짜를 년, 월, 일로 나눕니다. 이렇게하면 더 좋은 방법은 아니지만 해결책이기도합니다.

일반적으로 보안상의 이유로 SSJS를 사용합니다. 데이터는 기밀로 취급됩니다. 다른 이유로 CSJS를 사용해보십시오. 시원할 것입니다.